{
  "name": "Database",
  "description": "Connector for connecting to relation Databases through the JDBC API",
  "version": "4.0.0-M5.2",
  "vendor": "Mulesoft",
  "category": "COMMUNITY",
  "minMuleVersion": "4.0.0",
  "xmlDsl": {
    "namespace": "db",
    "namespaceUri": "http://www.mulesoft.org/schema/mule/db",
    "schemaLocation": "http://www.mulesoft.org/schema/mule/db/current/mule-db.xsd",
    "schemaVersion": "4.0.0-M5.2",
    "xsdFileName": "mule-db.xsd"
  },
  "resources": [],
  "subTypes": [],
  "externalLibraries": [],
  "importedTypes": [],
  "configurations": [
    {
      "parameterGroupModels": [],
      "externalLibraryModels": [],
      "operations": [
        {
          "blocking": true,
          "executionType": "BLOCKING",
          "errors": [
            {
              "type": "CONNECTIVITY",
              "namespace": "DB",
              "parent": {
                "type": "CONNECTIVITY",
                "namespace": "MULE",
                "parent": {
                  "type": "ANY",
                  "namespace": "MULE"
                }
              }
            },
            {
              "type": "RETRY_EXHAUSTED",
              "namespace": "DB",
              "parent": {
                "type": "RETRY_EXHAUSTED",
                "namespace": "MULE",
                "parent": {
                  "type": "ANY",
                  "namespace": "MULE"
                }
              }
            }
          ],
          "output": {
            "type": {
              "format": "java",
              "type": "Array",
              "annotations": {
                "typeId": "int[]"
              },
              "item": {
                "type": "Number",
                "annotations": {
                  "int": {},
                  "typeId": "int"
                }
              }
            },
            "hasDynamicType": false,
            "description": "",
            "modelProperties": {}
          },
          "outputAttributes": {
            "type": {
              "format": "java",
              "type": "Void"
            },
            "hasDynamicType": false,
            "description": "",
            "modelProperties": {}
          },
          "transactional": true,
          "requiresConnection": true,
          "parameterGroupModels": [
            {
              "parameters": [
                {
                  "type": {
                    "format": "java",
                    "type": "Array",
                    "annotations": {
                      "typeId": "java.util.List"
                    },
                    "item": {
                      "type": "Object",
                      "annotations": {
                        "typeId": "java.util.Map",
                        "classInformation": {
                          "hasDefaultConstructor": false,
                          "isInterface": true,
                          "isInstantiable": false,
                          "isAbstract": true,
                          "isFinal": false,
                          "implementedInterfaces": [],
                          "parent": "",
                          "genericTypes": [
                            "java.lang.String",
                            "java.lang.Object"
                          ]
                        }
                      },
                      "open": {
                        "type": "Object",
                        "annotations": {
                          "typeId": "java.lang.Object",
                          "classInformation": {
                            "hasDefaultConstructor": true,
                            "isInterface": false,
                            "isInstantiable": true,
                            "isAbstract": false,
                            "isFinal": false,
                            "implementedInterfaces": [],
                            "parent": "",
                            "genericTypes": []
                          },
                          "typeAlias": {
                            "value": "Object"
                          }
                        },
                        "fields": []
                      },
                      "fields": []
                    }
                  },
                  "hasDynamicType": true,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "defaultValue": "#[payload]",
                  "role": "PRIMARY_CONTENT",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": false,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 1,
                    "tabName": "General"
                  },
                  "name": "parameterValues",
                  "description": "A List of Maps in which every list item represents a row to be inserted, and the map",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "String",
                    "annotations": {
                      "typeId": "org.mule.runtime.extension.api.tx.OperationTransactionalAction",
                      "enum": {
                        "type": "[Ljava.lang.String;",
                        "values": [
                          "ALWAYS_JOIN",
                          "JOIN_IF_POSSIBLE",
                          "NOT_SUPPORTED"
                        ]
                      }
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "NOT_SUPPORTED",
                  "defaultValue": "JOIN_IF_POSSIBLE",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "tabName": "Transactions"
                  },
                  "name": "transactionalAction",
                  "description": "The type of joining action that operations can take regarding transactions.",
                  "modelProperties": {}
                }
              ],
              "exclusiveParametersModels": [],
              "showInDsl": false,
              "name": "General",
              "description": "",
              "modelProperties": {}
            },
            {
              "parameters": [
                {
                  "type": {
                    "format": "java",
                    "type": "Number",
                    "annotations": {
                      "int": {},
                      "typeId": "int"
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "defaultValue": "0",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 2,
                    "tabName": "Advanced"
                  },
                  "name": "queryTimeout",
                  "description": "default.",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "String",
                    "annotations": {
                      "typeId": "java.util.concurrent.TimeUnit",
                      "enum": {
                        "type": "[Ljava.lang.String;",
                        "values": [
                          "NANOSECONDS",
                          "MICROSECONDS",
                          "MILLISECONDS",
                          "SECONDS",
                          "MINUTES",
                          "HOURS",
                          "DAYS"
                        ]
                      }
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "defaultValue": "SECONDS",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 3,
                    "tabName": "Advanced"
                  },
                  "name": "queryTimeoutUnit",
                  "description": "A {@link TimeUnit} which qualifies the {@link #queryTimeout}",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "Number",
                    "annotations": {
                      "typeId": "java.lang.Integer"
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 4,
                    "tabName": "Advanced"
                  },
                  "name": "fetchSize",
                  "description": "streaming is {@code true}; in that case a default value (10) is used.",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "Number",
                    "annotations": {
                      "typeId": "java.lang.Integer"
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 5,
                    "tabName": "Advanced"
                  },
                  "name": "maxRows",
                  "description": "the given number. If the limit is exceeded, the excess rows are silently dropped.",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "String",
                    "annotations": {
                      "typeId": "java.lang.String"
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": true,
                    "query": false,
                    "order": 1,
                    "tabName": "General"
                  },
                  "name": "sql",
                  "displayModel": {
                    "displayName": "SQL Query Text"
                  },
                  "description": "The text of the SQL query to be executed",
                  "modelProperties": {
                    "org.mule.runtime.extension.internal.property.MetadataKeyPartModelProperty": {
                      "order": 1
                    }
                  }
                },
                {
                  "type": {
                    "format": "java",
                    "type": "Array",
                    "annotations": {
                      "typeId": "java.util.List"
                    },
                    "item": {
                      "type": "@ref:org.mule.extension.db.api.param.ParameterType"
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 6,
                    "tabName": "Advanced"
                  },
                  "name": "parameterTypes",
                  "description": "reference all of the parameters, but you cannot reference a parameter not present in the input values",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "@ref:org.mule.extension.db.api.param.BulkQueryDefinition"
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": false,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 7
                  },
                  "name": "template",
                  "description": "A reference to a globally defined query to be used as a template",
                  "modelProperties": {}
                }
              ],
              "exclusiveParametersModels": [],
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false
              },
              "showInDsl": false,
              "name": "Query",
              "description": "",
              "modelProperties": {}
            },
            {
              "parameters": [
                {
                  "type": {
                    "format": "java",
                    "type": "String",
                    "annotations": {
                      "typeId": "java.lang.String"
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "NOT_SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "tabName": "Advanced"
                  },
                  "name": "target",
                  "displayModel": {
                    "displayName": "Target Variable"
                  },
                  "description": "The name of a variable on which the operation\u0027s output will be placed",
                  "modelProperties": {}
                }
              ],
              "exclusiveParametersModels": [],
              "showInDsl": false,
              "name": "Output",
              "description": "",
              "modelProperties": {}
            }
          ],
          "name": "bulkDelete",
          "description": "Allows executing one delete statement various times using different parameter bindings. This happens using one single\nDatabase statement, which has performance advantages compared to executing one single delete operation various times.\ncontains the parameter names as keys and the value the parameter is bound to.\naccording to the order in which commands were added to the batch.",
          "modelProperties": {
            "org.mule.runtime.extension.internal.property.MetadataKeyIdModelProperty": {
              "type": {
                "format": "java",
                "type": "String",
                "annotations": {
                  "typeId": "java.lang.String"
                }
              },
              "parameterName": "sql"
            }
          }
        },
        {
          "blocking": true,
          "executionType": "BLOCKING",
          "errors": [
            {
              "type": "CONNECTIVITY",
              "namespace": "DB",
              "parent": {
                "type": "CONNECTIVITY",
                "namespace": "MULE",
                "parent": {
                  "type": "ANY",
                  "namespace": "MULE"
                }
              }
            },
            {
              "type": "RETRY_EXHAUSTED",
              "namespace": "DB",
              "parent": {
                "type": "RETRY_EXHAUSTED",
                "namespace": "MULE",
                "parent": {
                  "type": "ANY",
                  "namespace": "MULE"
                }
              }
            }
          ],
          "output": {
            "type": {
              "format": "java",
              "type": "Array",
              "annotations": {
                "typeId": "int[]"
              },
              "item": {
                "type": "Number",
                "annotations": {
                  "int": {},
                  "typeId": "int"
                }
              }
            },
            "hasDynamicType": false,
            "description": "",
            "modelProperties": {}
          },
          "outputAttributes": {
            "type": {
              "format": "java",
              "type": "Void"
            },
            "hasDynamicType": false,
            "description": "",
            "modelProperties": {}
          },
          "transactional": true,
          "requiresConnection": true,
          "parameterGroupModels": [
            {
              "parameters": [
                {
                  "type": {
                    "format": "java",
                    "type": "Array",
                    "annotations": {
                      "typeId": "java.util.List"
                    },
                    "item": {
                      "type": "Object",
                      "annotations": {
                        "typeId": "java.util.Map",
                        "classInformation": {
                          "hasDefaultConstructor": false,
                          "isInterface": true,
                          "isInstantiable": false,
                          "isAbstract": true,
                          "isFinal": false,
                          "implementedInterfaces": [],
                          "parent": "",
                          "genericTypes": [
                            "java.lang.String",
                            "java.lang.Object"
                          ]
                        }
                      },
                      "open": {
                        "type": "Object",
                        "annotations": {
                          "typeId": "java.lang.Object",
                          "classInformation": {
                            "hasDefaultConstructor": true,
                            "isInterface": false,
                            "isInstantiable": true,
                            "isAbstract": false,
                            "isFinal": false,
                            "implementedInterfaces": [],
                            "parent": "",
                            "genericTypes": []
                          },
                          "typeAlias": {
                            "value": "Object"
                          }
                        },
                        "fields": []
                      },
                      "fields": []
                    }
                  },
                  "hasDynamicType": true,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "defaultValue": "#[payload]",
                  "role": "PRIMARY_CONTENT",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": false,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 1,
                    "tabName": "General"
                  },
                  "name": "parameterValues",
                  "description": "A List of Maps in which every list item represents a row to be inserted, and the map",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "String",
                    "annotations": {
                      "typeId": "org.mule.runtime.extension.api.tx.OperationTransactionalAction",
                      "enum": {
                        "type": "[Ljava.lang.String;",
                        "values": [
                          "ALWAYS_JOIN",
                          "JOIN_IF_POSSIBLE",
                          "NOT_SUPPORTED"
                        ]
                      }
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "NOT_SUPPORTED",
                  "defaultValue": "JOIN_IF_POSSIBLE",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "tabName": "Transactions"
                  },
                  "name": "transactionalAction",
                  "description": "The type of joining action that operations can take regarding transactions.",
                  "modelProperties": {}
                }
              ],
              "exclusiveParametersModels": [],
              "showInDsl": false,
              "name": "General",
              "description": "",
              "modelProperties": {}
            },
            {
              "parameters": [
                {
                  "type": {
                    "format": "java",
                    "type": "Number",
                    "annotations": {
                      "int": {},
                      "typeId": "int"
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "defaultValue": "0",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 2,
                    "tabName": "Advanced"
                  },
                  "name": "queryTimeout",
                  "description": "default.",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "String",
                    "annotations": {
                      "typeId": "java.util.concurrent.TimeUnit",
                      "enum": {
                        "type": "[Ljava.lang.String;",
                        "values": [
                          "NANOSECONDS",
                          "MICROSECONDS",
                          "MILLISECONDS",
                          "SECONDS",
                          "MINUTES",
                          "HOURS",
                          "DAYS"
                        ]
                      }
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "defaultValue": "SECONDS",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 3,
                    "tabName": "Advanced"
                  },
                  "name": "queryTimeoutUnit",
                  "description": "A {@link TimeUnit} which qualifies the {@link #queryTimeout}",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "Number",
                    "annotations": {
                      "typeId": "java.lang.Integer"
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 4,
                    "tabName": "Advanced"
                  },
                  "name": "fetchSize",
                  "description": "streaming is {@code true}; in that case a default value (10) is used.",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "Number",
                    "annotations": {
                      "typeId": "java.lang.Integer"
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 5,
                    "tabName": "Advanced"
                  },
                  "name": "maxRows",
                  "description": "the given number. If the limit is exceeded, the excess rows are silently dropped.",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "String",
                    "annotations": {
                      "typeId": "java.lang.String"
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": true,
                    "query": false,
                    "order": 1,
                    "tabName": "General"
                  },
                  "name": "sql",
                  "displayModel": {
                    "displayName": "SQL Query Text"
                  },
                  "description": "The text of the SQL query to be executed",
                  "modelProperties": {
                    "org.mule.runtime.extension.internal.property.MetadataKeyPartModelProperty": {
                      "order": 1
                    }
                  }
                },
                {
                  "type": {
                    "format": "java",
                    "type": "Array",
                    "annotations": {
                      "typeId": "java.util.List"
                    },
                    "item": {
                      "type": "@ref:org.mule.extension.db.api.param.ParameterType"
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 6,
                    "tabName": "Advanced"
                  },
                  "name": "parameterTypes",
                  "description": "reference all of the parameters, but you cannot reference a parameter not present in the input values",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "@ref:org.mule.extension.db.api.param.BulkQueryDefinition"
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": false,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 7
                  },
                  "name": "template",
                  "description": "A reference to a globally defined query to be used as a template",
                  "modelProperties": {}
                }
              ],
              "exclusiveParametersModels": [],
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false
              },
              "showInDsl": false,
              "name": "Query",
              "description": "",
              "modelProperties": {}
            },
            {
              "parameters": [
                {
                  "type": {
                    "format": "java",
                    "type": "String",
                    "annotations": {
                      "typeId": "java.lang.String"
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "NOT_SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "tabName": "Advanced"
                  },
                  "name": "target",
                  "displayModel": {
                    "displayName": "Target Variable"
                  },
                  "description": "The name of a variable on which the operation\u0027s output will be placed",
                  "modelProperties": {}
                }
              ],
              "exclusiveParametersModels": [],
              "showInDsl": false,
              "name": "Output",
              "description": "",
              "modelProperties": {}
            }
          ],
          "name": "bulkInsert",
          "description": "Allows executing one insert statement various times using different parameter bindings. This happens using one single\nDatabase statement, which has performance advantages compared to executing one single update operation various times.\ncontains the parameter names as keys and the value the parameter is bound to.\naccording to the order in which commands were added to the batch.",
          "modelProperties": {
            "org.mule.runtime.extension.internal.property.MetadataKeyIdModelProperty": {
              "type": {
                "format": "java",
                "type": "String",
                "annotations": {
                  "typeId": "java.lang.String"
                }
              },
              "parameterName": "sql"
            }
          }
        },
        {
          "blocking": true,
          "executionType": "BLOCKING",
          "errors": [
            {
              "type": "CONNECTIVITY",
              "namespace": "DB",
              "parent": {
                "type": "CONNECTIVITY",
                "namespace": "MULE",
                "parent": {
                  "type": "ANY",
                  "namespace": "MULE"
                }
              }
            },
            {
              "type": "RETRY_EXHAUSTED",
              "namespace": "DB",
              "parent": {
                "type": "RETRY_EXHAUSTED",
                "namespace": "MULE",
                "parent": {
                  "type": "ANY",
                  "namespace": "MULE"
                }
              }
            }
          ],
          "output": {
            "type": {
              "format": "java",
              "type": "Array",
              "annotations": {
                "typeId": "int[]"
              },
              "item": {
                "type": "Number",
                "annotations": {
                  "int": {},
                  "typeId": "int"
                }
              }
            },
            "hasDynamicType": false,
            "description": "",
            "modelProperties": {}
          },
          "outputAttributes": {
            "type": {
              "format": "java",
              "type": "Void"
            },
            "hasDynamicType": false,
            "description": "",
            "modelProperties": {}
          },
          "transactional": true,
          "requiresConnection": true,
          "parameterGroupModels": [
            {
              "parameters": [
                {
                  "type": {
                    "format": "java",
                    "type": "Array",
                    "annotations": {
                      "typeId": "java.util.List"
                    },
                    "item": {
                      "type": "Object",
                      "annotations": {
                        "typeId": "java.util.Map",
                        "classInformation": {
                          "hasDefaultConstructor": false,
                          "isInterface": true,
                          "isInstantiable": false,
                          "isAbstract": true,
                          "isFinal": false,
                          "implementedInterfaces": [],
                          "parent": "",
                          "genericTypes": [
                            "java.lang.String",
                            "java.lang.Object"
                          ]
                        }
                      },
                      "open": {
                        "type": "Object",
                        "annotations": {
                          "typeId": "java.lang.Object",
                          "classInformation": {
                            "hasDefaultConstructor": true,
                            "isInterface": false,
                            "isInstantiable": true,
                            "isAbstract": false,
                            "isFinal": false,
                            "implementedInterfaces": [],
                            "parent": "",
                            "genericTypes": []
                          },
                          "typeAlias": {
                            "value": "Object"
                          }
                        },
                        "fields": []
                      },
                      "fields": []
                    }
                  },
                  "hasDynamicType": true,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "defaultValue": "#[payload]",
                  "role": "PRIMARY_CONTENT",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": false,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 1,
                    "tabName": "General"
                  },
                  "name": "parameterValues",
                  "description": "A List of Maps in which every list item represents a row to be inserted, and the map",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "String",
                    "annotations": {
                      "typeId": "org.mule.runtime.extension.api.tx.OperationTransactionalAction",
                      "enum": {
                        "type": "[Ljava.lang.String;",
                        "values": [
                          "ALWAYS_JOIN",
                          "JOIN_IF_POSSIBLE",
                          "NOT_SUPPORTED"
                        ]
                      }
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "NOT_SUPPORTED",
                  "defaultValue": "JOIN_IF_POSSIBLE",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "tabName": "Transactions"
                  },
                  "name": "transactionalAction",
                  "description": "The type of joining action that operations can take regarding transactions.",
                  "modelProperties": {}
                }
              ],
              "exclusiveParametersModels": [],
              "showInDsl": false,
              "name": "General",
              "description": "",
              "modelProperties": {}
            },
            {
              "parameters": [
                {
                  "type": {
                    "format": "java",
                    "type": "Number",
                    "annotations": {
                      "int": {},
                      "typeId": "int"
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "defaultValue": "0",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 2,
                    "tabName": "Advanced"
                  },
                  "name": "queryTimeout",
                  "description": "default.",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "String",
                    "annotations": {
                      "typeId": "java.util.concurrent.TimeUnit",
                      "enum": {
                        "type": "[Ljava.lang.String;",
                        "values": [
                          "NANOSECONDS",
                          "MICROSECONDS",
                          "MILLISECONDS",
                          "SECONDS",
                          "MINUTES",
                          "HOURS",
                          "DAYS"
                        ]
                      }
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "defaultValue": "SECONDS",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 3,
                    "tabName": "Advanced"
                  },
                  "name": "queryTimeoutUnit",
                  "description": "A {@link TimeUnit} which qualifies the {@link #queryTimeout}",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "Number",
                    "annotations": {
                      "typeId": "java.lang.Integer"
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 4,
                    "tabName": "Advanced"
                  },
                  "name": "fetchSize",
                  "description": "streaming is {@code true}; in that case a default value (10) is used.",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "Number",
                    "annotations": {
                      "typeId": "java.lang.Integer"
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 5,
                    "tabName": "Advanced"
                  },
                  "name": "maxRows",
                  "description": "the given number. If the limit is exceeded, the excess rows are silently dropped.",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "String",
                    "annotations": {
                      "typeId": "java.lang.String"
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": true,
                    "query": false,
                    "order": 1,
                    "tabName": "General"
                  },
                  "name": "sql",
                  "displayModel": {
                    "displayName": "SQL Query Text"
                  },
                  "description": "The text of the SQL query to be executed",
                  "modelProperties": {
                    "org.mule.runtime.extension.internal.property.MetadataKeyPartModelProperty": {
                      "order": 1
                    }
                  }
                },
                {
                  "type": {
                    "format": "java",
                    "type": "Array",
                    "annotations": {
                      "typeId": "java.util.List"
                    },
                    "item": {
                      "type": "@ref:org.mule.extension.db.api.param.ParameterType"
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 6,
                    "tabName": "Advanced"
                  },
                  "name": "parameterTypes",
                  "description": "reference all of the parameters, but you cannot reference a parameter not present in the input values",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "@ref:org.mule.extension.db.api.param.BulkQueryDefinition"
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": false,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 7
                  },
                  "name": "template",
                  "description": "A reference to a globally defined query to be used as a template",
                  "modelProperties": {}
                }
              ],
              "exclusiveParametersModels": [],
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false
              },
              "showInDsl": false,
              "name": "Query",
              "description": "",
              "modelProperties": {}
            },
            {
              "parameters": [
                {
                  "type": {
                    "format": "java",
                    "type": "String",
                    "annotations": {
                      "typeId": "java.lang.String"
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "NOT_SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "tabName": "Advanced"
                  },
                  "name": "target",
                  "displayModel": {
                    "displayName": "Target Variable"
                  },
                  "description": "The name of a variable on which the operation\u0027s output will be placed",
                  "modelProperties": {}
                }
              ],
              "exclusiveParametersModels": [],
              "showInDsl": false,
              "name": "Output",
              "description": "",
              "modelProperties": {}
            }
          ],
          "name": "bulkUpdate",
          "description": "Allows executing one update statement various times using different parameter bindings. This happens using one single\nDatabase statement, which has performance advantages compared to executing one single update operation various times.\ncontains the parameter names as keys and the value the parameter is bound to.\naccording to the order in which commands were added to the batch.",
          "modelProperties": {
            "org.mule.runtime.extension.internal.property.MetadataKeyIdModelProperty": {
              "type": {
                "format": "java",
                "type": "String",
                "annotations": {
                  "typeId": "java.lang.String"
                }
              },
              "parameterName": "sql"
            }
          }
        },
        {
          "blocking": true,
          "executionType": "BLOCKING",
          "errors": [
            {
              "type": "CONNECTIVITY",
              "namespace": "DB",
              "parent": {
                "type": "CONNECTIVITY",
                "namespace": "MULE",
                "parent": {
                  "type": "ANY",
                  "namespace": "MULE"
                }
              }
            },
            {
              "type": "RETRY_EXHAUSTED",
              "namespace": "DB",
              "parent": {
                "type": "RETRY_EXHAUSTED",
                "namespace": "MULE",
                "parent": {
                  "type": "ANY",
                  "namespace": "MULE"
                }
              }
            }
          ],
          "output": {
            "type": {
              "format": "java",
              "type": "Number",
              "annotations": {
                "int": {},
                "typeId": "int"
              }
            },
            "hasDynamicType": false,
            "description": "",
            "modelProperties": {}
          },
          "outputAttributes": {
            "type": {
              "format": "java",
              "type": "Void"
            },
            "hasDynamicType": false,
            "description": "",
            "modelProperties": {}
          },
          "transactional": true,
          "requiresConnection": true,
          "parameterGroupModels": [
            {
              "parameters": [
                {
                  "type": {
                    "format": "java",
                    "type": "String",
                    "annotations": {
                      "typeId": "org.mule.runtime.extension.api.tx.OperationTransactionalAction",
                      "enum": {
                        "type": "[Ljava.lang.String;",
                        "values": [
                          "ALWAYS_JOIN",
                          "JOIN_IF_POSSIBLE",
                          "NOT_SUPPORTED"
                        ]
                      }
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "NOT_SUPPORTED",
                  "defaultValue": "JOIN_IF_POSSIBLE",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "tabName": "Transactions"
                  },
                  "name": "transactionalAction",
                  "description": "The type of joining action that operations can take regarding transactions.",
                  "modelProperties": {}
                }
              ],
              "exclusiveParametersModels": [],
              "showInDsl": false,
              "name": "General",
              "description": "",
              "modelProperties": {}
            },
            {
              "parameters": [
                {
                  "type": {
                    "format": "java",
                    "type": "Number",
                    "annotations": {
                      "int": {},
                      "typeId": "int"
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "defaultValue": "0",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 3,
                    "tabName": "Advanced"
                  },
                  "name": "queryTimeout",
                  "description": "default.",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "String",
                    "annotations": {
                      "typeId": "java.util.concurrent.TimeUnit",
                      "enum": {
                        "type": "[Ljava.lang.String;",
                        "values": [
                          "NANOSECONDS",
                          "MICROSECONDS",
                          "MILLISECONDS",
                          "SECONDS",
                          "MINUTES",
                          "HOURS",
                          "DAYS"
                        ]
                      }
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "defaultValue": "SECONDS",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 4,
                    "tabName": "Advanced"
                  },
                  "name": "queryTimeoutUnit",
                  "description": "A {@link TimeUnit} which qualifies the {@link #queryTimeout}",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "Number",
                    "annotations": {
                      "typeId": "java.lang.Integer"
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 5,
                    "tabName": "Advanced"
                  },
                  "name": "fetchSize",
                  "description": "streaming is {@code true}; in that case a default value (10) is used.",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "Number",
                    "annotations": {
                      "typeId": "java.lang.Integer"
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 6,
                    "tabName": "Advanced"
                  },
                  "name": "maxRows",
                  "description": "the given number. If the limit is exceeded, the excess rows are silently dropped.",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "String",
                    "annotations": {
                      "typeId": "java.lang.String"
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": true,
                    "query": false,
                    "order": 1,
                    "tabName": "General"
                  },
                  "name": "sql",
                  "displayModel": {
                    "displayName": "SQL Query Text"
                  },
                  "description": "The text of the SQL query to be executed",
                  "modelProperties": {
                    "org.mule.runtime.extension.internal.property.MetadataKeyPartModelProperty": {
                      "order": 1
                    }
                  }
                },
                {
                  "type": {
                    "format": "java",
                    "type": "Array",
                    "annotations": {
                      "typeId": "java.util.List"
                    },
                    "item": {
                      "type": "@ref:org.mule.extension.db.api.param.ParameterType"
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 7,
                    "tabName": "Advanced"
                  },
                  "name": "parameterTypes",
                  "description": "reference all of the parameters, but you cannot reference a parameter not present in the input values",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "Object",
                    "annotations": {
                      "typeId": "java.util.Map",
                      "classInformation": {
                        "hasDefaultConstructor": false,
                        "isInterface": true,
                        "isInstantiable": false,
                        "isAbstract": true,
                        "isFinal": false,
                        "implementedInterfaces": [],
                        "parent": "",
                        "genericTypes": [
                          "java.lang.String",
                          "java.lang.Object"
                        ]
                      }
                    },
                    "open": {
                      "type": "Object",
                      "annotations": {
                        "typeId": "java.lang.Object",
                        "classInformation": {
                          "hasDefaultConstructor": true,
                          "isInterface": false,
                          "isInstantiable": true,
                          "isAbstract": false,
                          "isFinal": false,
                          "implementedInterfaces": [],
                          "parent": "",
                          "genericTypes": []
                        },
                        "typeAlias": {
                          "value": "Object"
                        }
                      },
                      "fields": []
                    },
                    "fields": []
                  },
                  "hasDynamicType": true,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "defaultValue": "#[{}]",
                  "role": "PRIMARY_CONTENT",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": false,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 2,
                    "tabName": "General"
                  },
                  "name": "inputParameters",
                  "displayModel": {
                    "example": "#[{\u0027name\u0027: \"Max\", \u0027nickname\u0027: \"The Mule\", \u0027company\u0027: \"MuleSoft\"}]"
                  },
                  "description": "The map\u0027s values will contain the actual assignation for each parameter.",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "@ref:org.mule.extension.db.api.param.QueryDefinition"
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": false,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 8
                  },
                  "name": "template",
                  "description": "A reference to a globally defined query to be used as a template",
                  "modelProperties": {}
                }
              ],
              "exclusiveParametersModels": [],
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false
              },
              "showInDsl": false,
              "name": "Query",
              "description": "",
              "modelProperties": {}
            },
            {
              "parameters": [
                {
                  "type": {
                    "format": "java",
                    "type": "String",
                    "annotations": {
                      "typeId": "java.lang.String"
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "NOT_SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "tabName": "Advanced"
                  },
                  "name": "target",
                  "displayModel": {
                    "displayName": "Target Variable"
                  },
                  "description": "The name of a variable on which the operation\u0027s output will be placed",
                  "modelProperties": {}
                }
              ],
              "exclusiveParametersModels": [],
              "showInDsl": false,
              "name": "Output",
              "description": "",
              "modelProperties": {}
            }
          ],
          "name": "delete",
          "description": "Deletes data in a database.",
          "modelProperties": {
            "org.mule.runtime.extension.internal.property.MetadataKeyIdModelProperty": {
              "type": {
                "format": "java",
                "type": "String",
                "annotations": {
                  "typeId": "java.lang.String"
                }
              },
              "parameterName": "sql"
            }
          }
        },
        {
          "blocking": true,
          "executionType": "BLOCKING",
          "errors": [
            {
              "type": "CONNECTIVITY",
              "namespace": "DB",
              "parent": {
                "type": "CONNECTIVITY",
                "namespace": "MULE",
                "parent": {
                  "type": "ANY",
                  "namespace": "MULE"
                }
              }
            },
            {
              "type": "RETRY_EXHAUSTED",
              "namespace": "DB",
              "parent": {
                "type": "RETRY_EXHAUSTED",
                "namespace": "MULE",
                "parent": {
                  "type": "ANY",
                  "namespace": "MULE"
                }
              }
            }
          ],
          "output": {
            "type": {
              "format": "java",
              "type": "Number",
              "annotations": {
                "int": {},
                "typeId": "int"
              }
            },
            "hasDynamicType": false,
            "description": "",
            "modelProperties": {}
          },
          "outputAttributes": {
            "type": {
              "format": "java",
              "type": "Void"
            },
            "hasDynamicType": false,
            "description": "",
            "modelProperties": {}
          },
          "transactional": true,
          "requiresConnection": true,
          "parameterGroupModels": [
            {
              "parameters": [
                {
                  "type": {
                    "format": "java",
                    "type": "String",
                    "annotations": {
                      "typeId": "java.lang.String"
                    }
                  },
                  "hasDynamicType": false,
                  "required": true,
                  "expressionSupport": "SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": true,
                    "query": false,
                    "order": 5
                  },
                  "name": "sql",
                  "displayModel": {
                    "displayName": "SQL Query Text"
                  },
                  "description": "The text of the SQL query to be executed",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "String",
                    "annotations": {
                      "typeId": "org.mule.runtime.extension.api.tx.OperationTransactionalAction",
                      "enum": {
                        "type": "[Ljava.lang.String;",
                        "values": [
                          "ALWAYS_JOIN",
                          "JOIN_IF_POSSIBLE",
                          "NOT_SUPPORTED"
                        ]
                      }
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "NOT_SUPPORTED",
                  "defaultValue": "JOIN_IF_POSSIBLE",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "tabName": "Transactions"
                  },
                  "name": "transactionalAction",
                  "description": "The type of joining action that operations can take regarding transactions.",
                  "modelProperties": {}
                }
              ],
              "exclusiveParametersModels": [],
              "showInDsl": false,
              "name": "General",
              "description": "",
              "modelProperties": {}
            },
            {
              "parameters": [
                {
                  "type": {
                    "format": "java",
                    "type": "Number",
                    "annotations": {
                      "int": {},
                      "typeId": "int"
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "defaultValue": "0",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 1,
                    "tabName": "Advanced"
                  },
                  "name": "queryTimeout",
                  "description": "default.",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "String",
                    "annotations": {
                      "typeId": "java.util.concurrent.TimeUnit",
                      "enum": {
                        "type": "[Ljava.lang.String;",
                        "values": [
                          "NANOSECONDS",
                          "MICROSECONDS",
                          "MILLISECONDS",
                          "SECONDS",
                          "MINUTES",
                          "HOURS",
                          "DAYS"
                        ]
                      }
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "defaultValue": "SECONDS",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 2,
                    "tabName": "Advanced"
                  },
                  "name": "queryTimeoutUnit",
                  "description": "A {@link TimeUnit} which qualifies the {@link #queryTimeout}",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "Number",
                    "annotations": {
                      "typeId": "java.lang.Integer"
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 3,
                    "tabName": "Advanced"
                  },
                  "name": "fetchSize",
                  "description": "streaming is {@code true}; in that case a default value (10) is used.",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "Number",
                    "annotations": {
                      "typeId": "java.lang.Integer"
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 4,
                    "tabName": "Advanced"
                  },
                  "name": "maxRows",
                  "description": "the given number. If the limit is exceeded, the excess rows are silently dropped.",
                  "modelProperties": {}
                }
              ],
              "exclusiveParametersModels": [],
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false
              },
              "showInDsl": false,
              "name": "Query Settings",
              "description": "",
              "modelProperties": {}
            },
            {
              "parameters": [
                {
                  "type": {
                    "format": "java",
                    "type": "String",
                    "annotations": {
                      "typeId": "java.lang.String"
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "NOT_SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "tabName": "Advanced"
                  },
                  "name": "target",
                  "displayModel": {
                    "displayName": "Target Variable"
                  },
                  "description": "The name of a variable on which the operation\u0027s output will be placed",
                  "modelProperties": {}
                }
              ],
              "exclusiveParametersModels": [],
              "showInDsl": false,
              "name": "Output",
              "description": "",
              "modelProperties": {}
            }
          ],
          "name": "executeDdl",
          "displayModel": {
            "displayName": "Execute DDL"
          },
          "description": "Enables execution of DDL queries against a database.",
          "modelProperties": {}
        },
        {
          "blocking": true,
          "executionType": "BLOCKING",
          "errors": [
            {
              "type": "CONNECTIVITY",
              "namespace": "DB",
              "parent": {
                "type": "CONNECTIVITY",
                "namespace": "MULE",
                "parent": {
                  "type": "ANY",
                  "namespace": "MULE"
                }
              }
            },
            {
              "type": "RETRY_EXHAUSTED",
              "namespace": "DB",
              "parent": {
                "type": "RETRY_EXHAUSTED",
                "namespace": "MULE",
                "parent": {
                  "type": "ANY",
                  "namespace": "MULE"
                }
              }
            }
          ],
          "output": {
            "type": {
              "format": "java",
              "type": "Array",
              "annotations": {
                "typeId": "int[]"
              },
              "item": {
                "type": "Number",
                "annotations": {
                  "int": {},
                  "typeId": "int"
                }
              }
            },
            "hasDynamicType": false,
            "description": "",
            "modelProperties": {}
          },
          "outputAttributes": {
            "type": {
              "format": "java",
              "type": "Void"
            },
            "hasDynamicType": false,
            "description": "",
            "modelProperties": {}
          },
          "transactional": true,
          "requiresConnection": true,
          "parameterGroupModels": [
            {
              "parameters": [
                {
                  "type": {
                    "format": "java",
                    "type": "String",
                    "annotations": {
                      "typeId": "org.mule.runtime.extension.api.tx.OperationTransactionalAction",
                      "enum": {
                        "type": "[Ljava.lang.String;",
                        "values": [
                          "ALWAYS_JOIN",
                          "JOIN_IF_POSSIBLE",
                          "NOT_SUPPORTED"
                        ]
                      }
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "NOT_SUPPORTED",
                  "defaultValue": "JOIN_IF_POSSIBLE",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "tabName": "Transactions"
                  },
                  "name": "transactionalAction",
                  "description": "The type of joining action that operations can take regarding transactions.",
                  "modelProperties": {}
                }
              ],
              "exclusiveParametersModels": [],
              "showInDsl": false,
              "name": "General",
              "description": "",
              "modelProperties": {}
            },
            {
              "parameters": [
                {
                  "type": {
                    "format": "java",
                    "type": "String",
                    "annotations": {
                      "typeId": "java.lang.String"
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": true,
                    "query": false,
                    "order": 1,
                    "tabName": "General"
                  },
                  "name": "sql",
                  "displayModel": {
                    "displayName": "SQL Query Text"
                  },
                  "description": "The text of the SQL query to be executed",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "String",
                    "annotations": {
                      "typeId": "java.lang.String"
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 2
                  },
                  "name": "file",
                  "displayModel": {
                    "displayName": "Script Path"
                  },
                  "description": "The location of a file to load. The file can point to a resource on the classpath or on a disk.",
                  "modelProperties": {}
                }
              ],
              "exclusiveParametersModels": [
                {
                  "exclusiveParameterNames": [
                    "file",
                    "sql"
                  ],
                  "isOneRequired": true
                }
              ],
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false
              },
              "showInDsl": false,
              "name": "Query",
              "description": "",
              "modelProperties": {}
            },
            {
              "parameters": [
                {
                  "type": {
                    "format": "java",
                    "type": "Number",
                    "annotations": {
                      "int": {},
                      "typeId": "int"
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "defaultValue": "0",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 3,
                    "tabName": "Advanced"
                  },
                  "name": "queryTimeout",
                  "description": "default.",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "String",
                    "annotations": {
                      "typeId": "java.util.concurrent.TimeUnit",
                      "enum": {
                        "type": "[Ljava.lang.String;",
                        "values": [
                          "NANOSECONDS",
                          "MICROSECONDS",
                          "MILLISECONDS",
                          "SECONDS",
                          "MINUTES",
                          "HOURS",
                          "DAYS"
                        ]
                      }
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "defaultValue": "SECONDS",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 4,
                    "tabName": "Advanced"
                  },
                  "name": "queryTimeoutUnit",
                  "description": "A {@link TimeUnit} which qualifies the {@link #queryTimeout}",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "Number",
                    "annotations": {
                      "typeId": "java.lang.Integer"
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 5,
                    "tabName": "Advanced"
                  },
                  "name": "fetchSize",
                  "description": "streaming is {@code true}; in that case a default value (10) is used.",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "Number",
                    "annotations": {
                      "typeId": "java.lang.Integer"
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 6,
                    "tabName": "Advanced"
                  },
                  "name": "maxRows",
                  "description": "the given number. If the limit is exceeded, the excess rows are silently dropped.",
                  "modelProperties": {}
                }
              ],
              "exclusiveParametersModels": [],
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false
              },
              "showInDsl": false,
              "name": "Query Settings",
              "description": "",
              "modelProperties": {}
            },
            {
              "parameters": [
                {
                  "type": {
                    "format": "java",
                    "type": "String",
                    "annotations": {
                      "typeId": "java.lang.String"
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "NOT_SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "tabName": "Advanced"
                  },
                  "name": "target",
                  "displayModel": {
                    "displayName": "Target Variable"
                  },
                  "description": "The name of a variable on which the operation\u0027s output will be placed",
                  "modelProperties": {}
                }
              ],
              "exclusiveParametersModels": [],
              "showInDsl": false,
              "name": "Output",
              "description": "",
              "modelProperties": {}
            }
          ],
          "name": "executeScript",
          "description": "Executes a SQL script in one single Database statement. The script is executed as provided by the user, without any parameter\nbinding.\naccording to the order in which commands were added to the batch.",
          "modelProperties": {}
        },
        {
          "blocking": true,
          "executionType": "BLOCKING",
          "errors": [
            {
              "type": "CONNECTIVITY",
              "namespace": "DB",
              "parent": {
                "type": "CONNECTIVITY",
                "namespace": "MULE",
                "parent": {
                  "type": "ANY",
                  "namespace": "MULE"
                }
              }
            },
            {
              "type": "RETRY_EXHAUSTED",
              "namespace": "DB",
              "parent": {
                "type": "RETRY_EXHAUSTED",
                "namespace": "MULE",
                "parent": {
                  "type": "ANY",
                  "namespace": "MULE"
                }
              }
            }
          ],
          "output": {
            "type": {
              "format": "java",
              "type": "@ref:org.mule.extension.db.api.StatementResult"
            },
            "hasDynamicType": false,
            "description": "",
            "modelProperties": {}
          },
          "outputAttributes": {
            "type": {
              "format": "java",
              "type": "Void"
            },
            "hasDynamicType": false,
            "description": "",
            "modelProperties": {}
          },
          "transactional": true,
          "requiresConnection": true,
          "parameterGroupModels": [
            {
              "parameters": [
                {
                  "type": {
                    "format": "java",
                    "type": "String",
                    "annotations": {
                      "typeId": "org.mule.runtime.extension.api.tx.OperationTransactionalAction",
                      "enum": {
                        "type": "[Ljava.lang.String;",
                        "values": [
                          "ALWAYS_JOIN",
                          "JOIN_IF_POSSIBLE",
                          "NOT_SUPPORTED"
                        ]
                      }
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "NOT_SUPPORTED",
                  "defaultValue": "JOIN_IF_POSSIBLE",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "tabName": "Transactions"
                  },
                  "name": "transactionalAction",
                  "description": "The type of joining action that operations can take regarding transactions.",
                  "modelProperties": {}
                }
              ],
              "exclusiveParametersModels": [],
              "showInDsl": false,
              "name": "General",
              "description": "",
              "modelProperties": {}
            },
            {
              "parameters": [
                {
                  "type": {
                    "format": "java",
                    "type": "Number",
                    "annotations": {
                      "int": {},
                      "typeId": "int"
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "defaultValue": "0",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 4,
                    "tabName": "Advanced"
                  },
                  "name": "queryTimeout",
                  "description": "default.",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "String",
                    "annotations": {
                      "typeId": "java.util.concurrent.TimeUnit",
                      "enum": {
                        "type": "[Ljava.lang.String;",
                        "values": [
                          "NANOSECONDS",
                          "MICROSECONDS",
                          "MILLISECONDS",
                          "SECONDS",
                          "MINUTES",
                          "HOURS",
                          "DAYS"
                        ]
                      }
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "defaultValue": "SECONDS",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 5,
                    "tabName": "Advanced"
                  },
                  "name": "queryTimeoutUnit",
                  "description": "A {@link TimeUnit} which qualifies the {@link #queryTimeout}",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "Number",
                    "annotations": {
                      "typeId": "java.lang.Integer"
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 6,
                    "tabName": "Advanced"
                  },
                  "name": "fetchSize",
                  "description": "streaming is {@code true}; in that case a default value (10) is used.",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "Number",
                    "annotations": {
                      "typeId": "java.lang.Integer"
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 7,
                    "tabName": "Advanced"
                  },
                  "name": "maxRows",
                  "description": "the given number. If the limit is exceeded, the excess rows are silently dropped.",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "String",
                    "annotations": {
                      "typeId": "java.lang.String"
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": true,
                    "query": false,
                    "order": 1,
                    "tabName": "General"
                  },
                  "name": "sql",
                  "displayModel": {
                    "displayName": "SQL Query Text"
                  },
                  "description": "The text of the SQL query to be executed",
                  "modelProperties": {
                    "org.mule.runtime.extension.internal.property.MetadataKeyPartModelProperty": {
                      "order": 1
                    }
                  }
                },
                {
                  "type": {
                    "format": "java",
                    "type": "Array",
                    "annotations": {
                      "typeId": "java.util.List"
                    },
                    "item": {
                      "type": "@ref:org.mule.extension.db.api.param.ParameterType"
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 8,
                    "tabName": "Advanced"
                  },
                  "name": "parameterTypes",
                  "description": "reference all of the parameters, but you cannot reference a parameter not present in the input values",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "Object",
                    "annotations": {
                      "typeId": "java.util.Map",
                      "classInformation": {
                        "hasDefaultConstructor": false,
                        "isInterface": true,
                        "isInstantiable": false,
                        "isAbstract": true,
                        "isFinal": false,
                        "implementedInterfaces": [],
                        "parent": "",
                        "genericTypes": [
                          "java.lang.String",
                          "java.lang.Object"
                        ]
                      }
                    },
                    "open": {
                      "type": "Object",
                      "annotations": {
                        "typeId": "java.lang.Object",
                        "classInformation": {
                          "hasDefaultConstructor": true,
                          "isInterface": false,
                          "isInstantiable": true,
                          "isAbstract": false,
                          "isFinal": false,
                          "implementedInterfaces": [],
                          "parent": "",
                          "genericTypes": []
                        },
                        "typeAlias": {
                          "value": "Object"
                        }
                      },
                      "fields": []
                    },
                    "fields": []
                  },
                  "hasDynamicType": true,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "defaultValue": "#[{}]",
                  "role": "PRIMARY_CONTENT",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": false,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 2,
                    "tabName": "General"
                  },
                  "name": "inputParameters",
                  "displayModel": {
                    "example": "#[{\u0027name\u0027: \"Max\", \u0027nickname\u0027: \"The Mule\", \u0027company\u0027: \"MuleSoft\"}]"
                  },
                  "description": "The map\u0027s values will contain the actual assignation for each parameter.",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "@ref:org.mule.extension.db.api.param.QueryDefinition"
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": false,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 9
                  },
                  "name": "template",
                  "description": "A reference to a globally defined query to be used as a template",
                  "modelProperties": {}
                }
              ],
              "exclusiveParametersModels": [],
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "tabName": "Advanced"
              },
              "showInDsl": false,
              "name": "Query",
              "description": "",
              "modelProperties": {}
            },
            {
              "parameters": [
                {
                  "type": {
                    "format": "java",
                    "type": "Boolean",
                    "annotations": {
                      "typeId": "boolean"
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "defaultValue": "false",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 1,
                    "tabName": "Advanced"
                  },
                  "name": "autoGenerateKeys",
                  "description": "Indicates when to make auto-generated keys available for retrieval.",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "Array",
                    "annotations": {
                      "typeId": "java.util.List"
                    },
                    "item": {
                      "type": "Number",
                      "annotations": {
                        "typeId": "java.lang.Integer"
                      }
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 2,
                    "tabName": "Advanced"
                  },
                  "name": "autoGeneratedKeysColumnIndexes",
                  "description": "List of column indexes that indicates which auto-generated keys to make available for retrieval.",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "Array",
                    "annotations": {
                      "typeId": "java.util.List"
                    },
                    "item": {
                      "type": "String",
                      "annotations": {
                        "typeId": "java.lang.String"
                      }
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 3,
                    "tabName": "Advanced"
                  },
                  "name": "autoGeneratedKeysColumnNames",
                  "description": "List of column names that indicates which auto-generated keys should be made available for retrieval.",
                  "modelProperties": {}
                }
              ],
              "exclusiveParametersModels": [],
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false
              },
              "showInDsl": false,
              "name": "Auto Generate Keys",
              "description": "",
              "modelProperties": {}
            },
            {
              "parameters": [
                {
                  "type": {
                    "format": "java",
                    "type": "String",
                    "annotations": {
                      "typeId": "java.lang.String"
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "NOT_SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "tabName": "Advanced"
                  },
                  "name": "target",
                  "displayModel": {
                    "displayName": "Target Variable"
                  },
                  "description": "The name of a variable on which the operation\u0027s output will be placed",
                  "modelProperties": {}
                }
              ],
              "exclusiveParametersModels": [],
              "showInDsl": false,
              "name": "Output",
              "description": "",
              "modelProperties": {}
            }
          ],
          "name": "insert",
          "description": "Inserts data into a Database",
          "modelProperties": {
            "org.mule.runtime.extension.internal.property.MetadataKeyIdModelProperty": {
              "type": {
                "format": "java",
                "type": "String",
                "annotations": {
                  "typeId": "java.lang.String"
                }
              },
              "parameterName": "sql"
            }
          }
        },
        {
          "blocking": true,
          "executionType": "BLOCKING",
          "errors": [
            {
              "type": "CONNECTIVITY",
              "namespace": "DB",
              "parent": {
                "type": "CONNECTIVITY",
                "namespace": "MULE",
                "parent": {
                  "type": "ANY",
                  "namespace": "MULE"
                }
              }
            },
            {
              "type": "RETRY_EXHAUSTED",
              "namespace": "DB",
              "parent": {
                "type": "RETRY_EXHAUSTED",
                "namespace": "MULE",
                "parent": {
                  "type": "ANY",
                  "namespace": "MULE"
                }
              }
            }
          ],
          "output": {
            "type": {
              "format": "java",
              "type": "Object",
              "annotations": {
                "typeId": "java.lang.Object",
                "classInformation": {
                  "hasDefaultConstructor": true,
                  "isInterface": false,
                  "isInstantiable": true,
                  "isAbstract": false,
                  "isFinal": false,
                  "implementedInterfaces": [],
                  "parent": "",
                  "genericTypes": []
                },
                "typeAlias": {
                  "value": "Object"
                }
              },
              "fields": []
            },
            "hasDynamicType": true,
            "description": "",
            "modelProperties": {}
          },
          "outputAttributes": {
            "type": {
              "format": "java",
              "type": "Void"
            },
            "hasDynamicType": false,
            "description": "",
            "modelProperties": {}
          },
          "transactional": true,
          "requiresConnection": true,
          "parameterGroupModels": [
            {
              "parameters": [
                {
                  "type": {
                    "format": "java",
                    "type": "Boolean",
                    "annotations": {
                      "typeId": "boolean"
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "NOT_SUPPORTED",
                  "defaultValue": "false",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 9,
                    "tabName": "Advanced"
                  },
                  "name": "streaming",
                  "displayModel": {
                    "displayName": "Stream Response"
                  },
                  "description": "if enabled retrieves the result set in blocks so that memory is not exhausted in case of large data sets.",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "String",
                    "annotations": {
                      "typeId": "org.mule.runtime.extension.api.tx.OperationTransactionalAction",
                      "enum": {
                        "type": "[Ljava.lang.String;",
                        "values": [
                          "ALWAYS_JOIN",
                          "JOIN_IF_POSSIBLE",
                          "NOT_SUPPORTED"
                        ]
                      }
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "NOT_SUPPORTED",
                  "defaultValue": "JOIN_IF_POSSIBLE",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "tabName": "Transactions"
                  },
                  "name": "transactionalAction",
                  "description": "The type of joining action that operations can take regarding transactions.",
                  "modelProperties": {}
                }
              ],
              "exclusiveParametersModels": [],
              "showInDsl": false,
              "name": "General",
              "description": "",
              "modelProperties": {}
            },
            {
              "parameters": [
                {
                  "type": {
                    "format": "java",
                    "type": "Number",
                    "annotations": {
                      "int": {},
                      "typeId": "int"
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "defaultValue": "0",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 3,
                    "tabName": "Advanced"
                  },
                  "name": "queryTimeout",
                  "description": "default.",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "String",
                    "annotations": {
                      "typeId": "java.util.concurrent.TimeUnit",
                      "enum": {
                        "type": "[Ljava.lang.String;",
                        "values": [
                          "NANOSECONDS",
                          "MICROSECONDS",
                          "MILLISECONDS",
                          "SECONDS",
                          "MINUTES",
                          "HOURS",
                          "DAYS"
                        ]
                      }
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "defaultValue": "SECONDS",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 4,
                    "tabName": "Advanced"
                  },
                  "name": "queryTimeoutUnit",
                  "description": "A {@link TimeUnit} which qualifies the {@link #queryTimeout}",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "Number",
                    "annotations": {
                      "typeId": "java.lang.Integer"
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 5,
                    "tabName": "Advanced"
                  },
                  "name": "fetchSize",
                  "description": "streaming is {@code true}; in that case a default value (10) is used.",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "Number",
                    "annotations": {
                      "typeId": "java.lang.Integer"
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 6,
                    "tabName": "Advanced"
                  },
                  "name": "maxRows",
                  "description": "the given number. If the limit is exceeded, the excess rows are silently dropped.",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "String",
                    "annotations": {
                      "typeId": "java.lang.String"
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": true,
                    "query": false,
                    "order": 1,
                    "tabName": "General"
                  },
                  "name": "sql",
                  "displayModel": {
                    "displayName": "SQL Query Text"
                  },
                  "description": "The text of the SQL query to be executed",
                  "modelProperties": {
                    "org.mule.runtime.extension.internal.property.MetadataKeyPartModelProperty": {
                      "order": 1
                    }
                  }
                },
                {
                  "type": {
                    "format": "java",
                    "type": "Array",
                    "annotations": {
                      "typeId": "java.util.List"
                    },
                    "item": {
                      "type": "@ref:org.mule.extension.db.api.param.ParameterType"
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 7,
                    "tabName": "Advanced"
                  },
                  "name": "parameterTypes",
                  "description": "reference all of the parameters, but you cannot reference a parameter not present in the input values",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "Object",
                    "annotations": {
                      "typeId": "java.util.Map",
                      "classInformation": {
                        "hasDefaultConstructor": false,
                        "isInterface": true,
                        "isInstantiable": false,
                        "isAbstract": true,
                        "isFinal": false,
                        "implementedInterfaces": [],
                        "parent": "",
                        "genericTypes": [
                          "java.lang.String",
                          "java.lang.Object"
                        ]
                      }
                    },
                    "open": {
                      "type": "Object",
                      "annotations": {
                        "typeId": "java.lang.Object",
                        "classInformation": {
                          "hasDefaultConstructor": true,
                          "isInterface": false,
                          "isInstantiable": true,
                          "isAbstract": false,
                          "isFinal": false,
                          "implementedInterfaces": [],
                          "parent": "",
                          "genericTypes": []
                        },
                        "typeAlias": {
                          "value": "Object"
                        }
                      },
                      "fields": []
                    },
                    "fields": []
                  },
                  "hasDynamicType": true,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "defaultValue": "#[{}]",
                  "role": "PRIMARY_CONTENT",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": false,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 2,
                    "tabName": "General"
                  },
                  "name": "inputParameters",
                  "displayModel": {
                    "example": "#[{\u0027name\u0027: \"Max\", \u0027nickname\u0027: \"The Mule\", \u0027company\u0027: \"MuleSoft\"}]"
                  },
                  "description": "The map\u0027s values will contain the actual assignation for each parameter.",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "@ref:org.mule.extension.db.api.param.QueryDefinition"
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": false,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 8
                  },
                  "name": "template",
                  "description": "A reference to a globally defined query to be used as a template",
                  "modelProperties": {}
                }
              ],
              "exclusiveParametersModels": [],
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "tabName": "Advanced"
              },
              "showInDsl": false,
              "name": "Query",
              "description": "",
              "modelProperties": {}
            },
            {
              "parameters": [
                {
                  "type": {
                    "format": "java",
                    "type": "String",
                    "annotations": {
                      "typeId": "java.lang.String"
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "NOT_SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "tabName": "Advanced"
                  },
                  "name": "target",
                  "displayModel": {
                    "displayName": "Target Variable"
                  },
                  "description": "The name of a variable on which the operation\u0027s output will be placed",
                  "modelProperties": {}
                }
              ],
              "exclusiveParametersModels": [],
              "showInDsl": false,
              "name": "Output",
              "description": "",
              "modelProperties": {}
            }
          ],
          "name": "select",
          "description": "Selects data from a database\nThis works in tandem with the fetch size parameter",
          "modelProperties": {
            "org.mule.runtime.extension.internal.property.MetadataKeyIdModelProperty": {
              "type": {
                "format": "java",
                "type": "String",
                "annotations": {
                  "typeId": "java.lang.String"
                }
              },
              "parameterName": "sql"
            }
          }
        },
        {
          "blocking": true,
          "executionType": "BLOCKING",
          "errors": [
            {
              "type": "CONNECTIVITY",
              "namespace": "DB",
              "parent": {
                "type": "CONNECTIVITY",
                "namespace": "MULE",
                "parent": {
                  "type": "ANY",
                  "namespace": "MULE"
                }
              }
            },
            {
              "type": "RETRY_EXHAUSTED",
              "namespace": "DB",
              "parent": {
                "type": "RETRY_EXHAUSTED",
                "namespace": "MULE",
                "parent": {
                  "type": "ANY",
                  "namespace": "MULE"
                }
              }
            }
          ],
          "output": {
            "type": {
              "format": "java",
              "type": "Object",
              "annotations": {
                "typeId": "java.util.Map",
                "classInformation": {
                  "hasDefaultConstructor": false,
                  "isInterface": true,
                  "isInstantiable": false,
                  "isAbstract": true,
                  "isFinal": false,
                  "implementedInterfaces": [],
                  "parent": "",
                  "genericTypes": [
                    "java.lang.String",
                    "java.lang.Object"
                  ]
                }
              },
              "open": {
                "type": "Object",
                "annotations": {
                  "typeId": "java.lang.Object",
                  "classInformation": {
                    "hasDefaultConstructor": true,
                    "isInterface": false,
                    "isInstantiable": true,
                    "isAbstract": false,
                    "isFinal": false,
                    "implementedInterfaces": [],
                    "parent": "",
                    "genericTypes": []
                  },
                  "typeAlias": {
                    "value": "Object"
                  }
                },
                "fields": []
              },
              "fields": []
            },
            "hasDynamicType": true,
            "description": "",
            "modelProperties": {}
          },
          "outputAttributes": {
            "type": {
              "format": "java",
              "type": "Void"
            },
            "hasDynamicType": false,
            "description": "",
            "modelProperties": {}
          },
          "transactional": true,
          "requiresConnection": true,
          "parameterGroupModels": [
            {
              "parameters": [
                {
                  "type": {
                    "format": "java",
                    "type": "Boolean",
                    "annotations": {
                      "typeId": "boolean"
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "NOT_SUPPORTED",
                  "defaultValue": "false",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 12
                  },
                  "name": "streaming",
                  "description": "if enabled retrieves the result set in blocks so that memory is not exhausted in case of large data sets.",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "String",
                    "annotations": {
                      "typeId": "org.mule.runtime.extension.api.tx.OperationTransactionalAction",
                      "enum": {
                        "type": "[Ljava.lang.String;",
                        "values": [
                          "ALWAYS_JOIN",
                          "JOIN_IF_POSSIBLE",
                          "NOT_SUPPORTED"
                        ]
                      }
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "NOT_SUPPORTED",
                  "defaultValue": "JOIN_IF_POSSIBLE",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "tabName": "Transactions"
                  },
                  "name": "transactionalAction",
                  "description": "The type of joining action that operations can take regarding transactions.",
                  "modelProperties": {}
                }
              ],
              "exclusiveParametersModels": [],
              "showInDsl": false,
              "name": "General",
              "description": "",
              "modelProperties": {}
            },
            {
              "parameters": [
                {
                  "type": {
                    "format": "java",
                    "type": "Number",
                    "annotations": {
                      "int": {},
                      "typeId": "int"
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "defaultValue": "0",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 4,
                    "tabName": "Advanced"
                  },
                  "name": "queryTimeout",
                  "description": "default.",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "String",
                    "annotations": {
                      "typeId": "java.util.concurrent.TimeUnit",
                      "enum": {
                        "type": "[Ljava.lang.String;",
                        "values": [
                          "NANOSECONDS",
                          "MICROSECONDS",
                          "MILLISECONDS",
                          "SECONDS",
                          "MINUTES",
                          "HOURS",
                          "DAYS"
                        ]
                      }
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "defaultValue": "SECONDS",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 5,
                    "tabName": "Advanced"
                  },
                  "name": "queryTimeoutUnit",
                  "description": "A {@link TimeUnit} which qualifies the {@link #queryTimeout}",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "Number",
                    "annotations": {
                      "typeId": "java.lang.Integer"
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 6,
                    "tabName": "Advanced"
                  },
                  "name": "fetchSize",
                  "description": "streaming is {@code true}; in that case a default value (10) is used.",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "Number",
                    "annotations": {
                      "typeId": "java.lang.Integer"
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 7,
                    "tabName": "Advanced"
                  },
                  "name": "maxRows",
                  "description": "the given number. If the limit is exceeded, the excess rows are silently dropped.",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "String",
                    "annotations": {
                      "typeId": "java.lang.String"
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": true,
                    "query": false,
                    "order": 1,
                    "tabName": "General"
                  },
                  "name": "sql",
                  "displayModel": {
                    "displayName": "SQL Query Text"
                  },
                  "description": "The text of the SQL query to be executed",
                  "modelProperties": {
                    "org.mule.runtime.extension.internal.property.MetadataKeyPartModelProperty": {
                      "order": 1
                    }
                  }
                },
                {
                  "type": {
                    "format": "java",
                    "type": "Array",
                    "annotations": {
                      "typeId": "java.util.List"
                    },
                    "item": {
                      "type": "@ref:org.mule.extension.db.api.param.ParameterType"
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 8,
                    "tabName": "Advanced"
                  },
                  "name": "parameterTypes",
                  "description": "reference all of the parameters, but you cannot reference a parameter not present in the input values",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "Object",
                    "annotations": {
                      "typeId": "java.util.Map",
                      "classInformation": {
                        "hasDefaultConstructor": false,
                        "isInterface": true,
                        "isInstantiable": false,
                        "isAbstract": true,
                        "isFinal": false,
                        "implementedInterfaces": [],
                        "parent": "",
                        "genericTypes": [
                          "java.lang.String",
                          "java.lang.Object"
                        ]
                      }
                    },
                    "open": {
                      "type": "Object",
                      "annotations": {
                        "typeId": "java.lang.Object",
                        "classInformation": {
                          "hasDefaultConstructor": true,
                          "isInterface": false,
                          "isInstantiable": true,
                          "isAbstract": false,
                          "isFinal": false,
                          "implementedInterfaces": [],
                          "parent": "",
                          "genericTypes": []
                        },
                        "typeAlias": {
                          "value": "Object"
                        }
                      },
                      "fields": []
                    },
                    "fields": []
                  },
                  "hasDynamicType": true,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "defaultValue": "#[{}]",
                  "role": "PRIMARY_CONTENT",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": false,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 2,
                    "tabName": "General"
                  },
                  "name": "inputParameters",
                  "displayModel": {
                    "example": "#[{\u0027name\u0027: \"Max\", \u0027nickname\u0027: \"The Mule\", \u0027company\u0027: \"MuleSoft\"}]"
                  },
                  "description": "The map\u0027s values will contain the actual assignation for each parameter.",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "Object",
                    "annotations": {
                      "typeId": "java.util.LinkedHashMap",
                      "classInformation": {
                        "hasDefaultConstructor": true,
                        "isInterface": false,
                        "isInstantiable": true,
                        "isAbstract": false,
                        "isFinal": false,
                        "implementedInterfaces": [
                          "java.util.Map"
                        ],
                        "parent": "java.util.HashMap",
                        "genericTypes": [
                          "java.lang.String",
                          "java.lang.Object"
                        ]
                      }
                    },
                    "open": {
                      "type": "Object",
                      "annotations": {
                        "typeId": "java.lang.Object",
                        "classInformation": {
                          "hasDefaultConstructor": true,
                          "isInterface": false,
                          "isInstantiable": true,
                          "isAbstract": false,
                          "isFinal": false,
                          "implementedInterfaces": [],
                          "parent": "",
                          "genericTypes": []
                        },
                        "typeAlias": {
                          "value": "Object"
                        }
                      },
                      "fields": []
                    },
                    "fields": []
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": false,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 9
                  },
                  "name": "inOutParameters",
                  "displayModel": {
                    "displayName": "Input - Output Parameters"
                  },
                  "description": "The map\u0027s values will contain the actual assignation for each parameter.",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "Array",
                    "annotations": {
                      "typeId": "java.util.List"
                    },
                    "item": {
                      "type": "@ref:org.mule.extension.db.api.param.OutputParameter"
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": false,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 10
                  },
                  "name": "outputParameters",
                  "displayModel": {
                    "displayName": "Output Parameters"
                  },
                  "description": "text using a semicolon prefix (E.g: {@code call multiply(:value, :result)})",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "@ref:org.mule.extension.db.api.param.StoredProcedureCall"
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": false,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 11
                  },
                  "name": "template",
                  "description": "A reference to a globally defined call to be used as a template",
                  "modelProperties": {}
                }
              ],
              "exclusiveParametersModels": [],
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false
              },
              "showInDsl": false,
              "name": "Query",
              "description": "",
              "modelProperties": {}
            },
            {
              "parameters": [
                {
                  "type": {
                    "format": "java",
                    "type": "Boolean",
                    "annotations": {
                      "typeId": "boolean"
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "defaultValue": "false",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 1,
                    "tabName": "Advanced"
                  },
                  "name": "autoGenerateKeys",
                  "description": "Indicates when to make auto-generated keys available for retrieval.",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "Array",
                    "annotations": {
                      "typeId": "java.util.List"
                    },
                    "item": {
                      "type": "Number",
                      "annotations": {
                        "typeId": "java.lang.Integer"
                      }
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 2,
                    "tabName": "Advanced"
                  },
                  "name": "autoGeneratedKeysColumnIndexes",
                  "description": "List of column indexes that indicates which auto-generated keys to make available for retrieval.",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "Array",
                    "annotations": {
                      "typeId": "java.util.List"
                    },
                    "item": {
                      "type": "String",
                      "annotations": {
                        "typeId": "java.lang.String"
                      }
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 3,
                    "tabName": "Advanced"
                  },
                  "name": "autoGeneratedKeysColumnNames",
                  "description": "List of column names that indicates which auto-generated keys should be made available for retrieval.",
                  "modelProperties": {}
                }
              ],
              "exclusiveParametersModels": [],
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false
              },
              "showInDsl": false,
              "name": "Auto Generate Keys",
              "description": "",
              "modelProperties": {}
            },
            {
              "parameters": [
                {
                  "type": {
                    "format": "java",
                    "type": "String",
                    "annotations": {
                      "typeId": "java.lang.String"
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "NOT_SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "tabName": "Advanced"
                  },
                  "name": "target",
                  "displayModel": {
                    "displayName": "Target Variable"
                  },
                  "description": "The name of a variable on which the operation\u0027s output will be placed",
                  "modelProperties": {}
                }
              ],
              "exclusiveParametersModels": [],
              "showInDsl": false,
              "name": "Output",
              "description": "",
              "modelProperties": {}
            }
          ],
          "name": "storedProcedure",
          "description": "Invokes a Stored Procedure on the database.\nThis works in tandem with the fetch size parameter",
          "modelProperties": {
            "org.mule.runtime.extension.internal.property.MetadataKeyIdModelProperty": {
              "type": {
                "format": "java",
                "type": "String",
                "annotations": {
                  "typeId": "java.lang.String"
                }
              },
              "parameterName": "sql"
            }
          }
        },
        {
          "blocking": true,
          "executionType": "BLOCKING",
          "errors": [
            {
              "type": "CONNECTIVITY",
              "namespace": "DB",
              "parent": {
                "type": "CONNECTIVITY",
                "namespace": "MULE",
                "parent": {
                  "type": "ANY",
                  "namespace": "MULE"
                }
              }
            },
            {
              "type": "RETRY_EXHAUSTED",
              "namespace": "DB",
              "parent": {
                "type": "RETRY_EXHAUSTED",
                "namespace": "MULE",
                "parent": {
                  "type": "ANY",
                  "namespace": "MULE"
                }
              }
            }
          ],
          "output": {
            "type": {
              "format": "java",
              "type": "@ref:org.mule.extension.db.api.StatementResult"
            },
            "hasDynamicType": false,
            "description": "",
            "modelProperties": {}
          },
          "outputAttributes": {
            "type": {
              "format": "java",
              "type": "Void"
            },
            "hasDynamicType": false,
            "description": "",
            "modelProperties": {}
          },
          "transactional": true,
          "requiresConnection": true,
          "parameterGroupModels": [
            {
              "parameters": [
                {
                  "type": {
                    "format": "java",
                    "type": "String",
                    "annotations": {
                      "typeId": "org.mule.runtime.extension.api.tx.OperationTransactionalAction",
                      "enum": {
                        "type": "[Ljava.lang.String;",
                        "values": [
                          "ALWAYS_JOIN",
                          "JOIN_IF_POSSIBLE",
                          "NOT_SUPPORTED"
                        ]
                      }
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "NOT_SUPPORTED",
                  "defaultValue": "JOIN_IF_POSSIBLE",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "tabName": "Transactions"
                  },
                  "name": "transactionalAction",
                  "description": "The type of joining action that operations can take regarding transactions.",
                  "modelProperties": {}
                }
              ],
              "exclusiveParametersModels": [],
              "showInDsl": false,
              "name": "General",
              "description": "",
              "modelProperties": {}
            },
            {
              "parameters": [
                {
                  "type": {
                    "format": "java",
                    "type": "Number",
                    "annotations": {
                      "int": {},
                      "typeId": "int"
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "defaultValue": "0",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 4,
                    "tabName": "Advanced"
                  },
                  "name": "queryTimeout",
                  "description": "default.",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "String",
                    "annotations": {
                      "typeId": "java.util.concurrent.TimeUnit",
                      "enum": {
                        "type": "[Ljava.lang.String;",
                        "values": [
                          "NANOSECONDS",
                          "MICROSECONDS",
                          "MILLISECONDS",
                          "SECONDS",
                          "MINUTES",
                          "HOURS",
                          "DAYS"
                        ]
                      }
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "defaultValue": "SECONDS",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 5,
                    "tabName": "Advanced"
                  },
                  "name": "queryTimeoutUnit",
                  "description": "A {@link TimeUnit} which qualifies the {@link #queryTimeout}",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "Number",
                    "annotations": {
                      "typeId": "java.lang.Integer"
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 6,
                    "tabName": "Advanced"
                  },
                  "name": "fetchSize",
                  "description": "streaming is {@code true}; in that case a default value (10) is used.",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "Number",
                    "annotations": {
                      "typeId": "java.lang.Integer"
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 7,
                    "tabName": "Advanced"
                  },
                  "name": "maxRows",
                  "description": "the given number. If the limit is exceeded, the excess rows are silently dropped.",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "String",
                    "annotations": {
                      "typeId": "java.lang.String"
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": true,
                    "query": false,
                    "order": 1,
                    "tabName": "General"
                  },
                  "name": "sql",
                  "displayModel": {
                    "displayName": "SQL Query Text"
                  },
                  "description": "The text of the SQL query to be executed",
                  "modelProperties": {
                    "org.mule.runtime.extension.internal.property.MetadataKeyPartModelProperty": {
                      "order": 1
                    }
                  }
                },
                {
                  "type": {
                    "format": "java",
                    "type": "Array",
                    "annotations": {
                      "typeId": "java.util.List"
                    },
                    "item": {
                      "type": "@ref:org.mule.extension.db.api.param.ParameterType"
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 8,
                    "tabName": "Advanced"
                  },
                  "name": "parameterTypes",
                  "description": "reference all of the parameters, but you cannot reference a parameter not present in the input values",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "Object",
                    "annotations": {
                      "typeId": "java.util.Map",
                      "classInformation": {
                        "hasDefaultConstructor": false,
                        "isInterface": true,
                        "isInstantiable": false,
                        "isAbstract": true,
                        "isFinal": false,
                        "implementedInterfaces": [],
                        "parent": "",
                        "genericTypes": [
                          "java.lang.String",
                          "java.lang.Object"
                        ]
                      }
                    },
                    "open": {
                      "type": "Object",
                      "annotations": {
                        "typeId": "java.lang.Object",
                        "classInformation": {
                          "hasDefaultConstructor": true,
                          "isInterface": false,
                          "isInstantiable": true,
                          "isAbstract": false,
                          "isFinal": false,
                          "implementedInterfaces": [],
                          "parent": "",
                          "genericTypes": []
                        },
                        "typeAlias": {
                          "value": "Object"
                        }
                      },
                      "fields": []
                    },
                    "fields": []
                  },
                  "hasDynamicType": true,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "defaultValue": "#[{}]",
                  "role": "PRIMARY_CONTENT",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": false,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 2,
                    "tabName": "General"
                  },
                  "name": "inputParameters",
                  "displayModel": {
                    "example": "#[{\u0027name\u0027: \"Max\", \u0027nickname\u0027: \"The Mule\", \u0027company\u0027: \"MuleSoft\"}]"
                  },
                  "description": "The map\u0027s values will contain the actual assignation for each parameter.",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "@ref:org.mule.extension.db.api.param.QueryDefinition"
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": false,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 9
                  },
                  "name": "template",
                  "description": "A reference to a globally defined query to be used as a template",
                  "modelProperties": {}
                }
              ],
              "exclusiveParametersModels": [],
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false
              },
              "showInDsl": false,
              "name": "Query",
              "description": "",
              "modelProperties": {}
            },
            {
              "parameters": [
                {
                  "type": {
                    "format": "java",
                    "type": "Boolean",
                    "annotations": {
                      "typeId": "boolean"
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "defaultValue": "false",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 1,
                    "tabName": "Advanced"
                  },
                  "name": "autoGenerateKeys",
                  "description": "Indicates when to make auto-generated keys available for retrieval.",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "Array",
                    "annotations": {
                      "typeId": "java.util.List"
                    },
                    "item": {
                      "type": "Number",
                      "annotations": {
                        "typeId": "java.lang.Integer"
                      }
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 2,
                    "tabName": "Advanced"
                  },
                  "name": "autoGeneratedKeysColumnIndexes",
                  "description": "List of column indexes that indicates which auto-generated keys to make available for retrieval.",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "Array",
                    "annotations": {
                      "typeId": "java.util.List"
                    },
                    "item": {
                      "type": "String",
                      "annotations": {
                        "typeId": "java.lang.String"
                      }
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 3,
                    "tabName": "Advanced"
                  },
                  "name": "autoGeneratedKeysColumnNames",
                  "description": "List of column names that indicates which auto-generated keys should be made available for retrieval.",
                  "modelProperties": {}
                }
              ],
              "exclusiveParametersModels": [],
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false
              },
              "showInDsl": false,
              "name": "Auto Generate Keys",
              "description": "",
              "modelProperties": {}
            },
            {
              "parameters": [
                {
                  "type": {
                    "format": "java",
                    "type": "String",
                    "annotations": {
                      "typeId": "java.lang.String"
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "NOT_SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "tabName": "Advanced"
                  },
                  "name": "target",
                  "displayModel": {
                    "displayName": "Target Variable"
                  },
                  "description": "The name of a variable on which the operation\u0027s output will be placed",
                  "modelProperties": {}
                }
              ],
              "exclusiveParametersModels": [],
              "showInDsl": false,
              "name": "Output",
              "description": "",
              "modelProperties": {}
            }
          ],
          "name": "update",
          "description": "Updates data in a database.",
          "modelProperties": {
            "org.mule.runtime.extension.internal.property.MetadataKeyIdModelProperty": {
              "type": {
                "format": "java",
                "type": "String",
                "annotations": {
                  "typeId": "java.lang.String"
                }
              },
              "parameterName": "sql"
            }
          }
        }
      ],
      "connectionProviders": [
        {
          "connectionManagementType": "NONE",
          "externalLibraryModels": [],
          "parameterGroupModels": [
            {
              "parameters": [
                {
                  "type": {
                    "format": "java",
                    "type": "@ref:org.mule.extension.db.api.config.DbPoolingProfile"
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "NOT_SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 2,
                    "tabName": "Advanced"
                  },
                  "name": "poolingProfile",
                  "description": "Provides a way to configure database connection pooling.",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "Array",
                    "annotations": {
                      "typeId": "java.util.List"
                    },
                    "item": {
                      "type": "@ref:org.mule.extension.db.api.param.CustomDataType"
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "NOT_SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 3
                  },
                  "name": "customDataTypes",
                  "description": "Specifies non-standard custom data types",
                  "modelProperties": {}
                }
              ],
              "exclusiveParametersModels": [],
              "showInDsl": false,
              "name": "General",
              "description": "",
              "modelProperties": {}
            },
            {
              "parameters": [
                {
                  "type": {
                    "format": "java",
                    "type": "Object",
                    "annotations": {
                      "typeId": "javax.sql.DataSource",
                      "classInformation": {
                        "hasDefaultConstructor": false,
                        "isInterface": true,
                        "isInstantiable": false,
                        "isAbstract": true,
                        "isFinal": false,
                        "implementedInterfaces": [
                          "javax.sql.CommonDataSource",
                          "java.sql.Wrapper"
                        ],
                        "parent": "",
                        "genericTypes": []
                      },
                      "typeAlias": {
                        "value": "DataSource"
                      }
                    },
                    "fields": []
                  },
                  "hasDynamicType": false,
                  "required": true,
                  "expressionSupport": "SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 1
                  },
                  "name": "dataSourceRef",
                  "description": "Reference to a JDBC DataSource object. This object is typically created using Spring.\nWhen using XA transactions, an XADataSource object must be provided.",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "Union",
                    "annotations": {
                      "typeId": "java.lang.Object",
                      "typeAlias": {
                        "value": "ReconnectionStrategy"
                      }
                    },
                    "of": [
                      {
                        "type": "Object",
                        "annotations": {
                          "typeId": "java.lang.Object",
                          "typeAlias": {
                            "value": "reconnect"
                          }
                        },
                        "fields": [
                          {
                            "key": {
                              "name": "frequency"
                            },
                            "model": {
                              "type": "Number",
                              "annotations": {
                                "int": {},
                                "typeId": "java.lang.Long",
                                "default": "2000"
                              }
                            },
                            "annotations": {
                              "description": {
                                "value": "How often (in ms) to reconnect"
                              }
                            }
                          },
                          {
                            "key": {
                              "name": "count"
                            },
                            "model": {
                              "type": "Number",
                              "annotations": {
                                "int": {},
                                "typeId": "java.lang.Integer",
                                "default": "2"
                              }
                            },
                            "annotations": {
                              "description": {
                                "value": "How many reconnection attempts to make"
                              }
                            }
                          },
                          {
                            "key": {
                              "name": "blocking"
                            },
                            "model": {
                              "type": "Boolean",
                              "annotations": {
                                "typeId": "java.lang.Boolean",
                                "default": "true"
                              }
                            },
                            "annotations": {
                              "description": {
                                "value": "If false, the reconnection strategy will run in a separate, non-blocking thread"
                              }
                            }
                          }
                        ]
                      },
                      {
                        "type": "Object",
                        "annotations": {
                          "typeId": "java.lang.Object",
                          "typeAlias": {
                            "value": "reconnect-forever"
                          }
                        },
                        "fields": [
                          {
                            "key": {
                              "name": "frequency"
                            },
                            "model": {
                              "type": "Number",
                              "annotations": {
                                "int": {},
                                "typeId": "java.lang.Long",
                                "default": "2000"
                              }
                            },
                            "annotations": {
                              "description": {
                                "value": "How often (in ms) to reconnect"
                              }
                            }
                          }
                        ]
                      }
                    ]
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "NOT_SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": false,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "tabName": "Advanced"
                  },
                  "name": "reconnectionStrategy",
                  "description": "A retry strategy in case of connectivity errors",
                  "modelProperties": {
                    "org.mule.runtime.extension.internal.property.QNameModelProperty": {
                      "value": {
                        "namespaceURI": "http://www.mulesoft.org/schema/mule/core",
                        "localPart": "abstract-reconnection-strategy",
                        "prefix": "mule"
                      }
                    },
                    "org.mule.runtime.extension.internal.property.InfrastructureParameterModelProperty": {}
                  }
                }
              ],
              "exclusiveParametersModels": [],
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false
              },
              "showInDsl": false,
              "name": "Connection",
              "description": "",
              "modelProperties": {}
            }
          ],
          "name": "data-source-connection",
          "displayModel": {
            "displayName": "Data Source Reference Connection"
          },
          "description": "ConnectionProvider implementation which creates DB connections from a referenced",
          "modelProperties": {}
        },
        {
          "connectionManagementType": "NONE",
          "externalLibraryModels": [
            {
              "name": "JDBC Driver",
              "description": "A JDBC driver which supports connecting to the Database",
              "fileName": "(.*)\\.jar"
            }
          ],
          "parameterGroupModels": [
            {
              "parameters": [
                {
                  "type": {
                    "format": "java",
                    "type": "@ref:org.mule.extension.db.api.config.DbPoolingProfile"
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "NOT_SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 5,
                    "tabName": "Advanced"
                  },
                  "name": "poolingProfile",
                  "description": "Provides a way to configure database connection pooling.",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "Array",
                    "annotations": {
                      "typeId": "java.util.List"
                    },
                    "item": {
                      "type": "@ref:org.mule.extension.db.api.param.CustomDataType"
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "NOT_SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 6
                  },
                  "name": "customDataTypes",
                  "description": "Specifies non-standard custom data types",
                  "modelProperties": {}
                }
              ],
              "exclusiveParametersModels": [],
              "showInDsl": false,
              "name": "General",
              "description": "",
              "modelProperties": {}
            },
            {
              "parameters": [
                {
                  "type": {
                    "format": "java",
                    "type": "String",
                    "annotations": {
                      "typeId": "org.mule.extension.db.api.param.TransactionIsolation",
                      "enum": {
                        "type": "[Ljava.lang.String;",
                        "values": [
                          "NONE",
                          "READ_COMMITTED",
                          "READ_UNCOMMITTED",
                          "REPEATABLE_READ",
                          "SERIALIZABLE",
                          "NOT_CONFIGURED"
                        ]
                      }
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "NOT_SUPPORTED",
                  "defaultValue": "NOT_CONFIGURED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 3,
                    "tabName": "Transactions"
                  },
                  "name": "transactionIsolation",
                  "description": "The transaction isolation level to set on the driver when connecting the database.",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "Boolean",
                    "annotations": {
                      "typeId": "boolean"
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "NOT_SUPPORTED",
                  "defaultValue": "false",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 4,
                    "tabName": "Transactions"
                  },
                  "name": "useXaTransactions",
                  "displayModel": {
                    "displayName": "Use XA Transactions"
                  },
                  "description": "Indicates whether or not the created datasource has to support XA transactions. Default is false.",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "String",
                    "annotations": {
                      "typeId": "java.lang.String"
                    }
                  },
                  "hasDynamicType": false,
                  "required": true,
                  "expressionSupport": "SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 1,
                    "tabName": "General"
                  },
                  "name": "url",
                  "displayModel": {
                    "displayName": "URL"
                  },
                  "description": "JDBC URL to be used to connect to the database.",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "String",
                    "annotations": {
                      "typeId": "java.lang.String"
                    }
                  },
                  "hasDynamicType": false,
                  "required": true,
                  "expressionSupport": "SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 2,
                    "tabName": "General"
                  },
                  "name": "driverClassName",
                  "description": "Fully-qualified name of the database driver class.",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "Union",
                    "annotations": {
                      "typeId": "java.lang.Object",
                      "typeAlias": {
                        "value": "ReconnectionStrategy"
                      }
                    },
                    "of": [
                      {
                        "type": "Object",
                        "annotations": {
                          "typeId": "java.lang.Object",
                          "typeAlias": {
                            "value": "reconnect"
                          }
                        },
                        "fields": [
                          {
                            "key": {
                              "name": "frequency"
                            },
                            "model": {
                              "type": "Number",
                              "annotations": {
                                "int": {},
                                "typeId": "java.lang.Long",
                                "default": "2000"
                              }
                            },
                            "annotations": {
                              "description": {
                                "value": "How often (in ms) to reconnect"
                              }
                            }
                          },
                          {
                            "key": {
                              "name": "count"
                            },
                            "model": {
                              "type": "Number",
                              "annotations": {
                                "int": {},
                                "typeId": "java.lang.Integer",
                                "default": "2"
                              }
                            },
                            "annotations": {
                              "description": {
                                "value": "How many reconnection attempts to make"
                              }
                            }
                          },
                          {
                            "key": {
                              "name": "blocking"
                            },
                            "model": {
                              "type": "Boolean",
                              "annotations": {
                                "typeId": "java.lang.Boolean",
                                "default": "true"
                              }
                            },
                            "annotations": {
                              "description": {
                                "value": "If false, the reconnection strategy will run in a separate, non-blocking thread"
                              }
                            }
                          }
                        ]
                      },
                      {
                        "type": "Object",
                        "annotations": {
                          "typeId": "java.lang.Object",
                          "typeAlias": {
                            "value": "reconnect-forever"
                          }
                        },
                        "fields": [
                          {
                            "key": {
                              "name": "frequency"
                            },
                            "model": {
                              "type": "Number",
                              "annotations": {
                                "int": {},
                                "typeId": "java.lang.Long",
                                "default": "2000"
                              }
                            },
                            "annotations": {
                              "description": {
                                "value": "How often (in ms) to reconnect"
                              }
                            }
                          }
                        ]
                      }
                    ]
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "NOT_SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": false,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "tabName": "Advanced"
                  },
                  "name": "reconnectionStrategy",
                  "description": "A retry strategy in case of connectivity errors",
                  "modelProperties": {
                    "org.mule.runtime.extension.internal.property.QNameModelProperty": {
                      "value": {
                        "namespaceURI": "http://www.mulesoft.org/schema/mule/core",
                        "localPart": "abstract-reconnection-strategy",
                        "prefix": "mule"
                      }
                    },
                    "org.mule.runtime.extension.internal.property.InfrastructureParameterModelProperty": {}
                  }
                }
              ],
              "exclusiveParametersModels": [],
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false
              },
              "showInDsl": false,
              "name": "Connection",
              "description": "",
              "modelProperties": {}
            }
          ],
          "name": "generic-connection",
          "displayModel": {
            "displayName": "Generic Connection"
          },
          "description": "ConnectionProvider that creates connections for any kind of database using a JDBC URL\nand the required JDBC Driver Class",
          "modelProperties": {}
        },
        {
          "connectionManagementType": "NONE",
          "externalLibraryModels": [
            {
              "name": "Derby JDBC Driver",
              "description": "A JDBC driver which supports connecting to a Derby Database",
              "fileName": "(.*)\\.jar",
              "requiredClassName": "org.apache.derby.jdbc.EmbeddedDriver"
            }
          ],
          "parameterGroupModels": [
            {
              "parameters": [
                {
                  "type": {
                    "format": "java",
                    "type": "@ref:org.mule.extension.db.api.config.DbPoolingProfile"
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "NOT_SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 7,
                    "tabName": "Advanced"
                  },
                  "name": "poolingProfile",
                  "description": "Provides a way to configure database connection pooling.",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "Array",
                    "annotations": {
                      "typeId": "java.util.List"
                    },
                    "item": {
                      "type": "@ref:org.mule.extension.db.api.param.CustomDataType"
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "NOT_SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 8
                  },
                  "name": "customDataTypes",
                  "description": "Specifies non-standard custom data types",
                  "modelProperties": {}
                }
              ],
              "exclusiveParametersModels": [],
              "showInDsl": false,
              "name": "General",
              "description": "",
              "modelProperties": {}
            },
            {
              "parameters": [
                {
                  "type": {
                    "format": "java",
                    "type": "String",
                    "annotations": {
                      "typeId": "org.mule.extension.db.api.param.TransactionIsolation",
                      "enum": {
                        "type": "[Ljava.lang.String;",
                        "values": [
                          "NONE",
                          "READ_COMMITTED",
                          "READ_UNCOMMITTED",
                          "REPEATABLE_READ",
                          "SERIALIZABLE",
                          "NOT_CONFIGURED"
                        ]
                      }
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "NOT_SUPPORTED",
                  "defaultValue": "NOT_CONFIGURED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 4,
                    "tabName": "Transactions"
                  },
                  "name": "transactionIsolation",
                  "description": "The transaction isolation level to set on the driver when connecting the database.",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "Boolean",
                    "annotations": {
                      "typeId": "boolean"
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "NOT_SUPPORTED",
                  "defaultValue": "false",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 5,
                    "tabName": "Transactions"
                  },
                  "name": "useXaTransactions",
                  "displayModel": {
                    "displayName": "Use XA Transactions"
                  },
                  "description": "Indicates whether or not the created datasource has to support XA transactions. Default is false.",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "String",
                    "annotations": {
                      "typeId": "java.lang.String"
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 1,
                    "tabName": "General"
                  },
                  "name": "database",
                  "description": "Name of the database",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "String",
                    "annotations": {
                      "typeId": "java.lang.String"
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "defaultValue": "directory",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 2,
                    "tabName": "General"
                  },
                  "name": "subsubProtocol",
                  "description": "Specifies the type of SubsubProtocol to be used by Derby. The available options are:\n\u0027directory\u0027, \u0027memory\u0027, \u0027classpath\u0027 and \u0027jar\u0027.",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "Boolean",
                    "annotations": {
                      "typeId": "boolean"
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "defaultValue": "false",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 3,
                    "tabName": "General"
                  },
                  "name": "create",
                  "description": "Indicates if the database should be created if it this not exist.",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "Object",
                    "annotations": {
                      "typeId": "java.util.Map",
                      "classInformation": {
                        "hasDefaultConstructor": false,
                        "isInterface": true,
                        "isInstantiable": false,
                        "isAbstract": true,
                        "isFinal": false,
                        "implementedInterfaces": [],
                        "parent": "",
                        "genericTypes": [
                          "java.lang.String",
                          "java.lang.String"
                        ]
                      }
                    },
                    "open": {
                      "type": "String",
                      "annotations": {
                        "typeId": "java.lang.String"
                      }
                    },
                    "fields": []
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 6,
                    "tabName": "Advanced"
                  },
                  "name": "connectionProperties",
                  "description": "Specifies a list of custom key-value connectionProperties for the config.",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "Union",
                    "annotations": {
                      "typeId": "java.lang.Object",
                      "typeAlias": {
                        "value": "ReconnectionStrategy"
                      }
                    },
                    "of": [
                      {
                        "type": "Object",
                        "annotations": {
                          "typeId": "java.lang.Object",
                          "typeAlias": {
                            "value": "reconnect"
                          }
                        },
                        "fields": [
                          {
                            "key": {
                              "name": "frequency"
                            },
                            "model": {
                              "type": "Number",
                              "annotations": {
                                "int": {},
                                "typeId": "java.lang.Long",
                                "default": "2000"
                              }
                            },
                            "annotations": {
                              "description": {
                                "value": "How often (in ms) to reconnect"
                              }
                            }
                          },
                          {
                            "key": {
                              "name": "count"
                            },
                            "model": {
                              "type": "Number",
                              "annotations": {
                                "int": {},
                                "typeId": "java.lang.Integer",
                                "default": "2"
                              }
                            },
                            "annotations": {
                              "description": {
                                "value": "How many reconnection attempts to make"
                              }
                            }
                          },
                          {
                            "key": {
                              "name": "blocking"
                            },
                            "model": {
                              "type": "Boolean",
                              "annotations": {
                                "typeId": "java.lang.Boolean",
                                "default": "true"
                              }
                            },
                            "annotations": {
                              "description": {
                                "value": "If false, the reconnection strategy will run in a separate, non-blocking thread"
                              }
                            }
                          }
                        ]
                      },
                      {
                        "type": "Object",
                        "annotations": {
                          "typeId": "java.lang.Object",
                          "typeAlias": {
                            "value": "reconnect-forever"
                          }
                        },
                        "fields": [
                          {
                            "key": {
                              "name": "frequency"
                            },
                            "model": {
                              "type": "Number",
                              "annotations": {
                                "int": {},
                                "typeId": "java.lang.Long",
                                "default": "2000"
                              }
                            },
                            "annotations": {
                              "description": {
                                "value": "How often (in ms) to reconnect"
                              }
                            }
                          }
                        ]
                      }
                    ]
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "NOT_SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": false,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "tabName": "Advanced"
                  },
                  "name": "reconnectionStrategy",
                  "description": "A retry strategy in case of connectivity errors",
                  "modelProperties": {
                    "org.mule.runtime.extension.internal.property.QNameModelProperty": {
                      "value": {
                        "namespaceURI": "http://www.mulesoft.org/schema/mule/core",
                        "localPart": "abstract-reconnection-strategy",
                        "prefix": "mule"
                      }
                    },
                    "org.mule.runtime.extension.internal.property.InfrastructureParameterModelProperty": {}
                  }
                }
              ],
              "exclusiveParametersModels": [],
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false
              },
              "showInDsl": false,
              "name": "Connection",
              "description": "",
              "modelProperties": {}
            }
          ],
          "name": "derby-connection",
          "displayModel": {
            "displayName": "Derby Connection"
          },
          "description": "Creates connections to a Derby database",
          "modelProperties": {}
        },
        {
          "connectionManagementType": "NONE",
          "externalLibraryModels": [
            {
              "name": "MySQL JDBC Driver",
              "description": "A JDBC driver which supports connecting to the MySQL Database",
              "fileName": "(.*)\\.jar",
              "requiredClassName": "com.mysql.jdbc.Driver"
            }
          ],
          "parameterGroupModels": [
            {
              "parameters": [
                {
                  "type": {
                    "format": "java",
                    "type": "@ref:org.mule.extension.db.api.config.DbPoolingProfile"
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "NOT_SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 9,
                    "tabName": "Advanced"
                  },
                  "name": "poolingProfile",
                  "description": "Provides a way to configure database connection pooling.",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "Array",
                    "annotations": {
                      "typeId": "java.util.List"
                    },
                    "item": {
                      "type": "@ref:org.mule.extension.db.api.param.CustomDataType"
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "NOT_SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 10
                  },
                  "name": "customDataTypes",
                  "description": "Specifies non-standard custom data types",
                  "modelProperties": {}
                }
              ],
              "exclusiveParametersModels": [],
              "showInDsl": false,
              "name": "General",
              "description": "",
              "modelProperties": {}
            },
            {
              "parameters": [
                {
                  "type": {
                    "format": "java",
                    "type": "String",
                    "annotations": {
                      "typeId": "org.mule.extension.db.api.param.TransactionIsolation",
                      "enum": {
                        "type": "[Ljava.lang.String;",
                        "values": [
                          "NONE",
                          "READ_COMMITTED",
                          "READ_UNCOMMITTED",
                          "REPEATABLE_READ",
                          "SERIALIZABLE",
                          "NOT_CONFIGURED"
                        ]
                      }
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "NOT_SUPPORTED",
                  "defaultValue": "NOT_CONFIGURED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 6,
                    "tabName": "Transactions"
                  },
                  "name": "transactionIsolation",
                  "description": "The transaction isolation level to set on the driver when connecting the database.",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "Boolean",
                    "annotations": {
                      "typeId": "boolean"
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "NOT_SUPPORTED",
                  "defaultValue": "false",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 7,
                    "tabName": "Transactions"
                  },
                  "name": "useXaTransactions",
                  "displayModel": {
                    "displayName": "Use XA Transactions"
                  },
                  "description": "Indicates whether or not the created datasource has to support XA transactions. Default is false.",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "String",
                    "annotations": {
                      "typeId": "java.lang.String"
                    }
                  },
                  "hasDynamicType": false,
                  "required": true,
                  "expressionSupport": "SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 1,
                    "tabName": "General"
                  },
                  "name": "host",
                  "description": "Configures the host of the database",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "Number",
                    "annotations": {
                      "typeId": "java.lang.Integer"
                    }
                  },
                  "hasDynamicType": false,
                  "required": true,
                  "expressionSupport": "SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 2,
                    "tabName": "General"
                  },
                  "name": "port",
                  "description": "Configures the port of the database",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "String",
                    "annotations": {
                      "typeId": "java.lang.String"
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 3,
                    "tabName": "General"
                  },
                  "name": "user",
                  "description": "The user that is used for authentication against the database",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "String",
                    "annotations": {
                      "typeId": "java.lang.String"
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": true,
                    "text": false,
                    "query": false,
                    "order": 4,
                    "tabName": "General"
                  },
                  "name": "password",
                  "description": "The password that is used for authentication against the database",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "String",
                    "annotations": {
                      "typeId": "java.lang.String"
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 5,
                    "tabName": "General"
                  },
                  "name": "database",
                  "description": "The name of the database",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "Object",
                    "annotations": {
                      "typeId": "java.util.Map",
                      "classInformation": {
                        "hasDefaultConstructor": false,
                        "isInterface": true,
                        "isInstantiable": false,
                        "isAbstract": true,
                        "isFinal": false,
                        "implementedInterfaces": [],
                        "parent": "",
                        "genericTypes": [
                          "java.lang.String",
                          "java.lang.String"
                        ]
                      }
                    },
                    "open": {
                      "type": "String",
                      "annotations": {
                        "typeId": "java.lang.String"
                      }
                    },
                    "fields": []
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 8,
                    "tabName": "Advanced"
                  },
                  "name": "connectionProperties",
                  "description": "Specifies a list of custom key-value connectionProperties for the config.",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "Union",
                    "annotations": {
                      "typeId": "java.lang.Object",
                      "typeAlias": {
                        "value": "ReconnectionStrategy"
                      }
                    },
                    "of": [
                      {
                        "type": "Object",
                        "annotations": {
                          "typeId": "java.lang.Object",
                          "typeAlias": {
                            "value": "reconnect"
                          }
                        },
                        "fields": [
                          {
                            "key": {
                              "name": "frequency"
                            },
                            "model": {
                              "type": "Number",
                              "annotations": {
                                "int": {},
                                "typeId": "java.lang.Long",
                                "default": "2000"
                              }
                            },
                            "annotations": {
                              "description": {
                                "value": "How often (in ms) to reconnect"
                              }
                            }
                          },
                          {
                            "key": {
                              "name": "count"
                            },
                            "model": {
                              "type": "Number",
                              "annotations": {
                                "int": {},
                                "typeId": "java.lang.Integer",
                                "default": "2"
                              }
                            },
                            "annotations": {
                              "description": {
                                "value": "How many reconnection attempts to make"
                              }
                            }
                          },
                          {
                            "key": {
                              "name": "blocking"
                            },
                            "model": {
                              "type": "Boolean",
                              "annotations": {
                                "typeId": "java.lang.Boolean",
                                "default": "true"
                              }
                            },
                            "annotations": {
                              "description": {
                                "value": "If false, the reconnection strategy will run in a separate, non-blocking thread"
                              }
                            }
                          }
                        ]
                      },
                      {
                        "type": "Object",
                        "annotations": {
                          "typeId": "java.lang.Object",
                          "typeAlias": {
                            "value": "reconnect-forever"
                          }
                        },
                        "fields": [
                          {
                            "key": {
                              "name": "frequency"
                            },
                            "model": {
                              "type": "Number",
                              "annotations": {
                                "int": {},
                                "typeId": "java.lang.Long",
                                "default": "2000"
                              }
                            },
                            "annotations": {
                              "description": {
                                "value": "How often (in ms) to reconnect"
                              }
                            }
                          }
                        ]
                      }
                    ]
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "NOT_SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": false,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "tabName": "Advanced"
                  },
                  "name": "reconnectionStrategy",
                  "description": "A retry strategy in case of connectivity errors",
                  "modelProperties": {
                    "org.mule.runtime.extension.internal.property.QNameModelProperty": {
                      "value": {
                        "namespaceURI": "http://www.mulesoft.org/schema/mule/core",
                        "localPart": "abstract-reconnection-strategy",
                        "prefix": "mule"
                      }
                    },
                    "org.mule.runtime.extension.internal.property.InfrastructureParameterModelProperty": {}
                  }
                }
              ],
              "exclusiveParametersModels": [],
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false
              },
              "showInDsl": false,
              "name": "Connection",
              "description": "",
              "modelProperties": {}
            }
          ],
          "name": "my-sql-connection",
          "displayModel": {
            "displayName": "MySQL Connection"
          },
          "description": "Creates connections to a MySQL database.",
          "modelProperties": {}
        },
        {
          "connectionManagementType": "NONE",
          "externalLibraryModels": [
            {
              "name": "Oracle JDBC Driver",
              "description": "A JDBC driver which supports connecting to an Oracle Database",
              "fileName": "(.*)\\.jar",
              "requiredClassName": "oracle.jdbc.driver.OracleDriver"
            }
          ],
          "parameterGroupModels": [
            {
              "parameters": [
                {
                  "type": {
                    "format": "java",
                    "type": "@ref:org.mule.extension.db.api.config.DbPoolingProfile"
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "NOT_SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 8,
                    "tabName": "Advanced"
                  },
                  "name": "poolingProfile",
                  "description": "Provides a way to configure database connection pooling.",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "Array",
                    "annotations": {
                      "typeId": "java.util.List"
                    },
                    "item": {
                      "type": "@ref:org.mule.extension.db.api.param.CustomDataType"
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "NOT_SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 9
                  },
                  "name": "customDataTypes",
                  "description": "Specifies non-standard custom data types",
                  "modelProperties": {}
                }
              ],
              "exclusiveParametersModels": [],
              "showInDsl": false,
              "name": "General",
              "description": "",
              "modelProperties": {}
            },
            {
              "parameters": [
                {
                  "type": {
                    "format": "java",
                    "type": "String",
                    "annotations": {
                      "typeId": "org.mule.extension.db.api.param.TransactionIsolation",
                      "enum": {
                        "type": "[Ljava.lang.String;",
                        "values": [
                          "NONE",
                          "READ_COMMITTED",
                          "READ_UNCOMMITTED",
                          "REPEATABLE_READ",
                          "SERIALIZABLE",
                          "NOT_CONFIGURED"
                        ]
                      }
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "NOT_SUPPORTED",
                  "defaultValue": "NOT_CONFIGURED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 6,
                    "tabName": "Transactions"
                  },
                  "name": "transactionIsolation",
                  "description": "The transaction isolation level to set on the driver when connecting the database.",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "Boolean",
                    "annotations": {
                      "typeId": "boolean"
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "NOT_SUPPORTED",
                  "defaultValue": "false",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 7,
                    "tabName": "Transactions"
                  },
                  "name": "useXaTransactions",
                  "displayModel": {
                    "displayName": "Use XA Transactions"
                  },
                  "description": "Indicates whether or not the created datasource has to support XA transactions. Default is false.",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "String",
                    "annotations": {
                      "typeId": "java.lang.String"
                    }
                  },
                  "hasDynamicType": false,
                  "required": true,
                  "expressionSupport": "SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 1,
                    "tabName": "General"
                  },
                  "name": "host",
                  "description": "Configures the host of the database",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "Number",
                    "annotations": {
                      "typeId": "java.lang.Integer"
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "defaultValue": "1521",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 2,
                    "tabName": "General"
                  },
                  "name": "port",
                  "description": "Configures the port of the database",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "String",
                    "annotations": {
                      "typeId": "java.lang.String"
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 3,
                    "tabName": "General"
                  },
                  "name": "user",
                  "description": "The user that is used for authentication against the database",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "String",
                    "annotations": {
                      "typeId": "java.lang.String"
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": true,
                    "text": false,
                    "query": false,
                    "order": 4,
                    "tabName": "General"
                  },
                  "name": "password",
                  "description": "The password that is used for authentication against the database",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "String",
                    "annotations": {
                      "typeId": "java.lang.String"
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 5,
                    "tabName": "General"
                  },
                  "name": "instance",
                  "description": "The name of the database instance",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "Union",
                    "annotations": {
                      "typeId": "java.lang.Object",
                      "typeAlias": {
                        "value": "ReconnectionStrategy"
                      }
                    },
                    "of": [
                      {
                        "type": "Object",
                        "annotations": {
                          "typeId": "java.lang.Object",
                          "typeAlias": {
                            "value": "reconnect"
                          }
                        },
                        "fields": [
                          {
                            "key": {
                              "name": "frequency"
                            },
                            "model": {
                              "type": "Number",
                              "annotations": {
                                "int": {},
                                "typeId": "java.lang.Long",
                                "default": "2000"
                              }
                            },
                            "annotations": {
                              "description": {
                                "value": "How often (in ms) to reconnect"
                              }
                            }
                          },
                          {
                            "key": {
                              "name": "count"
                            },
                            "model": {
                              "type": "Number",
                              "annotations": {
                                "int": {},
                                "typeId": "java.lang.Integer",
                                "default": "2"
                              }
                            },
                            "annotations": {
                              "description": {
                                "value": "How many reconnection attempts to make"
                              }
                            }
                          },
                          {
                            "key": {
                              "name": "blocking"
                            },
                            "model": {
                              "type": "Boolean",
                              "annotations": {
                                "typeId": "java.lang.Boolean",
                                "default": "true"
                              }
                            },
                            "annotations": {
                              "description": {
                                "value": "If false, the reconnection strategy will run in a separate, non-blocking thread"
                              }
                            }
                          }
                        ]
                      },
                      {
                        "type": "Object",
                        "annotations": {
                          "typeId": "java.lang.Object",
                          "typeAlias": {
                            "value": "reconnect-forever"
                          }
                        },
                        "fields": [
                          {
                            "key": {
                              "name": "frequency"
                            },
                            "model": {
                              "type": "Number",
                              "annotations": {
                                "int": {},
                                "typeId": "java.lang.Long",
                                "default": "2000"
                              }
                            },
                            "annotations": {
                              "description": {
                                "value": "How often (in ms) to reconnect"
                              }
                            }
                          }
                        ]
                      }
                    ]
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "expressionSupport": "NOT_SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": false,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "tabName": "Advanced"
                  },
                  "name": "reconnectionStrategy",
                  "description": "A retry strategy in case of connectivity errors",
                  "modelProperties": {
                    "org.mule.runtime.extension.internal.property.QNameModelProperty": {
                      "value": {
                        "namespaceURI": "http://www.mulesoft.org/schema/mule/core",
                        "localPart": "abstract-reconnection-strategy",
                        "prefix": "mule"
                      }
                    },
                    "org.mule.runtime.extension.internal.property.InfrastructureParameterModelProperty": {}
                  }
                }
              ],
              "exclusiveParametersModels": [],
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false
              },
              "showInDsl": false,
              "name": "Connection",
              "description": "",
              "modelProperties": {}
            }
          ],
          "name": "oracle-connection",
          "displayModel": {
            "displayName": "Oracle Connection"
          },
          "description": "Creates connections to a Oracle database",
          "modelProperties": {}
        }
      ],
      "messageSources": [],
      "name": "config",
      "description": "Connector for connecting to relation Databases through the JDBC API",
      "modelProperties": {}
    }
  ],
  "operations": [],
  "connectionProviders": [
    {
      "connectionManagementType": "NONE",
      "externalLibraryModels": [],
      "parameterGroupModels": [
        {
          "parameters": [
            {
              "type": {
                "format": "java",
                "type": "@ref:org.mule.extension.db.api.config.DbPoolingProfile"
              },
              "hasDynamicType": false,
              "required": false,
              "expressionSupport": "NOT_SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 2,
                "tabName": "Advanced"
              },
              "name": "poolingProfile",
              "description": "Provides a way to configure database connection pooling.",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "Array",
                "annotations": {
                  "typeId": "java.util.List"
                },
                "item": {
                  "type": "@ref:org.mule.extension.db.api.param.CustomDataType"
                }
              },
              "hasDynamicType": false,
              "required": false,
              "expressionSupport": "NOT_SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 3
              },
              "name": "customDataTypes",
              "description": "Specifies non-standard custom data types",
              "modelProperties": {}
            }
          ],
          "exclusiveParametersModels": [],
          "showInDsl": false,
          "name": "General",
          "description": "",
          "modelProperties": {}
        },
        {
          "parameters": [
            {
              "type": {
                "format": "java",
                "type": "Object",
                "annotations": {
                  "typeId": "javax.sql.DataSource",
                  "classInformation": {
                    "hasDefaultConstructor": false,
                    "isInterface": true,
                    "isInstantiable": false,
                    "isAbstract": true,
                    "isFinal": false,
                    "implementedInterfaces": [
                      "javax.sql.CommonDataSource",
                      "java.sql.Wrapper"
                    ],
                    "parent": "",
                    "genericTypes": []
                  },
                  "typeAlias": {
                    "value": "DataSource"
                  }
                },
                "fields": []
              },
              "hasDynamicType": false,
              "required": true,
              "expressionSupport": "SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 1
              },
              "name": "dataSourceRef",
              "description": "Reference to a JDBC DataSource object. This object is typically created using Spring.\nWhen using XA transactions, an XADataSource object must be provided.",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "Union",
                "annotations": {
                  "typeId": "java.lang.Object",
                  "typeAlias": {
                    "value": "ReconnectionStrategy"
                  }
                },
                "of": [
                  {
                    "type": "Object",
                    "annotations": {
                      "typeId": "java.lang.Object",
                      "typeAlias": {
                        "value": "reconnect"
                      }
                    },
                    "fields": [
                      {
                        "key": {
                          "name": "frequency"
                        },
                        "model": {
                          "type": "Number",
                          "annotations": {
                            "int": {},
                            "typeId": "java.lang.Long",
                            "default": "2000"
                          }
                        },
                        "annotations": {
                          "description": {
                            "value": "How often (in ms) to reconnect"
                          }
                        }
                      },
                      {
                        "key": {
                          "name": "count"
                        },
                        "model": {
                          "type": "Number",
                          "annotations": {
                            "int": {},
                            "typeId": "java.lang.Integer",
                            "default": "2"
                          }
                        },
                        "annotations": {
                          "description": {
                            "value": "How many reconnection attempts to make"
                          }
                        }
                      },
                      {
                        "key": {
                          "name": "blocking"
                        },
                        "model": {
                          "type": "Boolean",
                          "annotations": {
                            "typeId": "java.lang.Boolean",
                            "default": "true"
                          }
                        },
                        "annotations": {
                          "description": {
                            "value": "If false, the reconnection strategy will run in a separate, non-blocking thread"
                          }
                        }
                      }
                    ]
                  },
                  {
                    "type": "Object",
                    "annotations": {
                      "typeId": "java.lang.Object",
                      "typeAlias": {
                        "value": "reconnect-forever"
                      }
                    },
                    "fields": [
                      {
                        "key": {
                          "name": "frequency"
                        },
                        "model": {
                          "type": "Number",
                          "annotations": {
                            "int": {},
                            "typeId": "java.lang.Long",
                            "default": "2000"
                          }
                        },
                        "annotations": {
                          "description": {
                            "value": "How often (in ms) to reconnect"
                          }
                        }
                      }
                    ]
                  }
                ]
              },
              "hasDynamicType": false,
              "required": false,
              "expressionSupport": "NOT_SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": false,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "tabName": "Advanced"
              },
              "name": "reconnectionStrategy",
              "description": "A retry strategy in case of connectivity errors",
              "modelProperties": {
                "org.mule.runtime.extension.internal.property.QNameModelProperty": {
                  "value": {
                    "namespaceURI": "http://www.mulesoft.org/schema/mule/core",
                    "localPart": "abstract-reconnection-strategy",
                    "prefix": "mule"
                  }
                },
                "org.mule.runtime.extension.internal.property.InfrastructureParameterModelProperty": {}
              }
            }
          ],
          "exclusiveParametersModels": [],
          "layoutModel": {
            "password": false,
            "text": false,
            "query": false
          },
          "showInDsl": false,
          "name": "Connection",
          "description": "",
          "modelProperties": {}
        }
      ],
      "name": "data-source-connection",
      "displayModel": {
        "displayName": "Data Source Reference Connection"
      },
      "description": "ConnectionProvider implementation which creates DB connections from a referenced",
      "modelProperties": {}
    },
    {
      "connectionManagementType": "NONE",
      "externalLibraryModels": [
        {
          "name": "JDBC Driver",
          "description": "A JDBC driver which supports connecting to the Database",
          "fileName": "(.*)\\.jar"
        }
      ],
      "parameterGroupModels": [
        {
          "parameters": [
            {
              "type": {
                "format": "java",
                "type": "@ref:org.mule.extension.db.api.config.DbPoolingProfile"
              },
              "hasDynamicType": false,
              "required": false,
              "expressionSupport": "NOT_SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 5,
                "tabName": "Advanced"
              },
              "name": "poolingProfile",
              "description": "Provides a way to configure database connection pooling.",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "Array",
                "annotations": {
                  "typeId": "java.util.List"
                },
                "item": {
                  "type": "@ref:org.mule.extension.db.api.param.CustomDataType"
                }
              },
              "hasDynamicType": false,
              "required": false,
              "expressionSupport": "NOT_SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 6
              },
              "name": "customDataTypes",
              "description": "Specifies non-standard custom data types",
              "modelProperties": {}
            }
          ],
          "exclusiveParametersModels": [],
          "showInDsl": false,
          "name": "General",
          "description": "",
          "modelProperties": {}
        },
        {
          "parameters": [
            {
              "type": {
                "format": "java",
                "type": "String",
                "annotations": {
                  "typeId": "org.mule.extension.db.api.param.TransactionIsolation",
                  "enum": {
                    "type": "[Ljava.lang.String;",
                    "values": [
                      "NONE",
                      "READ_COMMITTED",
                      "READ_UNCOMMITTED",
                      "REPEATABLE_READ",
                      "SERIALIZABLE",
                      "NOT_CONFIGURED"
                    ]
                  }
                }
              },
              "hasDynamicType": false,
              "required": false,
              "expressionSupport": "NOT_SUPPORTED",
              "defaultValue": "NOT_CONFIGURED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 3,
                "tabName": "Transactions"
              },
              "name": "transactionIsolation",
              "description": "The transaction isolation level to set on the driver when connecting the database.",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "Boolean",
                "annotations": {
                  "typeId": "boolean"
                }
              },
              "hasDynamicType": false,
              "required": false,
              "expressionSupport": "NOT_SUPPORTED",
              "defaultValue": "false",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 4,
                "tabName": "Transactions"
              },
              "name": "useXaTransactions",
              "displayModel": {
                "displayName": "Use XA Transactions"
              },
              "description": "Indicates whether or not the created datasource has to support XA transactions. Default is false.",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "String",
                "annotations": {
                  "typeId": "java.lang.String"
                }
              },
              "hasDynamicType": false,
              "required": true,
              "expressionSupport": "SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 1,
                "tabName": "General"
              },
              "name": "url",
              "displayModel": {
                "displayName": "URL"
              },
              "description": "JDBC URL to be used to connect to the database.",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "String",
                "annotations": {
                  "typeId": "java.lang.String"
                }
              },
              "hasDynamicType": false,
              "required": true,
              "expressionSupport": "SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 2,
                "tabName": "General"
              },
              "name": "driverClassName",
              "description": "Fully-qualified name of the database driver class.",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "Union",
                "annotations": {
                  "typeId": "java.lang.Object",
                  "typeAlias": {
                    "value": "ReconnectionStrategy"
                  }
                },
                "of": [
                  {
                    "type": "Object",
                    "annotations": {
                      "typeId": "java.lang.Object",
                      "typeAlias": {
                        "value": "reconnect"
                      }
                    },
                    "fields": [
                      {
                        "key": {
                          "name": "frequency"
                        },
                        "model": {
                          "type": "Number",
                          "annotations": {
                            "int": {},
                            "typeId": "java.lang.Long",
                            "default": "2000"
                          }
                        },
                        "annotations": {
                          "description": {
                            "value": "How often (in ms) to reconnect"
                          }
                        }
                      },
                      {
                        "key": {
                          "name": "count"
                        },
                        "model": {
                          "type": "Number",
                          "annotations": {
                            "int": {},
                            "typeId": "java.lang.Integer",
                            "default": "2"
                          }
                        },
                        "annotations": {
                          "description": {
                            "value": "How many reconnection attempts to make"
                          }
                        }
                      },
                      {
                        "key": {
                          "name": "blocking"
                        },
                        "model": {
                          "type": "Boolean",
                          "annotations": {
                            "typeId": "java.lang.Boolean",
                            "default": "true"
                          }
                        },
                        "annotations": {
                          "description": {
                            "value": "If false, the reconnection strategy will run in a separate, non-blocking thread"
                          }
                        }
                      }
                    ]
                  },
                  {
                    "type": "Object",
                    "annotations": {
                      "typeId": "java.lang.Object",
                      "typeAlias": {
                        "value": "reconnect-forever"
                      }
                    },
                    "fields": [
                      {
                        "key": {
                          "name": "frequency"
                        },
                        "model": {
                          "type": "Number",
                          "annotations": {
                            "int": {},
                            "typeId": "java.lang.Long",
                            "default": "2000"
                          }
                        },
                        "annotations": {
                          "description": {
                            "value": "How often (in ms) to reconnect"
                          }
                        }
                      }
                    ]
                  }
                ]
              },
              "hasDynamicType": false,
              "required": false,
              "expressionSupport": "NOT_SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": false,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "tabName": "Advanced"
              },
              "name": "reconnectionStrategy",
              "description": "A retry strategy in case of connectivity errors",
              "modelProperties": {
                "org.mule.runtime.extension.internal.property.QNameModelProperty": {
                  "value": {
                    "namespaceURI": "http://www.mulesoft.org/schema/mule/core",
                    "localPart": "abstract-reconnection-strategy",
                    "prefix": "mule"
                  }
                },
                "org.mule.runtime.extension.internal.property.InfrastructureParameterModelProperty": {}
              }
            }
          ],
          "exclusiveParametersModels": [],
          "layoutModel": {
            "password": false,
            "text": false,
            "query": false
          },
          "showInDsl": false,
          "name": "Connection",
          "description": "",
          "modelProperties": {}
        }
      ],
      "name": "generic-connection",
      "displayModel": {
        "displayName": "Generic Connection"
      },
      "description": "ConnectionProvider that creates connections for any kind of database using a JDBC URL\nand the required JDBC Driver Class",
      "modelProperties": {}
    },
    {
      "connectionManagementType": "NONE",
      "externalLibraryModels": [
        {
          "name": "Derby JDBC Driver",
          "description": "A JDBC driver which supports connecting to a Derby Database",
          "fileName": "(.*)\\.jar",
          "requiredClassName": "org.apache.derby.jdbc.EmbeddedDriver"
        }
      ],
      "parameterGroupModels": [
        {
          "parameters": [
            {
              "type": {
                "format": "java",
                "type": "@ref:org.mule.extension.db.api.config.DbPoolingProfile"
              },
              "hasDynamicType": false,
              "required": false,
              "expressionSupport": "NOT_SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 7,
                "tabName": "Advanced"
              },
              "name": "poolingProfile",
              "description": "Provides a way to configure database connection pooling.",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "Array",
                "annotations": {
                  "typeId": "java.util.List"
                },
                "item": {
                  "type": "@ref:org.mule.extension.db.api.param.CustomDataType"
                }
              },
              "hasDynamicType": false,
              "required": false,
              "expressionSupport": "NOT_SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 8
              },
              "name": "customDataTypes",
              "description": "Specifies non-standard custom data types",
              "modelProperties": {}
            }
          ],
          "exclusiveParametersModels": [],
          "showInDsl": false,
          "name": "General",
          "description": "",
          "modelProperties": {}
        },
        {
          "parameters": [
            {
              "type": {
                "format": "java",
                "type": "String",
                "annotations": {
                  "typeId": "org.mule.extension.db.api.param.TransactionIsolation",
                  "enum": {
                    "type": "[Ljava.lang.String;",
                    "values": [
                      "NONE",
                      "READ_COMMITTED",
                      "READ_UNCOMMITTED",
                      "REPEATABLE_READ",
                      "SERIALIZABLE",
                      "NOT_CONFIGURED"
                    ]
                  }
                }
              },
              "hasDynamicType": false,
              "required": false,
              "expressionSupport": "NOT_SUPPORTED",
              "defaultValue": "NOT_CONFIGURED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 4,
                "tabName": "Transactions"
              },
              "name": "transactionIsolation",
              "description": "The transaction isolation level to set on the driver when connecting the database.",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "Boolean",
                "annotations": {
                  "typeId": "boolean"
                }
              },
              "hasDynamicType": false,
              "required": false,
              "expressionSupport": "NOT_SUPPORTED",
              "defaultValue": "false",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 5,
                "tabName": "Transactions"
              },
              "name": "useXaTransactions",
              "displayModel": {
                "displayName": "Use XA Transactions"
              },
              "description": "Indicates whether or not the created datasource has to support XA transactions. Default is false.",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "String",
                "annotations": {
                  "typeId": "java.lang.String"
                }
              },
              "hasDynamicType": false,
              "required": false,
              "expressionSupport": "SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 1,
                "tabName": "General"
              },
              "name": "database",
              "description": "Name of the database",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "String",
                "annotations": {
                  "typeId": "java.lang.String"
                }
              },
              "hasDynamicType": false,
              "required": false,
              "expressionSupport": "SUPPORTED",
              "defaultValue": "directory",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 2,
                "tabName": "General"
              },
              "name": "subsubProtocol",
              "description": "Specifies the type of SubsubProtocol to be used by Derby. The available options are:\n\u0027directory\u0027, \u0027memory\u0027, \u0027classpath\u0027 and \u0027jar\u0027.",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "Boolean",
                "annotations": {
                  "typeId": "boolean"
                }
              },
              "hasDynamicType": false,
              "required": false,
              "expressionSupport": "SUPPORTED",
              "defaultValue": "false",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 3,
                "tabName": "General"
              },
              "name": "create",
              "description": "Indicates if the database should be created if it this not exist.",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "Object",
                "annotations": {
                  "typeId": "java.util.Map",
                  "classInformation": {
                    "hasDefaultConstructor": false,
                    "isInterface": true,
                    "isInstantiable": false,
                    "isAbstract": true,
                    "isFinal": false,
                    "implementedInterfaces": [],
                    "parent": "",
                    "genericTypes": [
                      "java.lang.String",
                      "java.lang.String"
                    ]
                  }
                },
                "open": {
                  "type": "String",
                  "annotations": {
                    "typeId": "java.lang.String"
                  }
                },
                "fields": []
              },
              "hasDynamicType": false,
              "required": false,
              "expressionSupport": "SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 6,
                "tabName": "Advanced"
              },
              "name": "connectionProperties",
              "description": "Specifies a list of custom key-value connectionProperties for the config.",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "Union",
                "annotations": {
                  "typeId": "java.lang.Object",
                  "typeAlias": {
                    "value": "ReconnectionStrategy"
                  }
                },
                "of": [
                  {
                    "type": "Object",
                    "annotations": {
                      "typeId": "java.lang.Object",
                      "typeAlias": {
                        "value": "reconnect"
                      }
                    },
                    "fields": [
                      {
                        "key": {
                          "name": "frequency"
                        },
                        "model": {
                          "type": "Number",
                          "annotations": {
                            "int": {},
                            "typeId": "java.lang.Long",
                            "default": "2000"
                          }
                        },
                        "annotations": {
                          "description": {
                            "value": "How often (in ms) to reconnect"
                          }
                        }
                      },
                      {
                        "key": {
                          "name": "count"
                        },
                        "model": {
                          "type": "Number",
                          "annotations": {
                            "int": {},
                            "typeId": "java.lang.Integer",
                            "default": "2"
                          }
                        },
                        "annotations": {
                          "description": {
                            "value": "How many reconnection attempts to make"
                          }
                        }
                      },
                      {
                        "key": {
                          "name": "blocking"
                        },
                        "model": {
                          "type": "Boolean",
                          "annotations": {
                            "typeId": "java.lang.Boolean",
                            "default": "true"
                          }
                        },
                        "annotations": {
                          "description": {
                            "value": "If false, the reconnection strategy will run in a separate, non-blocking thread"
                          }
                        }
                      }
                    ]
                  },
                  {
                    "type": "Object",
                    "annotations": {
                      "typeId": "java.lang.Object",
                      "typeAlias": {
                        "value": "reconnect-forever"
                      }
                    },
                    "fields": [
                      {
                        "key": {
                          "name": "frequency"
                        },
                        "model": {
                          "type": "Number",
                          "annotations": {
                            "int": {},
                            "typeId": "java.lang.Long",
                            "default": "2000"
                          }
                        },
                        "annotations": {
                          "description": {
                            "value": "How often (in ms) to reconnect"
                          }
                        }
                      }
                    ]
                  }
                ]
              },
              "hasDynamicType": false,
              "required": false,
              "expressionSupport": "NOT_SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": false,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "tabName": "Advanced"
              },
              "name": "reconnectionStrategy",
              "description": "A retry strategy in case of connectivity errors",
              "modelProperties": {
                "org.mule.runtime.extension.internal.property.QNameModelProperty": {
                  "value": {
                    "namespaceURI": "http://www.mulesoft.org/schema/mule/core",
                    "localPart": "abstract-reconnection-strategy",
                    "prefix": "mule"
                  }
                },
                "org.mule.runtime.extension.internal.property.InfrastructureParameterModelProperty": {}
              }
            }
          ],
          "exclusiveParametersModels": [],
          "layoutModel": {
            "password": false,
            "text": false,
            "query": false
          },
          "showInDsl": false,
          "name": "Connection",
          "description": "",
          "modelProperties": {}
        }
      ],
      "name": "derby-connection",
      "displayModel": {
        "displayName": "Derby Connection"
      },
      "description": "Creates connections to a Derby database",
      "modelProperties": {}
    },
    {
      "connectionManagementType": "NONE",
      "externalLibraryModels": [
        {
          "name": "MySQL JDBC Driver",
          "description": "A JDBC driver which supports connecting to the MySQL Database",
          "fileName": "(.*)\\.jar",
          "requiredClassName": "com.mysql.jdbc.Driver"
        }
      ],
      "parameterGroupModels": [
        {
          "parameters": [
            {
              "type": {
                "format": "java",
                "type": "@ref:org.mule.extension.db.api.config.DbPoolingProfile"
              },
              "hasDynamicType": false,
              "required": false,
              "expressionSupport": "NOT_SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 9,
                "tabName": "Advanced"
              },
              "name": "poolingProfile",
              "description": "Provides a way to configure database connection pooling.",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "Array",
                "annotations": {
                  "typeId": "java.util.List"
                },
                "item": {
                  "type": "@ref:org.mule.extension.db.api.param.CustomDataType"
                }
              },
              "hasDynamicType": false,
              "required": false,
              "expressionSupport": "NOT_SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 10
              },
              "name": "customDataTypes",
              "description": "Specifies non-standard custom data types",
              "modelProperties": {}
            }
          ],
          "exclusiveParametersModels": [],
          "showInDsl": false,
          "name": "General",
          "description": "",
          "modelProperties": {}
        },
        {
          "parameters": [
            {
              "type": {
                "format": "java",
                "type": "String",
                "annotations": {
                  "typeId": "org.mule.extension.db.api.param.TransactionIsolation",
                  "enum": {
                    "type": "[Ljava.lang.String;",
                    "values": [
                      "NONE",
                      "READ_COMMITTED",
                      "READ_UNCOMMITTED",
                      "REPEATABLE_READ",
                      "SERIALIZABLE",
                      "NOT_CONFIGURED"
                    ]
                  }
                }
              },
              "hasDynamicType": false,
              "required": false,
              "expressionSupport": "NOT_SUPPORTED",
              "defaultValue": "NOT_CONFIGURED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 6,
                "tabName": "Transactions"
              },
              "name": "transactionIsolation",
              "description": "The transaction isolation level to set on the driver when connecting the database.",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "Boolean",
                "annotations": {
                  "typeId": "boolean"
                }
              },
              "hasDynamicType": false,
              "required": false,
              "expressionSupport": "NOT_SUPPORTED",
              "defaultValue": "false",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 7,
                "tabName": "Transactions"
              },
              "name": "useXaTransactions",
              "displayModel": {
                "displayName": "Use XA Transactions"
              },
              "description": "Indicates whether or not the created datasource has to support XA transactions. Default is false.",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "String",
                "annotations": {
                  "typeId": "java.lang.String"
                }
              },
              "hasDynamicType": false,
              "required": true,
              "expressionSupport": "SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 1,
                "tabName": "General"
              },
              "name": "host",
              "description": "Configures the host of the database",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "Number",
                "annotations": {
                  "typeId": "java.lang.Integer"
                }
              },
              "hasDynamicType": false,
              "required": true,
              "expressionSupport": "SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 2,
                "tabName": "General"
              },
              "name": "port",
              "description": "Configures the port of the database",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "String",
                "annotations": {
                  "typeId": "java.lang.String"
                }
              },
              "hasDynamicType": false,
              "required": false,
              "expressionSupport": "SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 3,
                "tabName": "General"
              },
              "name": "user",
              "description": "The user that is used for authentication against the database",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "String",
                "annotations": {
                  "typeId": "java.lang.String"
                }
              },
              "hasDynamicType": false,
              "required": false,
              "expressionSupport": "SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": true,
                "text": false,
                "query": false,
                "order": 4,
                "tabName": "General"
              },
              "name": "password",
              "description": "The password that is used for authentication against the database",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "String",
                "annotations": {
                  "typeId": "java.lang.String"
                }
              },
              "hasDynamicType": false,
              "required": false,
              "expressionSupport": "SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 5,
                "tabName": "General"
              },
              "name": "database",
              "description": "The name of the database",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "Object",
                "annotations": {
                  "typeId": "java.util.Map",
                  "classInformation": {
                    "hasDefaultConstructor": false,
                    "isInterface": true,
                    "isInstantiable": false,
                    "isAbstract": true,
                    "isFinal": false,
                    "implementedInterfaces": [],
                    "parent": "",
                    "genericTypes": [
                      "java.lang.String",
                      "java.lang.String"
                    ]
                  }
                },
                "open": {
                  "type": "String",
                  "annotations": {
                    "typeId": "java.lang.String"
                  }
                },
                "fields": []
              },
              "hasDynamicType": false,
              "required": false,
              "expressionSupport": "SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 8,
                "tabName": "Advanced"
              },
              "name": "connectionProperties",
              "description": "Specifies a list of custom key-value connectionProperties for the config.",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "Union",
                "annotations": {
                  "typeId": "java.lang.Object",
                  "typeAlias": {
                    "value": "ReconnectionStrategy"
                  }
                },
                "of": [
                  {
                    "type": "Object",
                    "annotations": {
                      "typeId": "java.lang.Object",
                      "typeAlias": {
                        "value": "reconnect"
                      }
                    },
                    "fields": [
                      {
                        "key": {
                          "name": "frequency"
                        },
                        "model": {
                          "type": "Number",
                          "annotations": {
                            "int": {},
                            "typeId": "java.lang.Long",
                            "default": "2000"
                          }
                        },
                        "annotations": {
                          "description": {
                            "value": "How often (in ms) to reconnect"
                          }
                        }
                      },
                      {
                        "key": {
                          "name": "count"
                        },
                        "model": {
                          "type": "Number",
                          "annotations": {
                            "int": {},
                            "typeId": "java.lang.Integer",
                            "default": "2"
                          }
                        },
                        "annotations": {
                          "description": {
                            "value": "How many reconnection attempts to make"
                          }
                        }
                      },
                      {
                        "key": {
                          "name": "blocking"
                        },
                        "model": {
                          "type": "Boolean",
                          "annotations": {
                            "typeId": "java.lang.Boolean",
                            "default": "true"
                          }
                        },
                        "annotations": {
                          "description": {
                            "value": "If false, the reconnection strategy will run in a separate, non-blocking thread"
                          }
                        }
                      }
                    ]
                  },
                  {
                    "type": "Object",
                    "annotations": {
                      "typeId": "java.lang.Object",
                      "typeAlias": {
                        "value": "reconnect-forever"
                      }
                    },
                    "fields": [
                      {
                        "key": {
                          "name": "frequency"
                        },
                        "model": {
                          "type": "Number",
                          "annotations": {
                            "int": {},
                            "typeId": "java.lang.Long",
                            "default": "2000"
                          }
                        },
                        "annotations": {
                          "description": {
                            "value": "How often (in ms) to reconnect"
                          }
                        }
                      }
                    ]
                  }
                ]
              },
              "hasDynamicType": false,
              "required": false,
              "expressionSupport": "NOT_SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": false,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "tabName": "Advanced"
              },
              "name": "reconnectionStrategy",
              "description": "A retry strategy in case of connectivity errors",
              "modelProperties": {
                "org.mule.runtime.extension.internal.property.QNameModelProperty": {
                  "value": {
                    "namespaceURI": "http://www.mulesoft.org/schema/mule/core",
                    "localPart": "abstract-reconnection-strategy",
                    "prefix": "mule"
                  }
                },
                "org.mule.runtime.extension.internal.property.InfrastructureParameterModelProperty": {}
              }
            }
          ],
          "exclusiveParametersModels": [],
          "layoutModel": {
            "password": false,
            "text": false,
            "query": false
          },
          "showInDsl": false,
          "name": "Connection",
          "description": "",
          "modelProperties": {}
        }
      ],
      "name": "my-sql-connection",
      "displayModel": {
        "displayName": "MySQL Connection"
      },
      "description": "Creates connections to a MySQL database.",
      "modelProperties": {}
    },
    {
      "connectionManagementType": "NONE",
      "externalLibraryModels": [
        {
          "name": "Oracle JDBC Driver",
          "description": "A JDBC driver which supports connecting to an Oracle Database",
          "fileName": "(.*)\\.jar",
          "requiredClassName": "oracle.jdbc.driver.OracleDriver"
        }
      ],
      "parameterGroupModels": [
        {
          "parameters": [
            {
              "type": {
                "format": "java",
                "type": "@ref:org.mule.extension.db.api.config.DbPoolingProfile"
              },
              "hasDynamicType": false,
              "required": false,
              "expressionSupport": "NOT_SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 8,
                "tabName": "Advanced"
              },
              "name": "poolingProfile",
              "description": "Provides a way to configure database connection pooling.",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "Array",
                "annotations": {
                  "typeId": "java.util.List"
                },
                "item": {
                  "type": "@ref:org.mule.extension.db.api.param.CustomDataType"
                }
              },
              "hasDynamicType": false,
              "required": false,
              "expressionSupport": "NOT_SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 9
              },
              "name": "customDataTypes",
              "description": "Specifies non-standard custom data types",
              "modelProperties": {}
            }
          ],
          "exclusiveParametersModels": [],
          "showInDsl": false,
          "name": "General",
          "description": "",
          "modelProperties": {}
        },
        {
          "parameters": [
            {
              "type": {
                "format": "java",
                "type": "String",
                "annotations": {
                  "typeId": "org.mule.extension.db.api.param.TransactionIsolation",
                  "enum": {
                    "type": "[Ljava.lang.String;",
                    "values": [
                      "NONE",
                      "READ_COMMITTED",
                      "READ_UNCOMMITTED",
                      "REPEATABLE_READ",
                      "SERIALIZABLE",
                      "NOT_CONFIGURED"
                    ]
                  }
                }
              },
              "hasDynamicType": false,
              "required": false,
              "expressionSupport": "NOT_SUPPORTED",
              "defaultValue": "NOT_CONFIGURED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 6,
                "tabName": "Transactions"
              },
              "name": "transactionIsolation",
              "description": "The transaction isolation level to set on the driver when connecting the database.",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "Boolean",
                "annotations": {
                  "typeId": "boolean"
                }
              },
              "hasDynamicType": false,
              "required": false,
              "expressionSupport": "NOT_SUPPORTED",
              "defaultValue": "false",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 7,
                "tabName": "Transactions"
              },
              "name": "useXaTransactions",
              "displayModel": {
                "displayName": "Use XA Transactions"
              },
              "description": "Indicates whether or not the created datasource has to support XA transactions. Default is false.",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "String",
                "annotations": {
                  "typeId": "java.lang.String"
                }
              },
              "hasDynamicType": false,
              "required": true,
              "expressionSupport": "SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 1,
                "tabName": "General"
              },
              "name": "host",
              "description": "Configures the host of the database",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "Number",
                "annotations": {
                  "typeId": "java.lang.Integer"
                }
              },
              "hasDynamicType": false,
              "required": false,
              "expressionSupport": "SUPPORTED",
              "defaultValue": "1521",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 2,
                "tabName": "General"
              },
              "name": "port",
              "description": "Configures the port of the database",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "String",
                "annotations": {
                  "typeId": "java.lang.String"
                }
              },
              "hasDynamicType": false,
              "required": false,
              "expressionSupport": "SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 3,
                "tabName": "General"
              },
              "name": "user",
              "description": "The user that is used for authentication against the database",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "String",
                "annotations": {
                  "typeId": "java.lang.String"
                }
              },
              "hasDynamicType": false,
              "required": false,
              "expressionSupport": "SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": true,
                "text": false,
                "query": false,
                "order": 4,
                "tabName": "General"
              },
              "name": "password",
              "description": "The password that is used for authentication against the database",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "String",
                "annotations": {
                  "typeId": "java.lang.String"
                }
              },
              "hasDynamicType": false,
              "required": false,
              "expressionSupport": "SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 5,
                "tabName": "General"
              },
              "name": "instance",
              "description": "The name of the database instance",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "Union",
                "annotations": {
                  "typeId": "java.lang.Object",
                  "typeAlias": {
                    "value": "ReconnectionStrategy"
                  }
                },
                "of": [
                  {
                    "type": "Object",
                    "annotations": {
                      "typeId": "java.lang.Object",
                      "typeAlias": {
                        "value": "reconnect"
                      }
                    },
                    "fields": [
                      {
                        "key": {
                          "name": "frequency"
                        },
                        "model": {
                          "type": "Number",
                          "annotations": {
                            "int": {},
                            "typeId": "java.lang.Long",
                            "default": "2000"
                          }
                        },
                        "annotations": {
                          "description": {
                            "value": "How often (in ms) to reconnect"
                          }
                        }
                      },
                      {
                        "key": {
                          "name": "count"
                        },
                        "model": {
                          "type": "Number",
                          "annotations": {
                            "int": {},
                            "typeId": "java.lang.Integer",
                            "default": "2"
                          }
                        },
                        "annotations": {
                          "description": {
                            "value": "How many reconnection attempts to make"
                          }
                        }
                      },
                      {
                        "key": {
                          "name": "blocking"
                        },
                        "model": {
                          "type": "Boolean",
                          "annotations": {
                            "typeId": "java.lang.Boolean",
                            "default": "true"
                          }
                        },
                        "annotations": {
                          "description": {
                            "value": "If false, the reconnection strategy will run in a separate, non-blocking thread"
                          }
                        }
                      }
                    ]
                  },
                  {
                    "type": "Object",
                    "annotations": {
                      "typeId": "java.lang.Object",
                      "typeAlias": {
                        "value": "reconnect-forever"
                      }
                    },
                    "fields": [
                      {
                        "key": {
                          "name": "frequency"
                        },
                        "model": {
                          "type": "Number",
                          "annotations": {
                            "int": {},
                            "typeId": "java.lang.Long",
                            "default": "2000"
                          }
                        },
                        "annotations": {
                          "description": {
                            "value": "How often (in ms) to reconnect"
                          }
                        }
                      }
                    ]
                  }
                ]
              },
              "hasDynamicType": false,
              "required": false,
              "expressionSupport": "NOT_SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": false,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "tabName": "Advanced"
              },
              "name": "reconnectionStrategy",
              "description": "A retry strategy in case of connectivity errors",
              "modelProperties": {
                "org.mule.runtime.extension.internal.property.QNameModelProperty": {
                  "value": {
                    "namespaceURI": "http://www.mulesoft.org/schema/mule/core",
                    "localPart": "abstract-reconnection-strategy",
                    "prefix": "mule"
                  }
                },
                "org.mule.runtime.extension.internal.property.InfrastructureParameterModelProperty": {}
              }
            }
          ],
          "exclusiveParametersModels": [],
          "layoutModel": {
            "password": false,
            "text": false,
            "query": false
          },
          "showInDsl": false,
          "name": "Connection",
          "description": "",
          "modelProperties": {}
        }
      ],
      "name": "oracle-connection",
      "displayModel": {
        "displayName": "Oracle Connection"
      },
      "description": "Creates connections to a Oracle database",
      "modelProperties": {}
    }
  ],
  "messageSources": [],
  "errors": [
    {
      "type": "CONNECTIVITY",
      "namespace": "DB",
      "parent": {
        "type": "CONNECTIVITY",
        "namespace": "MULE",
        "parent": {
          "type": "ANY",
          "namespace": "MULE"
        }
      }
    },
    {
      "type": "RETRY_EXHAUSTED",
      "namespace": "DB",
      "parent": {
        "type": "RETRY_EXHAUSTED",
        "namespace": "MULE",
        "parent": {
          "type": "ANY",
          "namespace": "MULE"
        }
      }
    },
    {
      "type": "INVALID_CREDENTIALS",
      "namespace": "DB",
      "parent": {
        "type": "CONNECTIVITY",
        "namespace": "DB",
        "parent": {
          "type": "CONNECTIVITY",
          "namespace": "MULE",
          "parent": {
            "type": "ANY",
            "namespace": "MULE"
          }
        }
      }
    },
    {
      "type": "CONNECTIVITY",
      "namespace": "MULE",
      "parent": {
        "type": "ANY",
        "namespace": "MULE"
      }
    },
    {
      "type": "INVALID_DATABASE",
      "namespace": "DB",
      "parent": {
        "type": "CONNECTIVITY",
        "namespace": "DB",
        "parent": {
          "type": "CONNECTIVITY",
          "namespace": "MULE",
          "parent": {
            "type": "ANY",
            "namespace": "MULE"
          }
        }
      }
    },
    {
      "type": "ANY",
      "namespace": "MULE"
    },
    {
      "type": "RETRY_EXHAUSTED",
      "namespace": "MULE",
      "parent": {
        "type": "ANY",
        "namespace": "MULE"
      }
    },
    {
      "type": "CANNOT_REACH",
      "namespace": "DB",
      "parent": {
        "type": "CONNECTIVITY",
        "namespace": "DB",
        "parent": {
          "type": "CONNECTIVITY",
          "namespace": "MULE",
          "parent": {
            "type": "ANY",
            "namespace": "MULE"
          }
        }
      }
    }
  ],
  "modelProperties": {},
  "types": [
    {
      "format": "java",
      "type": "Object",
      "annotations": {
        "typeId": "org.mule.extension.db.api.param.QueryDefinition",
        "classInformation": {
          "hasDefaultConstructor": true,
          "isInterface": false,
          "isInstantiable": true,
          "isAbstract": false,
          "isFinal": false,
          "implementedInterfaces": [],
          "parent": "org.mule.extension.db.api.param.ParameterizedStatementDefinition",
          "genericTypes": []
        },
        "xmlHints": {
          "allowInlineDefinition": true,
          "allowTopLevelDefinition": true,
          "allowReferences": true
        },
        "typeAlias": {
          "value": "query"
        }
      },
      "fields": [
        {
          "key": {
            "name": "template"
          },
          "model": "#..",
          "annotations": {
            "parameterPurpose": {
              "role": "BEHAVIOUR"
            },
            "expressionSupport": {
              "value": "SUPPORTED"
            },
            "xmlHints": {
              "allowInlineDefinition": false,
              "allowTopLevelDefinition": false,
              "allowReferences": true
            }
          }
        },
        {
          "key": {
            "name": "inputParameters"
          },
          "model": {
            "type": "Object",
            "annotations": {
              "typeId": "java.util.Map",
              "classInformation": {
                "hasDefaultConstructor": false,
                "isInterface": true,
                "isInstantiable": false,
                "isAbstract": true,
                "isFinal": false,
                "implementedInterfaces": [],
                "parent": "",
                "genericTypes": [
                  "java.lang.String",
                  "java.lang.Object"
                ]
              }
            },
            "open": {
              "type": "Object",
              "annotations": {
                "typeId": "java.lang.Object",
                "classInformation": {
                  "hasDefaultConstructor": true,
                  "isInterface": false,
                  "isInstantiable": true,
                  "isAbstract": false,
                  "isFinal": false,
                  "implementedInterfaces": [],
                  "parent": "",
                  "genericTypes": []
                },
                "typeAlias": {
                  "value": "Object"
                }
              },
              "fields": []
            },
            "fields": []
          },
          "annotations": {
            "parameterPurpose": {
              "role": "CONTENT"
            },
            "expressionSupport": {
              "value": "SUPPORTED"
            },
            "layout": {
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 2,
                "tabName": "General"
              }
            },
            "org.mule.runtime.extension.api.declaration.type.annotation.DisplayTypeAnnotation": {
              "displayModel": {
                "example": "#[{\u0027name\u0027: \"Max\", \u0027nickname\u0027: \"The Mule\", \u0027company\u0027: \"MuleSoft\"}]"
              }
            }
          }
        },
        {
          "key": {
            "name": "sql"
          },
          "model": {
            "type": "String",
            "annotations": {
              "typeId": "java.lang.String"
            }
          },
          "annotations": {
            "parameterPurpose": {
              "role": "BEHAVIOUR"
            },
            "expressionSupport": {
              "value": "SUPPORTED"
            },
            "layout": {
              "layoutModel": {
                "password": false,
                "text": true,
                "query": false,
                "order": 1,
                "tabName": "General"
              }
            },
            "org.mule.runtime.extension.api.declaration.type.annotation.DisplayTypeAnnotation": {
              "displayModel": {
                "displayName": "SQL Query Text"
              }
            }
          }
        },
        {
          "key": {
            "name": "parameterTypes"
          },
          "model": {
            "type": "Array",
            "annotations": {
              "typeId": "java.util.List"
            },
            "item": {
              "type": "Object",
              "annotations": {
                "typeId": "org.mule.extension.db.api.param.ParameterType",
                "classInformation": {
                  "hasDefaultConstructor": true,
                  "isInterface": false,
                  "isInstantiable": true,
                  "isAbstract": false,
                  "isFinal": false,
                  "implementedInterfaces": [],
                  "parent": "",
                  "genericTypes": []
                },
                "typeAlias": {
                  "value": "ParameterType"
                }
              },
              "fields": [
                {
                  "key": {
                    "name": "key"
                  },
                  "model": {
                    "required": "true",
                    "type": "String",
                    "annotations": {
                      "typeId": "java.lang.String"
                    }
                  },
                  "annotations": {
                    "parameterPurpose": {
                      "role": "BEHAVIOUR"
                    },
                    "expressionSupport": {
                      "value": "NOT_SUPPORTED"
                    }
                  }
                },
                {
                  "key": {
                    "name": "typeClassifier"
                  },
                  "model": {
                    "required": "true",
                    "type": "Object",
                    "annotations": {
                      "typeId": "org.mule.extension.db.api.param.TypeClassifier",
                      "classInformation": {
                        "hasDefaultConstructor": true,
                        "isInterface": false,
                        "isInstantiable": true,
                        "isAbstract": false,
                        "isFinal": false,
                        "implementedInterfaces": [],
                        "parent": "",
                        "genericTypes": []
                      },
                      "typeAlias": {
                        "value": "TypeClassifier"
                      }
                    },
                    "fields": [
                      {
                        "key": {
                          "name": "type"
                        },
                        "model": {
                          "type": "String",
                          "annotations": {
                            "typeId": "org.mule.extension.db.api.param.JdbcType",
                            "enum": {
                              "type": "[Ljava.lang.String;",
                              "values": [
                                "BIT",
                                "TINYINT",
                                "SMALLINT",
                                "INTEGER",
                                "BIGINT",
                                "FLOAT",
                                "REAL",
                                "DOUBLE",
                                "NUMERIC",
                                "DECIMAL",
                                "CHAR",
                                "VARCHAR",
                                "LONGVARCHAR",
                                "DATE",
                                "TIME",
                                "TIMESTAMP",
                                "BINARY",
                                "VARBINARY",
                                "LONGVARBINARY",
                                "NULL",
                                "OTHER",
                                "JAVA_OBJECT",
                                "DISTINCT",
                                "STRUCT",
                                "ARRAY",
                                "BLOB",
                                "CLOB",
                                "REF",
                                "DATALINK",
                                "BOOLEAN",
                                "ROWID",
                                "NCHAR",
                                "NVARCHAR",
                                "LONGNVARCHAR",
                                "NCLOB",
                                "SQLXML",
                                "UNKNOWN"
                              ]
                            }
                          }
                        },
                        "annotations": {
                          "parameterPurpose": {
                            "role": "BEHAVIOUR"
                          },
                          "expressionSupport": {
                            "value": "NOT_SUPPORTED"
                          }
                        }
                      },
                      {
                        "key": {
                          "name": "customType"
                        },
                        "model": {
                          "type": "String",
                          "annotations": {
                            "typeId": "java.lang.String"
                          }
                        },
                        "annotations": {
                          "parameterPurpose": {
                            "role": "BEHAVIOUR"
                          },
                          "expressionSupport": {
                            "value": "NOT_SUPPORTED"
                          }
                        }
                      }
                    ]
                  },
                  "annotations": {
                    "parameterPurpose": {
                      "role": "BEHAVIOUR"
                    },
                    "flattened": {},
                    "expressionSupport": {
                      "value": "SUPPORTED"
                    }
                  }
                }
              ]
            }
          },
          "annotations": {
            "parameterPurpose": {
              "role": "BEHAVIOUR"
            },
            "expressionSupport": {
              "value": "SUPPORTED"
            },
            "layout": {
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "tabName": "Advanced"
              }
            }
          }
        },
        {
          "key": {
            "name": "queryTimeout"
          },
          "model": {
            "type": "Number",
            "annotations": {
              "int": {},
              "typeId": "int"
            }
          },
          "annotations": {
            "parameterPurpose": {
              "role": "BEHAVIOUR"
            },
            "default": "0",
            "expressionSupport": {
              "value": "SUPPORTED"
            },
            "layout": {
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "tabName": "Advanced"
              }
            }
          }
        },
        {
          "key": {
            "name": "queryTimeoutUnit"
          },
          "model": {
            "type": "String",
            "annotations": {
              "typeId": "java.util.concurrent.TimeUnit",
              "enum": {
                "type": "[Ljava.lang.String;",
                "values": [
                  "NANOSECONDS",
                  "MICROSECONDS",
                  "MILLISECONDS",
                  "SECONDS",
                  "MINUTES",
                  "HOURS",
                  "DAYS"
                ]
              }
            }
          },
          "annotations": {
            "parameterPurpose": {
              "role": "BEHAVIOUR"
            },
            "default": "SECONDS",
            "expressionSupport": {
              "value": "SUPPORTED"
            },
            "layout": {
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "tabName": "Advanced"
              }
            }
          }
        },
        {
          "key": {
            "name": "fetchSize"
          },
          "model": {
            "type": "Number",
            "annotations": {
              "typeId": "java.lang.Integer"
            }
          },
          "annotations": {
            "parameterPurpose": {
              "role": "BEHAVIOUR"
            },
            "expressionSupport": {
              "value": "SUPPORTED"
            },
            "layout": {
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "tabName": "Advanced"
              }
            }
          }
        },
        {
          "key": {
            "name": "maxRows"
          },
          "model": {
            "type": "Number",
            "annotations": {
              "typeId": "java.lang.Integer"
            }
          },
          "annotations": {
            "parameterPurpose": {
              "role": "BEHAVIOUR"
            },
            "expressionSupport": {
              "value": "SUPPORTED"
            },
            "layout": {
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "tabName": "Advanced"
              }
            }
          }
        }
      ]
    },
    {
      "format": "java",
      "type": "Object",
      "annotations": {
        "typeId": "org.mule.extension.db.api.param.StoredProcedureCall",
        "classInformation": {
          "hasDefaultConstructor": true,
          "isInterface": false,
          "isInstantiable": true,
          "isAbstract": false,
          "isFinal": false,
          "implementedInterfaces": [],
          "parent": "org.mule.extension.db.api.param.ParameterizedStatementDefinition",
          "genericTypes": []
        },
        "xmlHints": {
          "allowInlineDefinition": true,
          "allowTopLevelDefinition": true,
          "allowReferences": true
        },
        "typeAlias": {
          "value": "StoredProcedureCall"
        }
      },
      "fields": [
        {
          "key": {
            "name": "inOutParameters"
          },
          "model": {
            "type": "Object",
            "annotations": {
              "typeId": "java.util.LinkedHashMap",
              "classInformation": {
                "hasDefaultConstructor": true,
                "isInterface": false,
                "isInstantiable": true,
                "isAbstract": false,
                "isFinal": false,
                "implementedInterfaces": [
                  "java.util.Map"
                ],
                "parent": "java.util.HashMap",
                "genericTypes": [
                  "java.lang.String",
                  "java.lang.Object"
                ]
              }
            },
            "open": {
              "type": "Object",
              "annotations": {
                "typeId": "java.lang.Object",
                "classInformation": {
                  "hasDefaultConstructor": true,
                  "isInterface": false,
                  "isInstantiable": true,
                  "isAbstract": false,
                  "isFinal": false,
                  "implementedInterfaces": [],
                  "parent": "",
                  "genericTypes": []
                },
                "typeAlias": {
                  "value": "Object"
                }
              },
              "fields": []
            },
            "fields": []
          },
          "annotations": {
            "parameterPurpose": {
              "role": "BEHAVIOUR"
            },
            "expressionSupport": {
              "value": "SUPPORTED"
            },
            "xmlHints": {
              "allowInlineDefinition": true,
              "allowTopLevelDefinition": false,
              "allowReferences": false
            },
            "org.mule.runtime.extension.api.declaration.type.annotation.DisplayTypeAnnotation": {
              "displayModel": {
                "displayName": "Input - Output Parameters"
              }
            }
          }
        },
        {
          "key": {
            "name": "outputParameters"
          },
          "model": {
            "type": "Array",
            "annotations": {
              "typeId": "java.util.List"
            },
            "item": {
              "type": "Object",
              "annotations": {
                "typeId": "org.mule.extension.db.api.param.OutputParameter",
                "classInformation": {
                  "hasDefaultConstructor": true,
                  "isInterface": false,
                  "isInstantiable": true,
                  "isAbstract": false,
                  "isFinal": false,
                  "implementedInterfaces": [],
                  "parent": "org.mule.extension.db.api.param.ParameterType",
                  "genericTypes": []
                },
                "typeAlias": {
                  "value": "OutputParameter"
                }
              },
              "fields": [
                {
                  "key": {
                    "name": "key"
                  },
                  "model": {
                    "required": "true",
                    "type": "String",
                    "annotations": {
                      "typeId": "java.lang.String"
                    }
                  },
                  "annotations": {
                    "parameterPurpose": {
                      "role": "BEHAVIOUR"
                    },
                    "expressionSupport": {
                      "value": "NOT_SUPPORTED"
                    }
                  }
                },
                {
                  "key": {
                    "name": "typeClassifier"
                  },
                  "model": {
                    "required": "true",
                    "type": "Object",
                    "annotations": {
                      "typeId": "org.mule.extension.db.api.param.TypeClassifier",
                      "classInformation": {
                        "hasDefaultConstructor": true,
                        "isInterface": false,
                        "isInstantiable": true,
                        "isAbstract": false,
                        "isFinal": false,
                        "implementedInterfaces": [],
                        "parent": "",
                        "genericTypes": []
                      },
                      "typeAlias": {
                        "value": "TypeClassifier"
                      }
                    },
                    "fields": [
                      {
                        "key": {
                          "name": "type"
                        },
                        "model": {
                          "type": "String",
                          "annotations": {
                            "typeId": "org.mule.extension.db.api.param.JdbcType",
                            "enum": {
                              "type": "[Ljava.lang.String;",
                              "values": [
                                "BIT",
                                "TINYINT",
                                "SMALLINT",
                                "INTEGER",
                                "BIGINT",
                                "FLOAT",
                                "REAL",
                                "DOUBLE",
                                "NUMERIC",
                                "DECIMAL",
                                "CHAR",
                                "VARCHAR",
                                "LONGVARCHAR",
                                "DATE",
                                "TIME",
                                "TIMESTAMP",
                                "BINARY",
                                "VARBINARY",
                                "LONGVARBINARY",
                                "NULL",
                                "OTHER",
                                "JAVA_OBJECT",
                                "DISTINCT",
                                "STRUCT",
                                "ARRAY",
                                "BLOB",
                                "CLOB",
                                "REF",
                                "DATALINK",
                                "BOOLEAN",
                                "ROWID",
                                "NCHAR",
                                "NVARCHAR",
                                "LONGNVARCHAR",
                                "NCLOB",
                                "SQLXML",
                                "UNKNOWN"
                              ]
                            }
                          }
                        },
                        "annotations": {
                          "parameterPurpose": {
                            "role": "BEHAVIOUR"
                          },
                          "expressionSupport": {
                            "value": "NOT_SUPPORTED"
                          }
                        }
                      },
                      {
                        "key": {
                          "name": "customType"
                        },
                        "model": {
                          "type": "String",
                          "annotations": {
                            "typeId": "java.lang.String"
                          }
                        },
                        "annotations": {
                          "parameterPurpose": {
                            "role": "BEHAVIOUR"
                          },
                          "expressionSupport": {
                            "value": "NOT_SUPPORTED"
                          }
                        }
                      }
                    ]
                  },
                  "annotations": {
                    "parameterPurpose": {
                      "role": "BEHAVIOUR"
                    },
                    "flattened": {},
                    "expressionSupport": {
                      "value": "SUPPORTED"
                    }
                  }
                }
              ]
            }
          },
          "annotations": {
            "parameterPurpose": {
              "role": "BEHAVIOUR"
            },
            "expressionSupport": {
              "value": "SUPPORTED"
            },
            "xmlHints": {
              "allowInlineDefinition": true,
              "allowTopLevelDefinition": false,
              "allowReferences": false
            },
            "org.mule.runtime.extension.api.declaration.type.annotation.DisplayTypeAnnotation": {
              "displayModel": {
                "displayName": "Output Parameters"
              }
            }
          }
        },
        {
          "key": {
            "name": "template"
          },
          "model": "#..",
          "annotations": {
            "parameterPurpose": {
              "role": "BEHAVIOUR"
            },
            "expressionSupport": {
              "value": "SUPPORTED"
            },
            "xmlHints": {
              "allowInlineDefinition": false,
              "allowTopLevelDefinition": false,
              "allowReferences": true
            }
          }
        },
        {
          "key": {
            "name": "inputParameters"
          },
          "model": {
            "type": "Object",
            "annotations": {
              "typeId": "java.util.Map",
              "classInformation": {
                "hasDefaultConstructor": false,
                "isInterface": true,
                "isInstantiable": false,
                "isAbstract": true,
                "isFinal": false,
                "implementedInterfaces": [],
                "parent": "",
                "genericTypes": [
                  "java.lang.String",
                  "java.lang.Object"
                ]
              }
            },
            "open": {
              "type": "Object",
              "annotations": {
                "typeId": "java.lang.Object",
                "classInformation": {
                  "hasDefaultConstructor": true,
                  "isInterface": false,
                  "isInstantiable": true,
                  "isAbstract": false,
                  "isFinal": false,
                  "implementedInterfaces": [],
                  "parent": "",
                  "genericTypes": []
                },
                "typeAlias": {
                  "value": "Object"
                }
              },
              "fields": []
            },
            "fields": []
          },
          "annotations": {
            "parameterPurpose": {
              "role": "CONTENT"
            },
            "expressionSupport": {
              "value": "SUPPORTED"
            },
            "layout": {
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 2,
                "tabName": "General"
              }
            },
            "org.mule.runtime.extension.api.declaration.type.annotation.DisplayTypeAnnotation": {
              "displayModel": {
                "example": "#[{\u0027name\u0027: \"Max\", \u0027nickname\u0027: \"The Mule\", \u0027company\u0027: \"MuleSoft\"}]"
              }
            }
          }
        },
        {
          "key": {
            "name": "sql"
          },
          "model": {
            "type": "String",
            "annotations": {
              "typeId": "java.lang.String"
            }
          },
          "annotations": {
            "parameterPurpose": {
              "role": "BEHAVIOUR"
            },
            "expressionSupport": {
              "value": "SUPPORTED"
            },
            "layout": {
              "layoutModel": {
                "password": false,
                "text": true,
                "query": false,
                "order": 1,
                "tabName": "General"
              }
            },
            "org.mule.runtime.extension.api.declaration.type.annotation.DisplayTypeAnnotation": {
              "displayModel": {
                "displayName": "SQL Query Text"
              }
            }
          }
        },
        {
          "key": {
            "name": "parameterTypes"
          },
          "model": {
            "type": "Array",
            "annotations": {
              "typeId": "java.util.List"
            },
            "item": {
              "type": "Object",
              "annotations": {
                "typeId": "org.mule.extension.db.api.param.ParameterType",
                "classInformation": {
                  "hasDefaultConstructor": true,
                  "isInterface": false,
                  "isInstantiable": true,
                  "isAbstract": false,
                  "isFinal": false,
                  "implementedInterfaces": [],
                  "parent": "",
                  "genericTypes": []
                },
                "typeAlias": {
                  "value": "ParameterType"
                }
              },
              "fields": [
                {
                  "key": {
                    "name": "key"
                  },
                  "model": {
                    "required": "true",
                    "type": "String",
                    "annotations": {
                      "typeId": "java.lang.String"
                    }
                  },
                  "annotations": {
                    "parameterPurpose": {
                      "role": "BEHAVIOUR"
                    },
                    "expressionSupport": {
                      "value": "NOT_SUPPORTED"
                    }
                  }
                },
                {
                  "key": {
                    "name": "typeClassifier"
                  },
                  "model": {
                    "required": "true",
                    "type": "Object",
                    "annotations": {
                      "typeId": "org.mule.extension.db.api.param.TypeClassifier",
                      "classInformation": {
                        "hasDefaultConstructor": true,
                        "isInterface": false,
                        "isInstantiable": true,
                        "isAbstract": false,
                        "isFinal": false,
                        "implementedInterfaces": [],
                        "parent": "",
                        "genericTypes": []
                      },
                      "typeAlias": {
                        "value": "TypeClassifier"
                      }
                    },
                    "fields": [
                      {
                        "key": {
                          "name": "type"
                        },
                        "model": {
                          "type": "String",
                          "annotations": {
                            "typeId": "org.mule.extension.db.api.param.JdbcType",
                            "enum": {
                              "type": "[Ljava.lang.String;",
                              "values": [
                                "BIT",
                                "TINYINT",
                                "SMALLINT",
                                "INTEGER",
                                "BIGINT",
                                "FLOAT",
                                "REAL",
                                "DOUBLE",
                                "NUMERIC",
                                "DECIMAL",
                                "CHAR",
                                "VARCHAR",
                                "LONGVARCHAR",
                                "DATE",
                                "TIME",
                                "TIMESTAMP",
                                "BINARY",
                                "VARBINARY",
                                "LONGVARBINARY",
                                "NULL",
                                "OTHER",
                                "JAVA_OBJECT",
                                "DISTINCT",
                                "STRUCT",
                                "ARRAY",
                                "BLOB",
                                "CLOB",
                                "REF",
                                "DATALINK",
                                "BOOLEAN",
                                "ROWID",
                                "NCHAR",
                                "NVARCHAR",
                                "LONGNVARCHAR",
                                "NCLOB",
                                "SQLXML",
                                "UNKNOWN"
                              ]
                            }
                          }
                        },
                        "annotations": {
                          "parameterPurpose": {
                            "role": "BEHAVIOUR"
                          },
                          "expressionSupport": {
                            "value": "NOT_SUPPORTED"
                          }
                        }
                      },
                      {
                        "key": {
                          "name": "customType"
                        },
                        "model": {
                          "type": "String",
                          "annotations": {
                            "typeId": "java.lang.String"
                          }
                        },
                        "annotations": {
                          "parameterPurpose": {
                            "role": "BEHAVIOUR"
                          },
                          "expressionSupport": {
                            "value": "NOT_SUPPORTED"
                          }
                        }
                      }
                    ]
                  },
                  "annotations": {
                    "parameterPurpose": {
                      "role": "BEHAVIOUR"
                    },
                    "flattened": {},
                    "expressionSupport": {
                      "value": "SUPPORTED"
                    }
                  }
                }
              ]
            }
          },
          "annotations": {
            "parameterPurpose": {
              "role": "BEHAVIOUR"
            },
            "expressionSupport": {
              "value": "SUPPORTED"
            },
            "layout": {
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "tabName": "Advanced"
              }
            }
          }
        },
        {
          "key": {
            "name": "queryTimeout"
          },
          "model": {
            "type": "Number",
            "annotations": {
              "int": {},
              "typeId": "int"
            }
          },
          "annotations": {
            "parameterPurpose": {
              "role": "BEHAVIOUR"
            },
            "default": "0",
            "expressionSupport": {
              "value": "SUPPORTED"
            },
            "layout": {
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "tabName": "Advanced"
              }
            }
          }
        },
        {
          "key": {
            "name": "queryTimeoutUnit"
          },
          "model": {
            "type": "String",
            "annotations": {
              "typeId": "java.util.concurrent.TimeUnit",
              "enum": {
                "type": "[Ljava.lang.String;",
                "values": [
                  "NANOSECONDS",
                  "MICROSECONDS",
                  "MILLISECONDS",
                  "SECONDS",
                  "MINUTES",
                  "HOURS",
                  "DAYS"
                ]
              }
            }
          },
          "annotations": {
            "parameterPurpose": {
              "role": "BEHAVIOUR"
            },
            "default": "SECONDS",
            "expressionSupport": {
              "value": "SUPPORTED"
            },
            "layout": {
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "tabName": "Advanced"
              }
            }
          }
        },
        {
          "key": {
            "name": "fetchSize"
          },
          "model": {
            "type": "Number",
            "annotations": {
              "typeId": "java.lang.Integer"
            }
          },
          "annotations": {
            "parameterPurpose": {
              "role": "BEHAVIOUR"
            },
            "expressionSupport": {
              "value": "SUPPORTED"
            },
            "layout": {
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "tabName": "Advanced"
              }
            }
          }
        },
        {
          "key": {
            "name": "maxRows"
          },
          "model": {
            "type": "Number",
            "annotations": {
              "typeId": "java.lang.Integer"
            }
          },
          "annotations": {
            "parameterPurpose": {
              "role": "BEHAVIOUR"
            },
            "expressionSupport": {
              "value": "SUPPORTED"
            },
            "layout": {
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "tabName": "Advanced"
              }
            }
          }
        }
      ]
    },
    {
      "format": "java",
      "type": "Object",
      "annotations": {
        "typeId": "org.mule.extension.db.api.param.BulkQueryDefinition",
        "classInformation": {
          "hasDefaultConstructor": true,
          "isInterface": false,
          "isInstantiable": true,
          "isAbstract": false,
          "isFinal": false,
          "implementedInterfaces": [],
          "parent": "org.mule.extension.db.api.param.StatementDefinition",
          "genericTypes": []
        },
        "xmlHints": {
          "allowInlineDefinition": true,
          "allowTopLevelDefinition": true,
          "allowReferences": true
        },
        "typeAlias": {
          "value": "BulkQueryDefinition"
        }
      },
      "fields": [
        {
          "key": {
            "name": "template"
          },
          "model": "#..",
          "annotations": {
            "parameterPurpose": {
              "role": "BEHAVIOUR"
            },
            "expressionSupport": {
              "value": "SUPPORTED"
            },
            "xmlHints": {
              "allowInlineDefinition": false,
              "allowTopLevelDefinition": false,
              "allowReferences": true
            }
          }
        },
        {
          "key": {
            "name": "sql"
          },
          "model": {
            "type": "String",
            "annotations": {
              "typeId": "java.lang.String"
            }
          },
          "annotations": {
            "parameterPurpose": {
              "role": "BEHAVIOUR"
            },
            "expressionSupport": {
              "value": "SUPPORTED"
            },
            "layout": {
              "layoutModel": {
                "password": false,
                "text": true,
                "query": false,
                "order": 1,
                "tabName": "General"
              }
            },
            "org.mule.runtime.extension.api.declaration.type.annotation.DisplayTypeAnnotation": {
              "displayModel": {
                "displayName": "SQL Query Text"
              }
            }
          }
        },
        {
          "key": {
            "name": "parameterTypes"
          },
          "model": {
            "type": "Array",
            "annotations": {
              "typeId": "java.util.List"
            },
            "item": {
              "type": "Object",
              "annotations": {
                "typeId": "org.mule.extension.db.api.param.ParameterType",
                "classInformation": {
                  "hasDefaultConstructor": true,
                  "isInterface": false,
                  "isInstantiable": true,
                  "isAbstract": false,
                  "isFinal": false,
                  "implementedInterfaces": [],
                  "parent": "",
                  "genericTypes": []
                },
                "typeAlias": {
                  "value": "ParameterType"
                }
              },
              "fields": [
                {
                  "key": {
                    "name": "key"
                  },
                  "model": {
                    "required": "true",
                    "type": "String",
                    "annotations": {
                      "typeId": "java.lang.String"
                    }
                  },
                  "annotations": {
                    "parameterPurpose": {
                      "role": "BEHAVIOUR"
                    },
                    "expressionSupport": {
                      "value": "NOT_SUPPORTED"
                    }
                  }
                },
                {
                  "key": {
                    "name": "typeClassifier"
                  },
                  "model": {
                    "required": "true",
                    "type": "Object",
                    "annotations": {
                      "typeId": "org.mule.extension.db.api.param.TypeClassifier",
                      "classInformation": {
                        "hasDefaultConstructor": true,
                        "isInterface": false,
                        "isInstantiable": true,
                        "isAbstract": false,
                        "isFinal": false,
                        "implementedInterfaces": [],
                        "parent": "",
                        "genericTypes": []
                      },
                      "typeAlias": {
                        "value": "TypeClassifier"
                      }
                    },
                    "fields": [
                      {
                        "key": {
                          "name": "type"
                        },
                        "model": {
                          "type": "String",
                          "annotations": {
                            "typeId": "org.mule.extension.db.api.param.JdbcType",
                            "enum": {
                              "type": "[Ljava.lang.String;",
                              "values": [
                                "BIT",
                                "TINYINT",
                                "SMALLINT",
                                "INTEGER",
                                "BIGINT",
                                "FLOAT",
                                "REAL",
                                "DOUBLE",
                                "NUMERIC",
                                "DECIMAL",
                                "CHAR",
                                "VARCHAR",
                                "LONGVARCHAR",
                                "DATE",
                                "TIME",
                                "TIMESTAMP",
                                "BINARY",
                                "VARBINARY",
                                "LONGVARBINARY",
                                "NULL",
                                "OTHER",
                                "JAVA_OBJECT",
                                "DISTINCT",
                                "STRUCT",
                                "ARRAY",
                                "BLOB",
                                "CLOB",
                                "REF",
                                "DATALINK",
                                "BOOLEAN",
                                "ROWID",
                                "NCHAR",
                                "NVARCHAR",
                                "LONGNVARCHAR",
                                "NCLOB",
                                "SQLXML",
                                "UNKNOWN"
                              ]
                            }
                          }
                        },
                        "annotations": {
                          "parameterPurpose": {
                            "role": "BEHAVIOUR"
                          },
                          "expressionSupport": {
                            "value": "NOT_SUPPORTED"
                          }
                        }
                      },
                      {
                        "key": {
                          "name": "customType"
                        },
                        "model": {
                          "type": "String",
                          "annotations": {
                            "typeId": "java.lang.String"
                          }
                        },
                        "annotations": {
                          "parameterPurpose": {
                            "role": "BEHAVIOUR"
                          },
                          "expressionSupport": {
                            "value": "NOT_SUPPORTED"
                          }
                        }
                      }
                    ]
                  },
                  "annotations": {
                    "parameterPurpose": {
                      "role": "BEHAVIOUR"
                    },
                    "flattened": {},
                    "expressionSupport": {
                      "value": "SUPPORTED"
                    }
                  }
                }
              ]
            }
          },
          "annotations": {
            "parameterPurpose": {
              "role": "BEHAVIOUR"
            },
            "expressionSupport": {
              "value": "SUPPORTED"
            },
            "layout": {
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "tabName": "Advanced"
              }
            }
          }
        },
        {
          "key": {
            "name": "queryTimeout"
          },
          "model": {
            "type": "Number",
            "annotations": {
              "int": {},
              "typeId": "int"
            }
          },
          "annotations": {
            "parameterPurpose": {
              "role": "BEHAVIOUR"
            },
            "default": "0",
            "expressionSupport": {
              "value": "SUPPORTED"
            },
            "layout": {
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "tabName": "Advanced"
              }
            }
          }
        },
        {
          "key": {
            "name": "queryTimeoutUnit"
          },
          "model": {
            "type": "String",
            "annotations": {
              "typeId": "java.util.concurrent.TimeUnit",
              "enum": {
                "type": "[Ljava.lang.String;",
                "values": [
                  "NANOSECONDS",
                  "MICROSECONDS",
                  "MILLISECONDS",
                  "SECONDS",
                  "MINUTES",
                  "HOURS",
                  "DAYS"
                ]
              }
            }
          },
          "annotations": {
            "parameterPurpose": {
              "role": "BEHAVIOUR"
            },
            "default": "SECONDS",
            "expressionSupport": {
              "value": "SUPPORTED"
            },
            "layout": {
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "tabName": "Advanced"
              }
            }
          }
        },
        {
          "key": {
            "name": "fetchSize"
          },
          "model": {
            "type": "Number",
            "annotations": {
              "typeId": "java.lang.Integer"
            }
          },
          "annotations": {
            "parameterPurpose": {
              "role": "BEHAVIOUR"
            },
            "expressionSupport": {
              "value": "SUPPORTED"
            },
            "layout": {
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "tabName": "Advanced"
              }
            }
          }
        },
        {
          "key": {
            "name": "maxRows"
          },
          "model": {
            "type": "Number",
            "annotations": {
              "typeId": "java.lang.Integer"
            }
          },
          "annotations": {
            "parameterPurpose": {
              "role": "BEHAVIOUR"
            },
            "expressionSupport": {
              "value": "SUPPORTED"
            },
            "layout": {
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "tabName": "Advanced"
              }
            }
          }
        }
      ]
    },
    {
      "format": "java",
      "type": "Object",
      "annotations": {
        "typeId": "org.mule.extension.db.api.exception.connection.ConnectionCreationException",
        "classInformation": {
          "hasDefaultConstructor": false,
          "isInterface": false,
          "isInstantiable": false,
          "isAbstract": false,
          "isFinal": false,
          "implementedInterfaces": [],
          "parent": "org.mule.runtime.api.connection.ConnectionException",
          "genericTypes": []
        },
        "typeAlias": {
          "value": "ConnectionCreationException"
        }
      },
      "fields": [
        {
          "key": {
            "name": "cause"
          },
          "model": {
            "type": "Object",
            "annotations": {
              "typeId": "java.lang.Throwable",
              "classInformation": {
                "hasDefaultConstructor": true,
                "isInterface": false,
                "isInstantiable": true,
                "isAbstract": false,
                "isFinal": false,
                "implementedInterfaces": [
                  "java.io.Serializable"
                ],
                "parent": "",
                "genericTypes": []
              },
              "typeAlias": {
                "value": "Throwable"
              }
            },
            "fields": [
              {
                "key": {
                  "name": "cause"
                },
                "model": "#..",
                "annotations": {
                  "visibility": "READ_ONLY"
                }
              },
              {
                "key": {
                  "name": "localizedMessage"
                },
                "model": {
                  "type": "String",
                  "annotations": {
                    "typeId": "java.lang.String"
                  }
                },
                "annotations": {
                  "visibility": "READ_ONLY"
                }
              },
              {
                "key": {
                  "name": "message"
                },
                "model": {
                  "type": "String",
                  "annotations": {
                    "typeId": "java.lang.String"
                  }
                },
                "annotations": {
                  "visibility": "READ_ONLY"
                }
              },
              {
                "key": {
                  "name": "stackTrace"
                },
                "model": {
                  "type": "Array",
                  "annotations": {
                    "typeId": "java.lang.StackTraceElement[]"
                  },
                  "item": {
                    "type": "Object",
                    "annotations": {
                      "typeId": "java.lang.StackTraceElement",
                      "classInformation": {
                        "hasDefaultConstructor": false,
                        "isInterface": false,
                        "isInstantiable": false,
                        "isAbstract": false,
                        "isFinal": true,
                        "implementedInterfaces": [
                          "java.io.Serializable"
                        ],
                        "parent": "",
                        "genericTypes": []
                      },
                      "typeAlias": {
                        "value": "StackTraceElement"
                      }
                    },
                    "fields": [
                      {
                        "key": {
                          "name": "className"
                        },
                        "model": {
                          "type": "String",
                          "annotations": {
                            "typeId": "java.lang.String"
                          }
                        },
                        "annotations": {
                          "visibility": "READ_ONLY"
                        }
                      },
                      {
                        "key": {
                          "name": "fileName"
                        },
                        "model": {
                          "type": "String",
                          "annotations": {
                            "typeId": "java.lang.String"
                          }
                        },
                        "annotations": {
                          "visibility": "READ_ONLY"
                        }
                      },
                      {
                        "key": {
                          "name": "lineNumber"
                        },
                        "model": {
                          "type": "Number",
                          "annotations": {
                            "int": {},
                            "typeId": "int"
                          }
                        },
                        "annotations": {
                          "visibility": "READ_ONLY"
                        }
                      },
                      {
                        "key": {
                          "name": "methodName"
                        },
                        "model": {
                          "type": "String",
                          "annotations": {
                            "typeId": "java.lang.String"
                          }
                        },
                        "annotations": {
                          "visibility": "READ_ONLY"
                        }
                      },
                      {
                        "key": {
                          "name": "nativeMethod"
                        },
                        "model": {
                          "type": "Boolean",
                          "annotations": {
                            "typeId": "boolean"
                          }
                        },
                        "annotations": {
                          "visibility": "READ_ONLY"
                        }
                      }
                    ]
                  }
                }
              },
              {
                "key": {
                  "name": "suppressed"
                },
                "model": {
                  "type": "Array",
                  "annotations": {
                    "typeId": "java.lang.Throwable[]"
                  },
                  "item": "#../.."
                },
                "annotations": {
                  "visibility": "READ_ONLY"
                }
              }
            ]
          },
          "annotations": {
            "visibility": "READ_ONLY"
          }
        },
        {
          "key": {
            "name": "errorType"
          },
          "model": {
            "type": "Object",
            "annotations": {
              "typeId": "java.util.Optional",
              "classInformation": {
                "hasDefaultConstructor": false,
                "isInterface": false,
                "isInstantiable": false,
                "isAbstract": false,
                "isFinal": true,
                "implementedInterfaces": [],
                "parent": "",
                "genericTypes": [
                  "org.mule.runtime.api.message.ErrorType"
                ]
              },
              "typeAlias": {
                "value": "Optional"
              }
            },
            "fields": [
              {
                "key": {
                  "name": "present"
                },
                "model": {
                  "type": "Boolean",
                  "annotations": {
                    "typeId": "boolean"
                  }
                },
                "annotations": {
                  "visibility": "READ_ONLY"
                }
              }
            ]
          },
          "annotations": {
            "visibility": "READ_ONLY"
          }
        },
        {
          "key": {
            "name": "localizedMessage"
          },
          "model": {
            "type": "String",
            "annotations": {
              "typeId": "java.lang.String"
            }
          },
          "annotations": {
            "visibility": "READ_ONLY"
          }
        },
        {
          "key": {
            "name": "message"
          },
          "model": {
            "type": "String",
            "annotations": {
              "typeId": "java.lang.String"
            }
          },
          "annotations": {
            "visibility": "READ_ONLY"
          }
        },
        {
          "key": {
            "name": "stackTrace"
          },
          "model": {
            "type": "Array",
            "annotations": {
              "typeId": "java.lang.StackTraceElement[]"
            },
            "item": {
              "type": "Object",
              "annotations": {
                "typeId": "java.lang.StackTraceElement",
                "classInformation": {
                  "hasDefaultConstructor": false,
                  "isInterface": false,
                  "isInstantiable": false,
                  "isAbstract": false,
                  "isFinal": true,
                  "implementedInterfaces": [
                    "java.io.Serializable"
                  ],
                  "parent": "",
                  "genericTypes": []
                },
                "typeAlias": {
                  "value": "StackTraceElement"
                }
              },
              "fields": [
                {
                  "key": {
                    "name": "className"
                  },
                  "model": {
                    "type": "String",
                    "annotations": {
                      "typeId": "java.lang.String"
                    }
                  },
                  "annotations": {
                    "visibility": "READ_ONLY"
                  }
                },
                {
                  "key": {
                    "name": "fileName"
                  },
                  "model": {
                    "type": "String",
                    "annotations": {
                      "typeId": "java.lang.String"
                    }
                  },
                  "annotations": {
                    "visibility": "READ_ONLY"
                  }
                },
                {
                  "key": {
                    "name": "lineNumber"
                  },
                  "model": {
                    "type": "Number",
                    "annotations": {
                      "int": {},
                      "typeId": "int"
                    }
                  },
                  "annotations": {
                    "visibility": "READ_ONLY"
                  }
                },
                {
                  "key": {
                    "name": "methodName"
                  },
                  "model": {
                    "type": "String",
                    "annotations": {
                      "typeId": "java.lang.String"
                    }
                  },
                  "annotations": {
                    "visibility": "READ_ONLY"
                  }
                },
                {
                  "key": {
                    "name": "nativeMethod"
                  },
                  "model": {
                    "type": "Boolean",
                    "annotations": {
                      "typeId": "boolean"
                    }
                  },
                  "annotations": {
                    "visibility": "READ_ONLY"
                  }
                }
              ]
            }
          }
        },
        {
          "key": {
            "name": "suppressed"
          },
          "model": {
            "type": "Array",
            "annotations": {
              "typeId": "java.lang.Throwable[]"
            },
            "item": {
              "type": "Object",
              "annotations": {
                "typeId": "java.lang.Throwable",
                "classInformation": {
                  "hasDefaultConstructor": true,
                  "isInterface": false,
                  "isInstantiable": true,
                  "isAbstract": false,
                  "isFinal": false,
                  "implementedInterfaces": [
                    "java.io.Serializable"
                  ],
                  "parent": "",
                  "genericTypes": []
                },
                "typeAlias": {
                  "value": "Throwable"
                }
              },
              "fields": [
                {
                  "key": {
                    "name": "cause"
                  },
                  "model": "#..",
                  "annotations": {
                    "visibility": "READ_ONLY"
                  }
                },
                {
                  "key": {
                    "name": "localizedMessage"
                  },
                  "model": {
                    "type": "String",
                    "annotations": {
                      "typeId": "java.lang.String"
                    }
                  },
                  "annotations": {
                    "visibility": "READ_ONLY"
                  }
                },
                {
                  "key": {
                    "name": "message"
                  },
                  "model": {
                    "type": "String",
                    "annotations": {
                      "typeId": "java.lang.String"
                    }
                  },
                  "annotations": {
                    "visibility": "READ_ONLY"
                  }
                },
                {
                  "key": {
                    "name": "stackTrace"
                  },
                  "model": {
                    "type": "Array",
                    "annotations": {
                      "typeId": "java.lang.StackTraceElement[]"
                    },
                    "item": {
                      "type": "Object",
                      "annotations": {
                        "typeId": "java.lang.StackTraceElement",
                        "classInformation": {
                          "hasDefaultConstructor": false,
                          "isInterface": false,
                          "isInstantiable": false,
                          "isAbstract": false,
                          "isFinal": true,
                          "implementedInterfaces": [
                            "java.io.Serializable"
                          ],
                          "parent": "",
                          "genericTypes": []
                        },
                        "typeAlias": {
                          "value": "StackTraceElement"
                        }
                      },
                      "fields": [
                        {
                          "key": {
                            "name": "className"
                          },
                          "model": {
                            "type": "String",
                            "annotations": {
                              "typeId": "java.lang.String"
                            }
                          },
                          "annotations": {
                            "visibility": "READ_ONLY"
                          }
                        },
                        {
                          "key": {
                            "name": "fileName"
                          },
                          "model": {
                            "type": "String",
                            "annotations": {
                              "typeId": "java.lang.String"
                            }
                          },
                          "annotations": {
                            "visibility": "READ_ONLY"
                          }
                        },
                        {
                          "key": {
                            "name": "lineNumber"
                          },
                          "model": {
                            "type": "Number",
                            "annotations": {
                              "int": {},
                              "typeId": "int"
                            }
                          },
                          "annotations": {
                            "visibility": "READ_ONLY"
                          }
                        },
                        {
                          "key": {
                            "name": "methodName"
                          },
                          "model": {
                            "type": "String",
                            "annotations": {
                              "typeId": "java.lang.String"
                            }
                          },
                          "annotations": {
                            "visibility": "READ_ONLY"
                          }
                        },
                        {
                          "key": {
                            "name": "nativeMethod"
                          },
                          "model": {
                            "type": "Boolean",
                            "annotations": {
                              "typeId": "boolean"
                            }
                          },
                          "annotations": {
                            "visibility": "READ_ONLY"
                          }
                        }
                      ]
                    }
                  }
                },
                {
                  "key": {
                    "name": "suppressed"
                  },
                  "model": "#../..",
                  "annotations": {
                    "visibility": "READ_ONLY"
                  }
                }
              ]
            }
          },
          "annotations": {
            "visibility": "READ_ONLY"
          }
        }
      ]
    },
    {
      "format": "java",
      "type": "Object",
      "annotations": {
        "typeId": "org.mule.extension.db.api.config.DbPoolingProfile",
        "classInformation": {
          "hasDefaultConstructor": true,
          "isInterface": false,
          "isInstantiable": true,
          "isAbstract": false,
          "isFinal": false,
          "implementedInterfaces": [
            "org.mule.runtime.api.config.DatabasePoolingProfile"
          ],
          "parent": "",
          "genericTypes": []
        },
        "typeAlias": {
          "value": "pooling-profile"
        }
      },
      "fields": [
        {
          "key": {
            "name": "maxPoolSize"
          },
          "model": {
            "type": "Number",
            "annotations": {
              "int": {},
              "typeId": "int"
            }
          },
          "annotations": {
            "parameterPurpose": {
              "role": "BEHAVIOUR"
            },
            "default": "5",
            "expressionSupport": {
              "value": "NOT_SUPPORTED"
            }
          }
        },
        {
          "key": {
            "name": "minPoolSize"
          },
          "model": {
            "type": "Number",
            "annotations": {
              "int": {},
              "typeId": "int"
            }
          },
          "annotations": {
            "parameterPurpose": {
              "role": "BEHAVIOUR"
            },
            "default": "0",
            "expressionSupport": {
              "value": "NOT_SUPPORTED"
            }
          }
        },
        {
          "key": {
            "name": "acquireIncrement"
          },
          "model": {
            "type": "Number",
            "annotations": {
              "int": {},
              "typeId": "int"
            }
          },
          "annotations": {
            "parameterPurpose": {
              "role": "BEHAVIOUR"
            },
            "default": "1",
            "expressionSupport": {
              "value": "NOT_SUPPORTED"
            }
          }
        },
        {
          "key": {
            "name": "preparedStatementCacheSize"
          },
          "model": {
            "type": "Number",
            "annotations": {
              "int": {},
              "typeId": "int"
            }
          },
          "annotations": {
            "parameterPurpose": {
              "role": "BEHAVIOUR"
            },
            "default": "5",
            "expressionSupport": {
              "value": "NOT_SUPPORTED"
            }
          }
        },
        {
          "key": {
            "name": "maxWait"
          },
          "model": {
            "type": "Number",
            "annotations": {
              "int": {},
              "typeId": "int"
            }
          },
          "annotations": {
            "parameterPurpose": {
              "role": "BEHAVIOUR"
            },
            "default": "0",
            "expressionSupport": {
              "value": "NOT_SUPPORTED"
            }
          }
        },
        {
          "key": {
            "name": "maxWaitUnit"
          },
          "model": {
            "type": "String",
            "annotations": {
              "typeId": "java.util.concurrent.TimeUnit",
              "enum": {
                "type": "[Ljava.lang.String;",
                "values": [
                  "NANOSECONDS",
                  "MICROSECONDS",
                  "MILLISECONDS",
                  "SECONDS",
                  "MINUTES",
                  "HOURS",
                  "DAYS"
                ]
              }
            }
          },
          "annotations": {
            "parameterPurpose": {
              "role": "BEHAVIOUR"
            },
            "default": "SECONDS",
            "expressionSupport": {
              "value": "NOT_SUPPORTED"
            }
          }
        }
      ]
    },
    {
      "format": "java",
      "type": "Object",
      "annotations": {
        "typeId": "org.mule.extension.db.api.param.CustomDataType",
        "classInformation": {
          "hasDefaultConstructor": true,
          "isInterface": false,
          "isInstantiable": true,
          "isAbstract": false,
          "isFinal": false,
          "implementedInterfaces": [],
          "parent": "",
          "genericTypes": []
        },
        "typeAlias": {
          "value": "CustomDataType"
        }
      },
      "fields": [
        {
          "key": {
            "name": "id"
          },
          "model": {
            "required": "true",
            "type": "Number",
            "annotations": {
              "int": {},
              "typeId": "int"
            }
          },
          "annotations": {
            "parameterPurpose": {
              "role": "BEHAVIOUR"
            },
            "expressionSupport": {
              "value": "NOT_SUPPORTED"
            }
          }
        },
        {
          "key": {
            "name": "typeName"
          },
          "model": {
            "required": "true",
            "type": "String",
            "annotations": {
              "typeId": "java.lang.String"
            }
          },
          "annotations": {
            "parameterPurpose": {
              "role": "BEHAVIOUR"
            },
            "expressionSupport": {
              "value": "NOT_SUPPORTED"
            }
          }
        },
        {
          "key": {
            "name": "className"
          },
          "model": {
            "type": "String",
            "annotations": {
              "typeId": "java.lang.String"
            }
          },
          "annotations": {
            "parameterPurpose": {
              "role": "BEHAVIOUR"
            },
            "expressionSupport": {
              "value": "NOT_SUPPORTED"
            }
          }
        }
      ]
    },
    {
      "format": "java",
      "type": "Object",
      "annotations": {
        "typeId": "org.mule.extension.db.api.param.ParameterType",
        "classInformation": {
          "hasDefaultConstructor": true,
          "isInterface": false,
          "isInstantiable": true,
          "isAbstract": false,
          "isFinal": false,
          "implementedInterfaces": [],
          "parent": "",
          "genericTypes": []
        },
        "typeAlias": {
          "value": "ParameterType"
        }
      },
      "fields": [
        {
          "key": {
            "name": "key"
          },
          "model": {
            "required": "true",
            "type": "String",
            "annotations": {
              "typeId": "java.lang.String"
            }
          },
          "annotations": {
            "parameterPurpose": {
              "role": "BEHAVIOUR"
            },
            "expressionSupport": {
              "value": "NOT_SUPPORTED"
            }
          }
        },
        {
          "key": {
            "name": "typeClassifier"
          },
          "model": {
            "required": "true",
            "type": "Object",
            "annotations": {
              "typeId": "org.mule.extension.db.api.param.TypeClassifier",
              "classInformation": {
                "hasDefaultConstructor": true,
                "isInterface": false,
                "isInstantiable": true,
                "isAbstract": false,
                "isFinal": false,
                "implementedInterfaces": [],
                "parent": "",
                "genericTypes": []
              },
              "typeAlias": {
                "value": "TypeClassifier"
              }
            },
            "fields": [
              {
                "key": {
                  "name": "type"
                },
                "model": {
                  "type": "String",
                  "annotations": {
                    "typeId": "org.mule.extension.db.api.param.JdbcType",
                    "enum": {
                      "type": "[Ljava.lang.String;",
                      "values": [
                        "BIT",
                        "TINYINT",
                        "SMALLINT",
                        "INTEGER",
                        "BIGINT",
                        "FLOAT",
                        "REAL",
                        "DOUBLE",
                        "NUMERIC",
                        "DECIMAL",
                        "CHAR",
                        "VARCHAR",
                        "LONGVARCHAR",
                        "DATE",
                        "TIME",
                        "TIMESTAMP",
                        "BINARY",
                        "VARBINARY",
                        "LONGVARBINARY",
                        "NULL",
                        "OTHER",
                        "JAVA_OBJECT",
                        "DISTINCT",
                        "STRUCT",
                        "ARRAY",
                        "BLOB",
                        "CLOB",
                        "REF",
                        "DATALINK",
                        "BOOLEAN",
                        "ROWID",
                        "NCHAR",
                        "NVARCHAR",
                        "LONGNVARCHAR",
                        "NCLOB",
                        "SQLXML",
                        "UNKNOWN"
                      ]
                    }
                  }
                },
                "annotations": {
                  "parameterPurpose": {
                    "role": "BEHAVIOUR"
                  },
                  "expressionSupport": {
                    "value": "NOT_SUPPORTED"
                  }
                }
              },
              {
                "key": {
                  "name": "customType"
                },
                "model": {
                  "type": "String",
                  "annotations": {
                    "typeId": "java.lang.String"
                  }
                },
                "annotations": {
                  "parameterPurpose": {
                    "role": "BEHAVIOUR"
                  },
                  "expressionSupport": {
                    "value": "NOT_SUPPORTED"
                  }
                }
              }
            ]
          },
          "annotations": {
            "parameterPurpose": {
              "role": "BEHAVIOUR"
            },
            "flattened": {},
            "expressionSupport": {
              "value": "SUPPORTED"
            }
          }
        }
      ]
    },
    {
      "format": "java",
      "type": "Object",
      "annotations": {
        "typeId": "org.mule.extension.db.api.param.OutputParameter",
        "classInformation": {
          "hasDefaultConstructor": true,
          "isInterface": false,
          "isInstantiable": true,
          "isAbstract": false,
          "isFinal": false,
          "implementedInterfaces": [],
          "parent": "org.mule.extension.db.api.param.ParameterType",
          "genericTypes": []
        },
        "typeAlias": {
          "value": "OutputParameter"
        }
      },
      "fields": [
        {
          "key": {
            "name": "key"
          },
          "model": {
            "required": "true",
            "type": "String",
            "annotations": {
              "typeId": "java.lang.String"
            }
          },
          "annotations": {
            "parameterPurpose": {
              "role": "BEHAVIOUR"
            },
            "expressionSupport": {
              "value": "NOT_SUPPORTED"
            }
          }
        },
        {
          "key": {
            "name": "typeClassifier"
          },
          "model": {
            "required": "true",
            "type": "Object",
            "annotations": {
              "typeId": "org.mule.extension.db.api.param.TypeClassifier",
              "classInformation": {
                "hasDefaultConstructor": true,
                "isInterface": false,
                "isInstantiable": true,
                "isAbstract": false,
                "isFinal": false,
                "implementedInterfaces": [],
                "parent": "",
                "genericTypes": []
              },
              "typeAlias": {
                "value": "TypeClassifier"
              }
            },
            "fields": [
              {
                "key": {
                  "name": "type"
                },
                "model": {
                  "type": "String",
                  "annotations": {
                    "typeId": "org.mule.extension.db.api.param.JdbcType",
                    "enum": {
                      "type": "[Ljava.lang.String;",
                      "values": [
                        "BIT",
                        "TINYINT",
                        "SMALLINT",
                        "INTEGER",
                        "BIGINT",
                        "FLOAT",
                        "REAL",
                        "DOUBLE",
                        "NUMERIC",
                        "DECIMAL",
                        "CHAR",
                        "VARCHAR",
                        "LONGVARCHAR",
                        "DATE",
                        "TIME",
                        "TIMESTAMP",
                        "BINARY",
                        "VARBINARY",
                        "LONGVARBINARY",
                        "NULL",
                        "OTHER",
                        "JAVA_OBJECT",
                        "DISTINCT",
                        "STRUCT",
                        "ARRAY",
                        "BLOB",
                        "CLOB",
                        "REF",
                        "DATALINK",
                        "BOOLEAN",
                        "ROWID",
                        "NCHAR",
                        "NVARCHAR",
                        "LONGNVARCHAR",
                        "NCLOB",
                        "SQLXML",
                        "UNKNOWN"
                      ]
                    }
                  }
                },
                "annotations": {
                  "parameterPurpose": {
                    "role": "BEHAVIOUR"
                  },
                  "expressionSupport": {
                    "value": "NOT_SUPPORTED"
                  }
                }
              },
              {
                "key": {
                  "name": "customType"
                },
                "model": {
                  "type": "String",
                  "annotations": {
                    "typeId": "java.lang.String"
                  }
                },
                "annotations": {
                  "parameterPurpose": {
                    "role": "BEHAVIOUR"
                  },
                  "expressionSupport": {
                    "value": "NOT_SUPPORTED"
                  }
                }
              }
            ]
          },
          "annotations": {
            "parameterPurpose": {
              "role": "BEHAVIOUR"
            },
            "flattened": {},
            "expressionSupport": {
              "value": "SUPPORTED"
            }
          }
        }
      ]
    },
    {
      "format": "java",
      "type": "Object",
      "annotations": {
        "typeId": "org.mule.extension.db.api.StatementResult",
        "classInformation": {
          "hasDefaultConstructor": false,
          "isInterface": false,
          "isInstantiable": false,
          "isAbstract": false,
          "isFinal": false,
          "implementedInterfaces": [],
          "parent": "",
          "genericTypes": []
        },
        "typeAlias": {
          "value": "StatementResult"
        }
      },
      "fields": [
        {
          "key": {
            "name": "affectedRows"
          },
          "model": {
            "type": "Number",
            "annotations": {
              "int": {},
              "typeId": "int"
            }
          },
          "annotations": {
            "visibility": "READ_ONLY"
          }
        },
        {
          "key": {
            "name": "generatedKeys"
          },
          "model": {
            "type": "Object",
            "annotations": {
              "typeId": "java.util.Map",
              "classInformation": {
                "hasDefaultConstructor": false,
                "isInterface": true,
                "isInstantiable": false,
                "isAbstract": true,
                "isFinal": false,
                "implementedInterfaces": [],
                "parent": "",
                "genericTypes": [
                  "java.lang.String",
                  "java.math.BigInteger"
                ]
              }
            },
            "open": {
              "type": "Number",
              "annotations": {
                "int": {},
                "typeId": "java.math.BigInteger"
              }
            },
            "fields": []
          },
          "annotations": {
            "visibility": "READ_ONLY"
          }
        }
      ]
    }
  ]
}
