{
  "name": "Aggregators",
  "description": "",
  "version": "1.0.0",
  "vendor": "Mulesoft",
  "category": "COMMUNITY",
  "xmlDsl": {
    "prefix": "aggregators",
    "namespace": "http://www.mulesoft.org/schema/mule/aggregators",
    "schemaLocation": "http://www.mulesoft.org/schema/mule/aggregators/current/mule-aggregators.xsd",
    "schemaVersion": "1.0.0",
    "xsdFileName": "mule-aggregators.xsd"
  },
  "resources": [],
  "subTypes": [],
  "privilegedPackages": [],
  "privilegedArtifacts": [],
  "externalLibraries": [],
  "importedTypes": [
    {
      "format": "java",
      "type": "Object",
      "annotations": {
        "typeId": "org.mule.runtime.api.store.ObjectStore",
        "extensibleType": {},
        "typeAlias": {
          "value": "ObjectStore"
        },
        "classInformation": {
          "classname": "org.mule.runtime.api.store.ObjectStore",
          "hasDefaultConstructor": false,
          "isInterface": true,
          "isInstantiable": false,
          "isAbstract": true,
          "isFinal": false,
          "implementedInterfaces": [],
          "parent": "",
          "genericTypes": [],
          "isMap": false
        }
      },
      "fields": []
    }
  ],
  "configurations": [
    {
      "stereotype": {
        "type": "CONFIG",
        "namespace": "AGGREGATORS",
        "parent": {
          "type": "MODULE_CONFIG",
          "namespace": "MULE"
        }
      },
      "parameterGroupModels": [],
      "externalLibraryModels": [],
      "operations": [],
      "connectionProviders": [],
      "messageSources": [],
      "name": "config",
      "description": "Default configuration",
      "modelProperties": {}
    }
  ],
  "operations": [],
  "functions": [],
  "constructs": [
    {
      "allowsTopLevelDefinition": false,
      "nestedComponents": [
        {
          "minOccurs": 0,
          "childComponents": [
            {
              "isRequired": true,
              "allowedStereotypes": [
                {
                  "type": "PROCESSOR",
                  "namespace": "MULE"
                }
              ],
              "name": "processors",
              "description": "",
              "modelProperties": {},
              "kind": "chain"
            }
          ],
          "parameterGroupModels": [],
          "name": "incrementalAggregation",
          "description": "",
          "modelProperties": {},
          "kind": "route"
        },
        {
          "minOccurs": 1,
          "childComponents": [
            {
              "isRequired": true,
              "allowedStereotypes": [
                {
                  "type": "PROCESSOR",
                  "namespace": "MULE"
                }
              ],
              "name": "processors",
              "description": "",
              "modelProperties": {},
              "kind": "chain"
            }
          ],
          "parameterGroupModels": [],
          "name": "aggregationComplete",
          "description": "",
          "modelProperties": {},
          "kind": "route"
        }
      ],
      "errors": [
        "AGGREGATORS:NO_GROUP_ID",
        "AGGREGATORS:OBJECT_STORE_ACCESS",
        "AGGREGATORS:AGGREGATOR_CONFIG",
        "AGGREGATORS:NO_GROUP_SIZE",
        "AGGREGATORS:GROUP_COMPLETED",
        "AGGREGATORS:GROUP_TIMED_OUT"
      ],
      "stereotype": {
        "type": "PROCESSOR",
        "namespace": "MULE"
      },
      "parameterGroupModels": [
        {
          "parameters": [
            {
              "type": {
                "format": "java",
                "type": "@ref:org.mule.runtime.api.store.ObjectStore"
              },
              "hasDynamicType": false,
              "required": false,
              "isConfigOverride": false,
              "expressionSupport": "NOT_SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "tabName": "Advanced"
              },
              "allowedStereotypeModels": [
                {
                  "type": "OBJECT_STORE",
                  "namespace": "OS"
                }
              ],
              "name": "objectStore",
              "displayModel": {
                "displayName": "Object Store (*)",
                "summary": "In order to create an Object Store configuration, an Object Store implementation needs to be present in the project. An option is to add the Mule Object Store Module provided by MuleSoft"
              },
              "description": "",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "String"
              },
              "hasDynamicType": false,
              "required": true,
              "isConfigOverride": false,
              "expressionSupport": "NOT_SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false
              },
              "allowedStereotypeModels": [],
              "name": "name",
              "description": "",
              "modelProperties": {}
            }
          ],
          "exclusiveParametersModels": [],
          "showInDsl": false,
          "name": "General",
          "description": "",
          "modelProperties": {}
        },
        {
          "parameters": [
            {
              "type": {
                "format": "java",
                "type": "Object",
                "annotations": {
                  "typeId": "java.lang.Object",
                  "classInformation": {
                    "classname": "java.lang.Object",
                    "hasDefaultConstructor": true,
                    "isInterface": false,
                    "isInstantiable": true,
                    "isAbstract": false,
                    "isFinal": false,
                    "implementedInterfaces": [],
                    "parent": "",
                    "genericTypes": [],
                    "isMap": false
                  },
                  "typeAlias": {
                    "value": "Object"
                  }
                },
                "fields": []
              },
              "hasDynamicType": false,
              "required": false,
              "isConfigOverride": false,
              "expressionSupport": "SUPPORTED",
              "defaultValue": "#[payload]",
              "role": "CONTENT",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false
              },
              "allowedStereotypeModels": [],
              "name": "content",
              "description": "",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "Number",
                "annotations": {
                  "classInformation": {
                    "classname": "int",
                    "hasDefaultConstructor": false,
                    "isInterface": false,
                    "isInstantiable": false,
                    "isAbstract": true,
                    "isFinal": true,
                    "implementedInterfaces": [],
                    "parent": "",
                    "genericTypes": [],
                    "isMap": false
                  },
                  "int": {}
                }
              },
              "hasDynamicType": false,
              "required": false,
              "isConfigOverride": false,
              "expressionSupport": "NOT_SUPPORTED",
              "defaultValue": "-1",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false
              },
              "allowedStereotypeModels": [],
              "name": "timeout",
              "description": "",
              "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,
              "isConfigOverride": false,
              "expressionSupport": "NOT_SUPPORTED",
              "defaultValue": "SECONDS",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false
              },
              "allowedStereotypeModels": [],
              "name": "timeoutUnit",
              "description": "",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "String"
              },
              "hasDynamicType": false,
              "required": false,
              "isConfigOverride": false,
              "expressionSupport": "REQUIRED",
              "defaultValue": "#[correlationId]",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false
              },
              "allowedStereotypeModels": [],
              "name": "groupId",
              "description": "",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "Number",
                "annotations": {
                  "classInformation": {
                    "classname": "java.lang.Integer",
                    "hasDefaultConstructor": false,
                    "isInterface": false,
                    "isInstantiable": false,
                    "isAbstract": false,
                    "isFinal": true,
                    "implementedInterfaces": [
                      "java.lang.Comparable"
                    ],
                    "parent": "java.lang.Number",
                    "genericTypes": [],
                    "isMap": false
                  },
                  "int": {}
                }
              },
              "hasDynamicType": false,
              "required": false,
              "isConfigOverride": false,
              "expressionSupport": "SUPPORTED",
              "defaultValue": "#[itemSequenceInfo.sequenceSize]",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false
              },
              "allowedStereotypeModels": [],
              "name": "groupSize",
              "description": "",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "Number",
                "annotations": {
                  "classInformation": {
                    "classname": "int",
                    "hasDefaultConstructor": false,
                    "isInterface": false,
                    "isInstantiable": false,
                    "isAbstract": true,
                    "isFinal": true,
                    "implementedInterfaces": [],
                    "parent": "",
                    "genericTypes": [],
                    "isMap": false
                  },
                  "int": {}
                }
              },
              "hasDynamicType": false,
              "required": false,
              "isConfigOverride": false,
              "expressionSupport": "NOT_SUPPORTED",
              "defaultValue": "180",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false
              },
              "allowedStereotypeModels": [],
              "name": "evictionTime",
              "description": "",
              "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,
              "isConfigOverride": false,
              "expressionSupport": "NOT_SUPPORTED",
              "defaultValue": "SECONDS",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false
              },
              "allowedStereotypeModels": [],
              "name": "evictionTimeUnit",
              "description": "",
              "modelProperties": {}
            }
          ],
          "exclusiveParametersModels": [],
          "layoutModel": {
            "password": false,
            "text": false,
            "query": false
          },
          "showInDsl": false,
          "name": "Aggregator config",
          "description": "",
          "modelProperties": {}
        }
      ],
      "name": "groupBasedAggregator",
      "description": "",
      "modelProperties": {},
      "kind": "construct"
    },
    {
      "allowsTopLevelDefinition": false,
      "nestedComponents": [
        {
          "minOccurs": 0,
          "childComponents": [
            {
              "isRequired": true,
              "allowedStereotypes": [
                {
                  "type": "PROCESSOR",
                  "namespace": "MULE"
                }
              ],
              "name": "processors",
              "description": "",
              "modelProperties": {},
              "kind": "chain"
            }
          ],
          "parameterGroupModels": [],
          "name": "incrementalAggregation",
          "description": "",
          "modelProperties": {},
          "kind": "route"
        },
        {
          "minOccurs": 1,
          "childComponents": [
            {
              "isRequired": true,
              "allowedStereotypes": [
                {
                  "type": "PROCESSOR",
                  "namespace": "MULE"
                }
              ],
              "name": "processors",
              "description": "",
              "modelProperties": {},
              "kind": "chain"
            }
          ],
          "parameterGroupModels": [],
          "name": "aggregationComplete",
          "description": "",
          "modelProperties": {},
          "kind": "route"
        }
      ],
      "errors": [
        "AGGREGATORS:OBJECT_STORE_ACCESS",
        "AGGREGATORS:AGGREGATOR_CONFIG"
      ],
      "stereotype": {
        "type": "PROCESSOR",
        "namespace": "MULE"
      },
      "parameterGroupModels": [
        {
          "parameters": [
            {
              "type": {
                "format": "java",
                "type": "@ref:org.mule.runtime.api.store.ObjectStore"
              },
              "hasDynamicType": false,
              "required": false,
              "isConfigOverride": false,
              "expressionSupport": "NOT_SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "tabName": "Advanced"
              },
              "allowedStereotypeModels": [
                {
                  "type": "OBJECT_STORE",
                  "namespace": "OS"
                }
              ],
              "name": "objectStore",
              "displayModel": {
                "displayName": "Object Store (*)",
                "summary": "In order to create an Object Store configuration, an Object Store implementation needs to be present in the project. An option is to add the Mule Object Store Module provided by MuleSoft"
              },
              "description": "",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "String"
              },
              "hasDynamicType": false,
              "required": true,
              "isConfigOverride": false,
              "expressionSupport": "NOT_SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false
              },
              "allowedStereotypeModels": [],
              "name": "name",
              "description": "",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "Number",
                "annotations": {
                  "classInformation": {
                    "classname": "int",
                    "hasDefaultConstructor": false,
                    "isInterface": false,
                    "isInstantiable": false,
                    "isAbstract": true,
                    "isFinal": true,
                    "implementedInterfaces": [],
                    "parent": "",
                    "genericTypes": [],
                    "isMap": false
                  },
                  "int": {}
                }
              },
              "hasDynamicType": false,
              "required": true,
              "isConfigOverride": false,
              "expressionSupport": "NOT_SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false
              },
              "allowedStereotypeModels": [],
              "name": "maxSize",
              "description": "",
              "modelProperties": {}
            }
          ],
          "exclusiveParametersModels": [],
          "showInDsl": false,
          "name": "General",
          "description": "",
          "modelProperties": {}
        },
        {
          "parameters": [
            {
              "type": {
                "format": "java",
                "type": "Object",
                "annotations": {
                  "typeId": "java.lang.Object",
                  "classInformation": {
                    "classname": "java.lang.Object",
                    "hasDefaultConstructor": true,
                    "isInterface": false,
                    "isInstantiable": true,
                    "isAbstract": false,
                    "isFinal": false,
                    "implementedInterfaces": [],
                    "parent": "",
                    "genericTypes": [],
                    "isMap": false
                  },
                  "typeAlias": {
                    "value": "Object"
                  }
                },
                "fields": []
              },
              "hasDynamicType": false,
              "required": false,
              "isConfigOverride": false,
              "expressionSupport": "SUPPORTED",
              "defaultValue": "#[payload]",
              "role": "CONTENT",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false
              },
              "allowedStereotypeModels": [],
              "name": "content",
              "description": "",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "Number",
                "annotations": {
                  "classInformation": {
                    "classname": "int",
                    "hasDefaultConstructor": false,
                    "isInterface": false,
                    "isInstantiable": false,
                    "isAbstract": true,
                    "isFinal": true,
                    "implementedInterfaces": [],
                    "parent": "",
                    "genericTypes": [],
                    "isMap": false
                  },
                  "int": {}
                }
              },
              "hasDynamicType": false,
              "required": false,
              "isConfigOverride": false,
              "expressionSupport": "NOT_SUPPORTED",
              "defaultValue": "-1",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false
              },
              "allowedStereotypeModels": [],
              "name": "timeout",
              "description": "",
              "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,
              "isConfigOverride": false,
              "expressionSupport": "NOT_SUPPORTED",
              "defaultValue": "SECONDS",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false
              },
              "allowedStereotypeModels": [],
              "name": "timeoutUnit",
              "description": "",
              "modelProperties": {}
            }
          ],
          "exclusiveParametersModels": [],
          "layoutModel": {
            "password": false,
            "text": false,
            "query": false
          },
          "showInDsl": false,
          "name": "Aggregator config",
          "description": "",
          "modelProperties": {}
        }
      ],
      "name": "sizeBasedAggregator",
      "description": "",
      "modelProperties": {},
      "kind": "construct"
    },
    {
      "allowsTopLevelDefinition": false,
      "nestedComponents": [
        {
          "minOccurs": 0,
          "childComponents": [
            {
              "isRequired": true,
              "allowedStereotypes": [
                {
                  "type": "PROCESSOR",
                  "namespace": "MULE"
                }
              ],
              "name": "processors",
              "description": "",
              "modelProperties": {},
              "kind": "chain"
            }
          ],
          "parameterGroupModels": [],
          "name": "incrementalAggregation",
          "description": "",
          "modelProperties": {},
          "kind": "route"
        }
      ],
      "errors": [
        "AGGREGATORS:OBJECT_STORE_ACCESS",
        "AGGREGATORS:AGGREGATOR_CONFIG"
      ],
      "stereotype": {
        "type": "PROCESSOR",
        "namespace": "MULE"
      },
      "parameterGroupModels": [
        {
          "parameters": [
            {
              "type": {
                "format": "java",
                "type": "@ref:org.mule.runtime.api.store.ObjectStore"
              },
              "hasDynamicType": false,
              "required": false,
              "isConfigOverride": false,
              "expressionSupport": "NOT_SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "tabName": "Advanced"
              },
              "allowedStereotypeModels": [
                {
                  "type": "OBJECT_STORE",
                  "namespace": "OS"
                }
              ],
              "name": "objectStore",
              "displayModel": {
                "displayName": "Object Store (*)",
                "summary": "In order to create an Object Store configuration, an Object Store implementation needs to be present in the project. An option is to add the Mule Object Store Module provided by MuleSoft"
              },
              "description": "",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "String"
              },
              "hasDynamicType": false,
              "required": true,
              "isConfigOverride": false,
              "expressionSupport": "NOT_SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false
              },
              "allowedStereotypeModels": [],
              "name": "name",
              "description": "",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "Number",
                "annotations": {
                  "classInformation": {
                    "classname": "int",
                    "hasDefaultConstructor": false,
                    "isInterface": false,
                    "isInstantiable": false,
                    "isAbstract": true,
                    "isFinal": true,
                    "implementedInterfaces": [],
                    "parent": "",
                    "genericTypes": [],
                    "isMap": false
                  },
                  "int": {}
                }
              },
              "hasDynamicType": false,
              "required": false,
              "isConfigOverride": false,
              "expressionSupport": "NOT_SUPPORTED",
              "defaultValue": "-1",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false
              },
              "allowedStereotypeModels": [],
              "name": "maxSize",
              "description": "",
              "modelProperties": {}
            }
          ],
          "exclusiveParametersModels": [],
          "showInDsl": false,
          "name": "General",
          "description": "",
          "modelProperties": {}
        },
        {
          "parameters": [
            {
              "type": {
                "format": "java",
                "type": "Object",
                "annotations": {
                  "typeId": "java.lang.Object",
                  "classInformation": {
                    "classname": "java.lang.Object",
                    "hasDefaultConstructor": true,
                    "isInterface": false,
                    "isInstantiable": true,
                    "isAbstract": false,
                    "isFinal": false,
                    "implementedInterfaces": [],
                    "parent": "",
                    "genericTypes": [],
                    "isMap": false
                  },
                  "typeAlias": {
                    "value": "Object"
                  }
                },
                "fields": []
              },
              "hasDynamicType": false,
              "required": false,
              "isConfigOverride": false,
              "expressionSupport": "SUPPORTED",
              "defaultValue": "#[payload]",
              "role": "CONTENT",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false
              },
              "allowedStereotypeModels": [],
              "name": "content",
              "description": "",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "Number",
                "annotations": {
                  "classInformation": {
                    "classname": "int",
                    "hasDefaultConstructor": false,
                    "isInterface": false,
                    "isInstantiable": false,
                    "isAbstract": true,
                    "isFinal": true,
                    "implementedInterfaces": [],
                    "parent": "",
                    "genericTypes": [],
                    "isMap": false
                  },
                  "int": {}
                }
              },
              "hasDynamicType": false,
              "required": true,
              "isConfigOverride": false,
              "expressionSupport": "NOT_SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false
              },
              "allowedStereotypeModels": [],
              "name": "period",
              "description": "",
              "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,
              "isConfigOverride": false,
              "expressionSupport": "NOT_SUPPORTED",
              "defaultValue": "SECONDS",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false
              },
              "allowedStereotypeModels": [],
              "name": "periodUnit",
              "description": "",
              "modelProperties": {}
            }
          ],
          "exclusiveParametersModels": [],
          "layoutModel": {
            "password": false,
            "text": false,
            "query": false
          },
          "showInDsl": false,
          "name": "Aggregator config",
          "description": "",
          "modelProperties": {}
        }
      ],
      "name": "timeBasedAggregator",
      "description": "",
      "modelProperties": {},
      "kind": "construct"
    }
  ],
  "connectionProviders": [],
  "messageSources": [
    {
      "hasResponse": false,
      "runsOnPrimaryNodeOnly": false,
      "output": {
        "type": {
          "format": "java",
          "type": "Object",
          "annotations": {
            "typeId": "org.mule.runtime.api.message.Message",
            "classInformation": {
              "classname": "org.mule.runtime.api.message.Message",
              "hasDefaultConstructor": false,
              "isInterface": true,
              "isInstantiable": false,
              "isAbstract": true,
              "isFinal": false,
              "implementedInterfaces": [
                "java.io.Serializable"
              ],
              "parent": "",
              "genericTypes": [],
              "isMap": false
            },
            "typeAlias": {
              "value": "Message"
            }
          },
          "fields": []
        },
        "hasDynamicType": false,
        "description": "",
        "modelProperties": {}
      },
      "outputAttributes": {
        "type": {
          "format": "java",
          "type": "@ref:org.mule.extension.aggregator.api.AggregationAttributes"
        },
        "hasDynamicType": false,
        "description": "",
        "modelProperties": {}
      },
      "transactional": false,
      "requiresConnection": false,
      "supportsStreaming": false,
      "notifications": [],
      "nestedComponents": [],
      "errors": [],
      "stereotype": {
        "type": "SOURCE",
        "namespace": "MULE"
      },
      "parameterGroupModels": [
        {
          "parameters": [
            {
              "type": {
                "format": "java",
                "type": "String"
              },
              "hasDynamicType": false,
              "required": true,
              "isConfigOverride": false,
              "expressionSupport": "NOT_SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 1
              },
              "allowedStereotypeModels": [],
              "name": "aggregatorName",
              "description": "",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "Boolean",
                "annotations": {
                  "typeId": "boolean"
                }
              },
              "hasDynamicType": false,
              "required": false,
              "isConfigOverride": false,
              "expressionSupport": "NOT_SUPPORTED",
              "defaultValue": "false",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 2
              },
              "allowedStereotypeModels": [],
              "name": "includeTimedOutGroups",
              "description": "",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "Boolean"
              },
              "hasDynamicType": false,
              "required": false,
              "isConfigOverride": 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": "Advanced"
              },
              "allowedStereotypeModels": [],
              "name": "primaryNodeOnly",
              "description": "Whether this source should only be executed on the primary node when runnning in Cluster",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "Object",
                "annotations": {
                  "typeId": "RedeliveryPolicy"
                },
                "fields": [
                  {
                    "key": {
                      "name": "maxRedeliveryCount"
                    },
                    "model": {
                      "type": "Number",
                      "annotations": {
                        "int": {},
                        "default": "5"
                      }
                    },
                    "annotations": {
                      "description": {
                        "value": "The maximum number of times a message can be redelivered and processed unsuccessfully before triggering process-failed-message"
                      }
                    }
                  },
                  {
                    "key": {
                      "name": "useSecureHash"
                    },
                    "model": {
                      "type": "Boolean",
                      "annotations": {
                        "default": "true"
                      }
                    },
                    "annotations": {
                      "description": {
                        "value": "Whether to use a secure hash algorithm to identify a redelivered message"
                      }
                    }
                  },
                  {
                    "key": {
                      "name": "messageDigestAlgorithm"
                    },
                    "model": {
                      "type": "String"
                    },
                    "annotations": {
                      "description": {
                        "value": "The secure hashing algorithm to use. If not set, the default is SHA-256."
                      }
                    }
                  },
                  {
                    "key": {
                      "name": "idExpression"
                    },
                    "model": {
                      "type": "String"
                    },
                    "annotations": {
                      "description": {
                        "value": "Defines one or more expressions to use to determine when a message has been redelivered. This property may only be set if useSecureHash is false."
                      }
                    }
                  },
                  {
                    "key": {
                      "name": "objectStore"
                    },
                    "model": {
                      "type": "@ref:org.mule.runtime.api.store.ObjectStore"
                    },
                    "annotations": {
                      "stereotype": {
                        "allowedStereotypes": [
                          {
                            "type": "OBJECT_STORE",
                            "namespace": "OS"
                          }
                        ]
                      },
                      "description": {
                        "value": "The object store where the redelivery counter for each message is going to be stored."
                      }
                    }
                  }
                ]
              },
              "hasDynamicType": false,
              "required": false,
              "isConfigOverride": false,
              "expressionSupport": "NOT_SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": false,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 3,
                "tabName": "Redelivery"
              },
              "allowedStereotypeModels": [],
              "name": "redeliveryPolicy",
              "description": "Defines a policy for processing the redelivery of the same message",
              "modelProperties": {
                "org.mule.runtime.extension.api.property.QNameModelProperty": {
                  "value": {
                    "namespaceURI": "http://www.mulesoft.org/schema/mule/core",
                    "localPart": "abstract-redelivery-policy",
                    "prefix": "mule"
                  }
                },
                "org.mule.runtime.extension.api.property.InfrastructureParameterModelProperty": {
                  "sequence": 1
                }
              }
            }
          ],
          "exclusiveParametersModels": [],
          "layoutModel": {
            "password": false,
            "text": false,
            "query": false,
            "order": 1
          },
          "showInDsl": false,
          "name": "General",
          "description": "",
          "modelProperties": {}
        }
      ],
      "name": "AggregatorListener",
      "description": "Source for listening to events triggered by aggregator",
      "modelProperties": {},
      "kind": "source"
    }
  ],
  "notifications": [],
  "errors": [
    {
      "error": "AGGREGATORS:RETRY_EXHAUSTED",
      "parent": "MULE:RETRY_EXHAUSTED",
      "handleable": true
    },
    {
      "error": "MULE:RETRY_EXHAUSTED",
      "parent": "MULE:ANY",
      "handleable": true
    },
    {
      "error": "MULE:ANY",
      "handleable": true
    },
    {
      "error": "AGGREGATORS:CONNECTIVITY",
      "parent": "MULE:CONNECTIVITY",
      "handleable": true
    },
    {
      "error": "MULE:CONNECTIVITY",
      "parent": "MULE:ANY",
      "handleable": true
    },
    {
      "error": "AGGREGATORS:AGGREGATOR_CONFIG",
      "parent": "MULE:ANY",
      "handleable": true
    },
    {
      "error": "AGGREGATORS:OBJECT_STORE_ACCESS",
      "parent": "MULE:ANY",
      "handleable": true
    },
    {
      "error": "AGGREGATORS:NO_GROUP_SIZE",
      "parent": "AGGREGATORS:AGGREGATOR_CONFIG",
      "handleable": true
    },
    {
      "error": "AGGREGATORS:NO_GROUP_ID",
      "parent": "AGGREGATORS:AGGREGATOR_CONFIG",
      "handleable": true
    },
    {
      "error": "AGGREGATORS:GROUP_NOT_EVICTED",
      "parent": "MULE:ANY",
      "handleable": true
    },
    {
      "error": "AGGREGATORS:GROUP_COMPLETED",
      "parent": "AGGREGATORS:GROUP_NOT_EVICTED",
      "handleable": true
    },
    {
      "error": "AGGREGATORS:GROUP_TIMED_OUT",
      "parent": "AGGREGATORS:GROUP_NOT_EVICTED",
      "handleable": true
    }
  ],
  "modelProperties": {},
  "types": [
    {
      "format": "java",
      "type": "Object",
      "annotations": {
        "typeId": "org.mule.extension.aggregator.api.AggregationAttributes",
        "classInformation": {
          "classname": "org.mule.extension.aggregator.api.AggregationAttributes",
          "hasDefaultConstructor": true,
          "isInterface": false,
          "isInstantiable": true,
          "isAbstract": false,
          "isFinal": false,
          "implementedInterfaces": [],
          "parent": "",
          "genericTypes": [],
          "isMap": false
        },
        "typeAlias": {
          "value": "AggregationAttributes"
        }
      },
      "fields": [
        {
          "key": {
            "name": "aggregationId",
            "required": "true"
          },
          "model": {
            "type": "String"
          },
          "annotations": {
            "expressionSupport": {
              "value": "SUPPORTED"
            }
          }
        },
        {
          "key": {
            "name": "firstItemArrivalTime",
            "required": "true"
          },
          "model": {
            "type": "Number",
            "annotations": {
              "classInformation": {
                "classname": "long",
                "hasDefaultConstructor": false,
                "isInterface": false,
                "isInstantiable": false,
                "isAbstract": true,
                "isFinal": true,
                "implementedInterfaces": [],
                "parent": "",
                "genericTypes": [],
                "isMap": false
              },
              "int": {}
            }
          },
          "annotations": {
            "expressionSupport": {
              "value": "SUPPORTED"
            }
          }
        },
        {
          "key": {
            "name": "lastItemArrivalTime",
            "required": "true"
          },
          "model": {
            "type": "Number",
            "annotations": {
              "classInformation": {
                "classname": "long",
                "hasDefaultConstructor": false,
                "isInterface": false,
                "isInstantiable": false,
                "isAbstract": true,
                "isFinal": true,
                "implementedInterfaces": [],
                "parent": "",
                "genericTypes": [],
                "isMap": false
              },
              "int": {}
            }
          },
          "annotations": {
            "expressionSupport": {
              "value": "SUPPORTED"
            }
          }
        },
        {
          "key": {
            "name": "isAggregationComplete"
          },
          "model": {
            "type": "Boolean",
            "annotations": {
              "typeId": "boolean"
            }
          },
          "annotations": {
            "default": "false",
            "expressionSupport": {
              "value": "SUPPORTED"
            }
          }
        }
      ]
    }
  ]
}
