{
  "name": "Recursive",
  "description": "Recursive Connector Description",
  "version": "4.0.0-M5",
  "vendor": "Mulesoft",
  "category": "COMMUNITY",
  "minMuleVersion": "4.0.0",
  "xmlDsl": {
    "namespace": "recursive",
    "namespaceUri": "http://www.mulesoft.org/schema/mule/recursive",
    "schemaLocation": "http://www.mulesoft.org/schema/mule/recursive/current/mule-recursive.xsd",
    "schemaVersion": "4.0.0-M5",
    "xsdFileName": "mule-recursive.xsd"
  },
  "resources": [],
  "subTypes": [],
  "externalLibraries": [],
  "importedTypes": [],
  "configurations": [
    {
      "parameterGroupModels": [],
      "externalLibraryModels": [],
      "operations": [],
      "connectionProviders": [],
      "messageSources": [],
      "name": "config",
      "description": "Extension javadoc description",
      "modelProperties": {}
    }
  ],
  "operations": [
    {
      "blocking": true,
      "executionType": "CPU_LITE",
      "errors": [],
      "output": {
        "type": {
          "format": "java",
          "type": "String",
          "annotations": {
            "typeId": "java.lang.String"
          }
        },
        "hasDynamicType": false,
        "description": "",
        "modelProperties": {}
      },
      "outputAttributes": {
        "type": {
          "format": "java",
          "type": "Void"
        },
        "hasDynamicType": false,
        "description": "",
        "modelProperties": {}
      },
      "transactional": false,
      "requiresConnection": false,
      "parameterGroupModels": [
        {
          "parameters": [
            {
              "type": {
                "format": "java",
                "type": "@ref:org.mule.modules.basic.model.RecursivePojo"
              },
              "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": "pojoParam",
              "description": "Recursive pojo parameter",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "@ref:org.mule.modules.basic.model.RecursiveChainA"
              },
              "hasDynamicType": false,
              "required": true,
              "expressionSupport": "SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 2
              },
              "name": "chainA",
              "description": "",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "@ref:org.mule.modules.basic.model.RecursiveChainB"
              },
              "hasDynamicType": false,
              "required": true,
              "expressionSupport": "SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 3
              },
              "name": "chainB",
              "description": "",
              "modelProperties": {}
            }
          ],
          "exclusiveParametersModels": [],
          "showInDsl": false,
          "name": "General",
          "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": "operationWithPojo",
      "description": "Operation With Pojo description",
      "modelProperties": {}
    },
    {
      "blocking": true,
      "executionType": "CPU_LITE",
      "errors": [],
      "output": {
        "type": {
          "format": "java",
          "type": "String",
          "annotations": {
            "typeId": "java.lang.String"
          }
        },
        "hasDynamicType": false,
        "description": "",
        "modelProperties": {}
      },
      "outputAttributes": {
        "type": {
          "format": "java",
          "type": "Void"
        },
        "hasDynamicType": false,
        "description": "",
        "modelProperties": {}
      },
      "transactional": false,
      "requiresConnection": false,
      "parameterGroupModels": [
        {
          "parameters": [
            {
              "type": {
                "format": "java",
                "type": "Array",
                "annotations": {
                  "typeId": "java.util.List"
                },
                "item": {
                  "type": "@ref:org.mule.modules.basic.model.RecursivePojo"
                }
              },
              "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": "pojoParams",
              "description": "",
              "modelProperties": {}
            }
          ],
          "exclusiveParametersModels": [],
          "showInDsl": false,
          "name": "General",
          "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": "operationWithPojoList",
      "description": "",
      "modelProperties": {}
    }
  ],
  "connectionProviders": [],
  "messageSources": [],
  "errors": [],
  "modelProperties": {},
  "types": [
    {
      "format": "java",
      "type": "Object",
      "annotations": {
        "typeId": "org.mule.modules.basic.model.RecursivePojo",
        "classInformation": {
          "hasDefaultConstructor": true,
          "isInterface": false,
          "isInstantiable": true,
          "isAbstract": false,
          "isFinal": false,
          "implementedInterfaces": [],
          "parent": "",
          "genericTypes": []
        },
        "xmlHints": {
          "allowInlineDefinition": true,
          "allowTopLevelDefinition": true,
          "allowReferences": true
        },
        "typeAlias": {
          "value": "RecursivePojo"
        }
      },
      "fields": [
        {
          "key": {
            "name": "next"
          },
          "model": "#..",
          "annotations": {
            "parameterPurpose": {
              "role": "BEHAVIOUR"
            },
            "expressionSupport": {
              "value": "SUPPORTED"
            }
          }
        },
        {
          "key": {
            "name": "childs"
          },
          "model": {
            "required": "true",
            "type": "Array",
            "annotations": {
              "typeId": "java.util.List"
            },
            "item": "#../.."
          },
          "annotations": {
            "parameterPurpose": {
              "role": "BEHAVIOUR"
            },
            "expressionSupport": {
              "value": "SUPPORTED"
            }
          }
        },
        {
          "key": {
            "name": "mappedChilds"
          },
          "model": {
            "required": "true",
            "type": "Object",
            "annotations": {
              "typeId": "java.util.Map",
              "classInformation": {
                "hasDefaultConstructor": false,
                "isInterface": true,
                "isInstantiable": false,
                "isAbstract": true,
                "isFinal": false,
                "implementedInterfaces": [],
                "parent": "",
                "genericTypes": [
                  "java.lang.String",
                  "org.mule.modules.basic.model.RecursivePojo"
                ]
              }
            },
            "open": "#../..",
            "fields": []
          },
          "annotations": {
            "parameterPurpose": {
              "role": "BEHAVIOUR"
            },
            "expressionSupport": {
              "value": "SUPPORTED"
            }
          }
        }
      ]
    },
    {
      "format": "java",
      "type": "Object",
      "annotations": {
        "typeId": "org.mule.modules.basic.model.RecursiveChainA",
        "classInformation": {
          "hasDefaultConstructor": true,
          "isInterface": false,
          "isInstantiable": true,
          "isAbstract": false,
          "isFinal": false,
          "implementedInterfaces": [],
          "parent": "",
          "genericTypes": []
        },
        "xmlHints": {
          "allowInlineDefinition": true,
          "allowTopLevelDefinition": true,
          "allowReferences": true
        },
        "typeAlias": {
          "value": "RecursiveChainA"
        }
      },
      "fields": [
        {
          "key": {
            "name": "fieldA"
          },
          "model": {
            "required": "true",
            "type": "String",
            "annotations": {
              "typeId": "java.lang.String"
            }
          },
          "annotations": {
            "parameterPurpose": {
              "role": "BEHAVIOUR"
            },
            "expressionSupport": {
              "value": "SUPPORTED"
            }
          }
        },
        {
          "key": {
            "name": "chainB"
          },
          "model": {
            "required": "true",
            "type": "Object",
            "annotations": {
              "typeId": "org.mule.modules.basic.model.RecursiveChainB",
              "classInformation": {
                "hasDefaultConstructor": true,
                "isInterface": false,
                "isInstantiable": true,
                "isAbstract": false,
                "isFinal": false,
                "implementedInterfaces": [],
                "parent": "",
                "genericTypes": []
              },
              "xmlHints": {
                "allowInlineDefinition": true,
                "allowTopLevelDefinition": true,
                "allowReferences": true
              },
              "typeAlias": {
                "value": "RecursiveChainB"
              }
            },
            "fields": [
              {
                "key": {
                  "name": "fieldB"
                },
                "model": {
                  "required": "true",
                  "type": "String",
                  "annotations": {
                    "typeId": "java.lang.String"
                  }
                },
                "annotations": {
                  "parameterPurpose": {
                    "role": "BEHAVIOUR"
                  },
                  "expressionSupport": {
                    "value": "SUPPORTED"
                  }
                }
              },
              {
                "key": {
                  "name": "chainA"
                },
                "model": "#../..",
                "annotations": {
                  "parameterPurpose": {
                    "role": "BEHAVIOUR"
                  },
                  "expressionSupport": {
                    "value": "SUPPORTED"
                  }
                }
              },
              {
                "key": {
                  "name": "aChains"
                },
                "model": {
                  "required": "true",
                  "type": "Array",
                  "annotations": {
                    "typeId": "java.util.List"
                  },
                  "item": "#../../.."
                },
                "annotations": {
                  "parameterPurpose": {
                    "role": "BEHAVIOUR"
                  },
                  "expressionSupport": {
                    "value": "SUPPORTED"
                  }
                }
              }
            ]
          },
          "annotations": {
            "parameterPurpose": {
              "role": "BEHAVIOUR"
            },
            "expressionSupport": {
              "value": "SUPPORTED"
            }
          }
        },
        {
          "key": {
            "name": "bChains"
          },
          "model": {
            "required": "true",
            "type": "Array",
            "annotations": {
              "typeId": "java.util.List"
            },
            "item": {
              "type": "Object",
              "annotations": {
                "typeId": "org.mule.modules.basic.model.RecursiveChainB",
                "classInformation": {
                  "hasDefaultConstructor": true,
                  "isInterface": false,
                  "isInstantiable": true,
                  "isAbstract": false,
                  "isFinal": false,
                  "implementedInterfaces": [],
                  "parent": "",
                  "genericTypes": []
                },
                "xmlHints": {
                  "allowInlineDefinition": true,
                  "allowTopLevelDefinition": true,
                  "allowReferences": true
                },
                "typeAlias": {
                  "value": "RecursiveChainB"
                }
              },
              "fields": [
                {
                  "key": {
                    "name": "fieldB"
                  },
                  "model": {
                    "required": "true",
                    "type": "String",
                    "annotations": {
                      "typeId": "java.lang.String"
                    }
                  },
                  "annotations": {
                    "parameterPurpose": {
                      "role": "BEHAVIOUR"
                    },
                    "expressionSupport": {
                      "value": "SUPPORTED"
                    }
                  }
                },
                {
                  "key": {
                    "name": "chainA"
                  },
                  "model": "#../../..",
                  "annotations": {
                    "parameterPurpose": {
                      "role": "BEHAVIOUR"
                    },
                    "expressionSupport": {
                      "value": "SUPPORTED"
                    }
                  }
                },
                {
                  "key": {
                    "name": "aChains"
                  },
                  "model": {
                    "required": "true",
                    "type": "Array",
                    "annotations": {
                      "typeId": "java.util.List"
                    },
                    "item": "#../../../.."
                  },
                  "annotations": {
                    "parameterPurpose": {
                      "role": "BEHAVIOUR"
                    },
                    "expressionSupport": {
                      "value": "SUPPORTED"
                    }
                  }
                }
              ]
            }
          },
          "annotations": {
            "parameterPurpose": {
              "role": "BEHAVIOUR"
            },
            "expressionSupport": {
              "value": "SUPPORTED"
            }
          }
        }
      ]
    },
    {
      "format": "java",
      "type": "Object",
      "annotations": {
        "typeId": "org.mule.modules.basic.model.RecursiveChainB",
        "classInformation": {
          "hasDefaultConstructor": true,
          "isInterface": false,
          "isInstantiable": true,
          "isAbstract": false,
          "isFinal": false,
          "implementedInterfaces": [],
          "parent": "",
          "genericTypes": []
        },
        "xmlHints": {
          "allowInlineDefinition": true,
          "allowTopLevelDefinition": true,
          "allowReferences": true
        },
        "typeAlias": {
          "value": "RecursiveChainB"
        }
      },
      "fields": [
        {
          "key": {
            "name": "fieldB"
          },
          "model": {
            "required": "true",
            "type": "String",
            "annotations": {
              "typeId": "java.lang.String"
            }
          },
          "annotations": {
            "parameterPurpose": {
              "role": "BEHAVIOUR"
            },
            "expressionSupport": {
              "value": "SUPPORTED"
            }
          }
        },
        {
          "key": {
            "name": "chainA"
          },
          "model": {
            "required": "true",
            "type": "Object",
            "annotations": {
              "typeId": "org.mule.modules.basic.model.RecursiveChainA",
              "classInformation": {
                "hasDefaultConstructor": true,
                "isInterface": false,
                "isInstantiable": true,
                "isAbstract": false,
                "isFinal": false,
                "implementedInterfaces": [],
                "parent": "",
                "genericTypes": []
              },
              "xmlHints": {
                "allowInlineDefinition": true,
                "allowTopLevelDefinition": true,
                "allowReferences": true
              },
              "typeAlias": {
                "value": "RecursiveChainA"
              }
            },
            "fields": [
              {
                "key": {
                  "name": "fieldA"
                },
                "model": {
                  "required": "true",
                  "type": "String",
                  "annotations": {
                    "typeId": "java.lang.String"
                  }
                },
                "annotations": {
                  "parameterPurpose": {
                    "role": "BEHAVIOUR"
                  },
                  "expressionSupport": {
                    "value": "SUPPORTED"
                  }
                }
              },
              {
                "key": {
                  "name": "chainB"
                },
                "model": "#../..",
                "annotations": {
                  "parameterPurpose": {
                    "role": "BEHAVIOUR"
                  },
                  "expressionSupport": {
                    "value": "SUPPORTED"
                  }
                }
              },
              {
                "key": {
                  "name": "bChains"
                },
                "model": {
                  "required": "true",
                  "type": "Array",
                  "annotations": {
                    "typeId": "java.util.List"
                  },
                  "item": "#../../.."
                },
                "annotations": {
                  "parameterPurpose": {
                    "role": "BEHAVIOUR"
                  },
                  "expressionSupport": {
                    "value": "SUPPORTED"
                  }
                }
              }
            ]
          },
          "annotations": {
            "parameterPurpose": {
              "role": "BEHAVIOUR"
            },
            "expressionSupport": {
              "value": "SUPPORTED"
            }
          }
        },
        {
          "key": {
            "name": "aChains"
          },
          "model": {
            "required": "true",
            "type": "Array",
            "annotations": {
              "typeId": "java.util.List"
            },
            "item": {
              "type": "Object",
              "annotations": {
                "typeId": "org.mule.modules.basic.model.RecursiveChainA",
                "classInformation": {
                  "hasDefaultConstructor": true,
                  "isInterface": false,
                  "isInstantiable": true,
                  "isAbstract": false,
                  "isFinal": false,
                  "implementedInterfaces": [],
                  "parent": "",
                  "genericTypes": []
                },
                "xmlHints": {
                  "allowInlineDefinition": true,
                  "allowTopLevelDefinition": true,
                  "allowReferences": true
                },
                "typeAlias": {
                  "value": "RecursiveChainA"
                }
              },
              "fields": [
                {
                  "key": {
                    "name": "fieldA"
                  },
                  "model": {
                    "required": "true",
                    "type": "String",
                    "annotations": {
                      "typeId": "java.lang.String"
                    }
                  },
                  "annotations": {
                    "parameterPurpose": {
                      "role": "BEHAVIOUR"
                    },
                    "expressionSupport": {
                      "value": "SUPPORTED"
                    }
                  }
                },
                {
                  "key": {
                    "name": "chainB"
                  },
                  "model": "#../../..",
                  "annotations": {
                    "parameterPurpose": {
                      "role": "BEHAVIOUR"
                    },
                    "expressionSupport": {
                      "value": "SUPPORTED"
                    }
                  }
                },
                {
                  "key": {
                    "name": "bChains"
                  },
                  "model": {
                    "required": "true",
                    "type": "Array",
                    "annotations": {
                      "typeId": "java.util.List"
                    },
                    "item": "#../../../.."
                  },
                  "annotations": {
                    "parameterPurpose": {
                      "role": "BEHAVIOUR"
                    },
                    "expressionSupport": {
                      "value": "SUPPORTED"
                    }
                  }
                }
              ]
            }
          },
          "annotations": {
            "parameterPurpose": {
              "role": "BEHAVIOUR"
            },
            "expressionSupport": {
              "value": "SUPPORTED"
            }
          }
        }
      ]
    }
  ]
}
