{
  "name": "HL7 EDI",
  "description": "",
  "version": "4.3.0-SNAPSHOT",
  "vendor": "Mulesoft",
  "category": "PREMIUM",
  "xmlDsl": {
    "prefix": "hl7",
    "namespace": "http://www.mulesoft.org/schema/mule/hl7",
    "schemaLocation": "http://www.mulesoft.org/schema/mule/hl7/current/mule-hl7.xsd",
    "schemaVersion": "4.3.0-SNAPSHOT",
    "xsdFileName": "mule-hl7.xsd"
  },
  "resources": [],
  "subTypes": [],
  "privilegedPackages": [],
  "privilegedArtifacts": [],
  "externalLibraries": [],
  "importedTypes": [],
  "configurations": [
    {
      "stereotype": {
        "type": "CONFIG",
        "namespace": "HL7",
        "parent": {
          "type": "MODULE_CONFIG",
          "namespace": "MULE"
        }
      },
      "parameterGroupModels": [
        {
          "parameters": [
            {
              "type": {
                "format": "java",
                "type": "String"
              },
              "hasDynamicType": false,
              "required": true,
              "isConfigOverride": false,
              "isComponentId": true,
              "expressionSupport": "NOT_SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": false,
                "allowsReferences": false,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 13
              },
              "allowedStereotypeModels": [],
              "name": "name",
              "description": "The identifier of this element used to reference it in other components",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "Object",
                "annotations": {
                  "typeId": "org.mule.runtime.extension.api.runtime.ExpirationPolicy",
                  "description": {
                    "value": "Configures the minimum amount of time that a dynamic configuration instance can remain idle before the runtime considers it eligible for expiration. This does not mean that the platform will expire the instance at the exact moment that it becomes eligible. The runtime will actually purge the instances when it sees it fit."
                  },
                  "typeDsl": {
                    "allowInlineDefinition": true,
                    "allowTopLevelDefinition": false
                  }
                },
                "fields": [
                  {
                    "key": {
                      "name": "maxIdleTime"
                    },
                    "model": {
                      "type": "Number",
                      "annotations": {
                        "int": {},
                        "classInformation": {
                          "classname": "java.lang.Long",
                          "hasDefaultConstructor": false,
                          "isInterface": false,
                          "isInstantiable": false,
                          "isAbstract": false,
                          "isFinal": true,
                          "implementedInterfaces": [
                            "java.lang.Comparable"
                          ],
                          "parent": "java.lang.Number",
                          "genericTypes": [],
                          "isMap": false
                        },
                        "default": "5"
                      }
                    },
                    "annotations": {
                      "description": {
                        "value": "A scalar time value for the maximum amount of time a dynamic configuration instance should be allowed to be idle before it\u0027s considered eligible for expiration"
                      },
                      "expressionSupport": {
                        "value": "NOT_SUPPORTED"
                      }
                    }
                  },
                  {
                    "key": {
                      "name": "timeUnit"
                    },
                    "model": {
                      "type": "String",
                      "annotations": {
                        "enum": {
                          "type": "[Ljava.lang.String;",
                          "values": [
                            "NANOSECONDS",
                            "MICROSECONDS",
                            "MILLISECONDS",
                            "SECONDS",
                            "MINUTES",
                            "HOURS",
                            "DAYS"
                          ]
                        },
                        "default": "MINUTES"
                      }
                    },
                    "annotations": {
                      "description": {
                        "value": "A time unit that qualifies the maxIdleTime attribute"
                      },
                      "expressionSupport": {
                        "value": "NOT_SUPPORTED"
                      }
                    }
                  }
                ]
              },
              "hasDynamicType": false,
              "required": false,
              "isConfigOverride": false,
              "isComponentId": false,
              "expressionSupport": "NOT_SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": false,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 12,
                "tabName": "Advanced"
              },
              "allowedStereotypeModels": [],
              "name": "expirationPolicy",
              "description": "Configures the minimum amount of time that a dynamic configuration instance can remain idle before the runtime considers it eligible for expiration. This does not mean that the platform will expire the instance at the exact moment that it becomes eligible. The runtime will actually purge the instances when it sees it fit.",
              "modelProperties": {
                "org.mule.runtime.extension.api.property.QNameModelProperty": {
                  "value": {
                    "namespaceURI": "http://www.mulesoft.org/schema/mule/core",
                    "localPart": "expiration-policy",
                    "prefix": "mule"
                  }
                },
                "org.mule.runtime.extension.api.property.InfrastructureParameterModelProperty": {
                  "sequence": 4
                }
              }
            }
          ],
          "exclusiveParametersModels": [],
          "layoutModel": {
            "password": false,
            "text": false,
            "query": false,
            "order": 0
          },
          "showInDsl": false,
          "name": "General",
          "description": "",
          "modelProperties": {}
        },
        {
          "parameters": [
            {
              "type": {
                "format": "java",
                "type": "String"
              },
              "hasDynamicType": false,
              "required": false,
              "isConfigOverride": false,
              "isComponentId": false,
              "expressionSupport": "SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": false,
                "allowsReferences": false,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 1,
                "tabName": "Identity"
              },
              "allowedStereotypeModels": [],
              "name": "appNamespaceIdSelf",
              "displayModel": {
                "displayName": "Mule Application Namespace ID (MSH-03/HD-01 or MSH-05/HD-01)"
              },
              "description": "Application Namespace ID for Mule in message header (MSH segment). If this value is set, it effects both send and receive message handling. On the receive side, the MSH Receiving Application identification Namespace ID must match this value. On the send side, this value is used as the MSH Sending Application identification Namespace ID unless overridden in either the send configuration or the message parameters.",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "String"
              },
              "hasDynamicType": false,
              "required": false,
              "isConfigOverride": false,
              "isComponentId": false,
              "expressionSupport": "SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": false,
                "allowsReferences": false,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 2,
                "tabName": "Identity"
              },
              "allowedStereotypeModels": [],
              "name": "appUniversalIdSelf",
              "displayModel": {
                "displayName": "Mule Application Universal ID (MSH-03/HD-02 or MSH-05/HD-02)"
              },
              "description": "Application Universal ID for Mule in message header (MSH segment). If this value is set, it effects both send and receive message handling. On the receive side, the MSH Receiving Application identification Universal ID must match this value. On the send side, this value is used as the MSH Sending Application identification Universal ID unless overridden in either the send configuration or the message parameters.",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "String"
              },
              "hasDynamicType": false,
              "required": false,
              "isConfigOverride": false,
              "isComponentId": false,
              "expressionSupport": "SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": false,
                "allowsReferences": false,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 3,
                "tabName": "Identity"
              },
              "allowedStereotypeModels": [],
              "name": "appUniversalIdTypeSelf",
              "displayModel": {
                "displayName": "Mule Application Universal ID Type (MSH-03/HD-03 or MSH-05/HD-03)"
              },
              "description": "Application Universal ID Type for Mule in message header (MSH segment). If this value is set, it effects both send and receive message handling. On the receive side, the MSH Receiving Application identification Universal ID Type must match this value. On the send side, this value is used as the MSH Sending Application identification Universal ID Type unless overridden in either the send configuration or the message parameters.",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "String"
              },
              "hasDynamicType": false,
              "required": false,
              "isConfigOverride": false,
              "isComponentId": false,
              "expressionSupport": "SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": false,
                "allowsReferences": false,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 4,
                "tabName": "Identity"
              },
              "allowedStereotypeModels": [],
              "name": "appNamespaceIdPartner",
              "displayModel": {
                "displayName": "Partner Application Namespace ID (MSH-03/HD-01 or MSH-05/HD-01)"
              },
              "description": "Application Namespace ID for Partner in message header (MSH segment). If this value is set, it effects both send and receive message handling. On the receive side, the MSH Sending Application identification Namespace ID must match this value. On the send side, this value is used as the MSH Receiving Application identification Namespace ID unless overridden in either the send configuration or the message parameters.",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "String"
              },
              "hasDynamicType": false,
              "required": false,
              "isConfigOverride": false,
              "isComponentId": false,
              "expressionSupport": "SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": false,
                "allowsReferences": false,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 5,
                "tabName": "Identity"
              },
              "allowedStereotypeModels": [],
              "name": "appUniversalIdPartner",
              "displayModel": {
                "displayName": "Partner Application Universal ID (MSH-03/HD-02 or MSH-05/HD-02)"
              },
              "description": "Application Universal ID for Partner in message header (MSH segment). If this value is set, it effects both send and receive message handling. On the receive side, the MSH Sending Application identification Universal ID must match this value. On the send side, this value is used as the MSH Receiving Application identification Universal ID unless overridden in either the send configuration or the message parameters.",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "String"
              },
              "hasDynamicType": false,
              "required": false,
              "isConfigOverride": false,
              "isComponentId": false,
              "expressionSupport": "SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": false,
                "allowsReferences": false,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 6,
                "tabName": "Identity"
              },
              "allowedStereotypeModels": [],
              "name": "appUniversalIdTypePartner",
              "displayModel": {
                "displayName": "Partner Application Universal ID Type (MSH-03/HD-03 or MSH-05/HD-03)"
              },
              "description": "Application Universal ID Type for Partner in message header (MSH segment). If this value is set, it effects both send and receive message handling. On the receive side, the MSH Sending Application identification Universal ID Type must match this value. On the send side, this value is used as the MSH Receiving Application identification Universal ID Type unless overridden in either the send configuration or the message parameters.",
              "modelProperties": {}
            }
          ],
          "exclusiveParametersModels": [],
          "layoutModel": {
            "password": false,
            "text": false,
            "query": false,
            "order": 1
          },
          "showInDsl": false,
          "name": "Identity",
          "description": "",
          "modelProperties": {}
        },
        {
          "parameters": [
            {
              "type": {
                "format": "java",
                "type": "Array",
                "annotations": {
                  "classInformation": {
                    "classname": "java.util.List",
                    "hasDefaultConstructor": false,
                    "isInterface": true,
                    "isInstantiable": false,
                    "isAbstract": true,
                    "isFinal": false,
                    "implementedInterfaces": [
                      "java.util.Collection"
                    ],
                    "parent": "",
                    "genericTypes": [
                      "java.lang.String"
                    ],
                    "isMap": false
                  }
                },
                "item": {
                  "type": "String"
                }
              },
              "hasDynamicType": false,
              "required": true,
              "isConfigOverride": false,
              "isComponentId": false,
              "expressionSupport": "SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": false,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 1,
                "tabName": "Document"
              },
              "allowedStereotypeModels": [],
              "name": "schemas",
              "displayModel": {
                "displayName": "Schema definitions"
              },
              "description": "List of paths for schemas to be used by module. The paths may be either for file system or classpath.",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "String"
              },
              "hasDynamicType": false,
              "required": false,
              "isConfigOverride": false,
              "isComponentId": false,
              "expressionSupport": "SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": false,
                "allowsReferences": false,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 2,
                "tabName": "Document"
              },
              "allowedStereotypeModels": [],
              "name": "eventMessageMap",
              "displayModel": {
                "displayName": "Event and message to message structure map path"
              },
              "description": "Path to a YAML file defining the mapping from event code to message code to message structure identifier. If working with multiple message structures this mapping definition supports using MSH-9-1 and MSH-9-2 to determine the message structure when MSH-9-3 is not present in a message. If only a single message structure is present in the schema(s) that message structure is used for parsing all messages, and if MSH-9-3 is present in a message the MSH-9-1 and MSH-9-2 values are ignored.",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "String",
                "annotations": {
                  "typeId": "com.mulesoft.connectors.hl7.extension.api.config.CharacterEncoding",
                  "enum": {
                    "type": "[Ljava.lang.String;",
                    "values": [
                      "ASCII",
                      "BIG_5",
                      "UTF_8",
                      "UTF_16",
                      "UTF_32",
                      "ISO_8859_1",
                      "ISO_8859_2",
                      "ISO_8859_3",
                      "ISO_8859_4",
                      "ISO_8859_5",
                      "ISO_8859_6",
                      "ISO_8859_7",
                      "ISO_8859_8",
                      "ISO_8859_9",
                      "ISO_8859_15",
                      "JIS_X0201",
                      "JIS0208",
                      "JIS_X0212",
                      "GB_18030",
                      "EUC_KR",
                      "EUC_TW"
                    ]
                  }
                }
              },
              "hasDynamicType": false,
              "required": false,
              "isConfigOverride": false,
              "isComponentId": false,
              "expressionSupport": "SUPPORTED",
              "defaultValue": "ASCII",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": false,
                "allowsReferences": false,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 8,
                "tabName": "Document"
              },
              "allowedStereotypeModels": [],
              "name": "characterEncoding",
              "displayModel": {
                "displayName": "HL7 Message character encoding"
              },
              "description": "Character encoding for HL7 messages. This is used as the default for receive messages, when MSH-18 is not present. It is also used as the default for send messages, when MSH-18 is not present in the send message data.",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "Boolean",
                "annotations": {
                  "typeId": "boolean"
                }
              },
              "hasDynamicType": false,
              "required": false,
              "isConfigOverride": false,
              "isComponentId": false,
              "expressionSupport": "SUPPORTED",
              "defaultValue": "true",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": false,
                "allowsReferences": false,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 9,
                "tabName": "Document"
              },
              "allowedStereotypeModels": [],
              "name": "identKeys",
              "displayModel": {
                "displayName": "Disable numeric prefixes for data keys"
              },
              "description": "Use segment and group identifiers directly as keys in data, rather than prefixing with position values.",
              "modelProperties": {}
            }
          ],
          "exclusiveParametersModels": [],
          "layoutModel": {
            "password": false,
            "text": false,
            "query": false,
            "order": 2
          },
          "showInDsl": false,
          "name": "Document",
          "description": "",
          "modelProperties": {}
        },
        {
          "parameters": [
            {
              "type": {
                "format": "java",
                "type": "String",
                "annotations": {
                  "typeId": "com.mulesoft.connectors.hl7.extension.api.config.ProcessingId",
                  "enum": {
                    "type": "[Ljava.lang.String;",
                    "values": [
                      "DEBUGGING",
                      "PRODUCTION",
                      "TRAINING"
                    ]
                  }
                }
              },
              "hasDynamicType": false,
              "required": false,
              "isConfigOverride": false,
              "isComponentId": false,
              "expressionSupport": "SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": false,
                "allowsReferences": false,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 2,
                "tabName": "Parser"
              },
              "allowedStereotypeModels": [],
              "name": "processingId",
              "displayModel": {
                "displayName": "Required processing ID"
              },
              "description": "Value to match for MSH-11-1 processing ID. If set, only messages with the specified processing ID will be accepted for processing; messages with other processing ID values, or with no processing ID specified, will be rejected with an exception.",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "String"
              },
              "hasDynamicType": false,
              "required": false,
              "isConfigOverride": false,
              "isComponentId": false,
              "expressionSupport": "SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": false,
                "allowsReferences": false,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 2,
                "tabName": "Parser"
              },
              "allowedStereotypeModels": [],
              "name": "genericExtensionPattern",
              "displayModel": {
                "displayName": "Pattern for generic extension segment names"
              },
              "description": "Java regular pattern for segment names to be treated as generic extension segments. If specified, segment names matching this pattern are allowed anywhere in the message and are converted to maps of string values for elements and composites.",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "Boolean",
                "annotations": {
                  "typeId": "boolean"
                }
              },
              "hasDynamicType": false,
              "required": false,
              "isConfigOverride": false,
              "isComponentId": false,
              "expressionSupport": "SUPPORTED",
              "defaultValue": "false",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": false,
                "allowsReferences": false,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 3,
                "tabName": "Parser"
              },
              "allowedStereotypeModels": [],
              "name": "missingRequiredValueFail",
              "displayModel": {
                "displayName": "Fail when a required value is missing."
              },
              "description": "Fail when a required value is missing flag. If true, a message with this error is rejected; if false, the value is ignored and the message is not rejected. In either case the error is logged and reported in an ERR segment.",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "Boolean",
                "annotations": {
                  "typeId": "boolean"
                }
              },
              "hasDynamicType": false,
              "required": false,
              "isConfigOverride": false,
              "isComponentId": false,
              "expressionSupport": "SUPPORTED",
              "defaultValue": "false",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": false,
                "allowsReferences": false,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 4,
                "tabName": "Parser"
              },
              "allowedStereotypeModels": [],
              "name": "valueLengthErrorFail",
              "displayModel": {
                "displayName": "Fail when a value length is outside an allowed range."
              },
              "description": "Fail when receive value length outside allowed range flag. If true, a message with this error is rejected; if false, the value is used anyway and the message is not rejected. In either case the error is logged and reported in an ERR segment.",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "Boolean",
                "annotations": {
                  "typeId": "boolean"
                }
              },
              "hasDynamicType": false,
              "required": false,
              "isConfigOverride": false,
              "isComponentId": false,
              "expressionSupport": "SUPPORTED",
              "defaultValue": "false",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": false,
                "allowsReferences": false,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 5,
                "tabName": "Parser"
              },
              "allowedStereotypeModels": [],
              "name": "invalidCharacterInValueFail",
              "displayModel": {
                "displayName": "Fail when an invalid character is in a value."
              },
              "description": "Fail when receive value contains invalid characters flag. If true, a message with this error is rejected; if false, the character is either passed through or substituted and the message is not rejected. In either case the error is reported in an ERR segment.",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "Boolean",
                "annotations": {
                  "typeId": "boolean"
                }
              },
              "hasDynamicType": false,
              "required": false,
              "isConfigOverride": false,
              "isComponentId": false,
              "expressionSupport": "SUPPORTED",
              "defaultValue": "false",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": false,
                "allowsReferences": false,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 6,
                "tabName": "Parser"
              },
              "allowedStereotypeModels": [],
              "name": "wrongValuesRepeatsFail",
              "displayModel": {
                "displayName": "Fail when there are too many repeats of a value."
              },
              "description": "Fail when receive value is repeated too many times. If true, a message with this error is rejected; if false, the value is accepted and the message is not rejected. In either case the error is reported in an ERR segment.",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "Boolean",
                "annotations": {
                  "typeId": "boolean"
                }
              },
              "hasDynamicType": false,
              "required": false,
              "isConfigOverride": false,
              "isComponentId": false,
              "expressionSupport": "SUPPORTED",
              "defaultValue": "false",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": false,
                "allowsReferences": false,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 7,
                "tabName": "Parser"
              },
              "allowedStereotypeModels": [],
              "name": "unknownSegmentFail",
              "displayModel": {
                "displayName": "Fail when an unknown segment is in the message."
              },
              "description": "Fail when an unknown segment is present in a message. If true, a message with this error is rejected; if false, the segment is ignored and the message is not rejected. In either case the error is reported in an ERR segment.",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "Boolean",
                "annotations": {
                  "typeId": "boolean"
                }
              },
              "hasDynamicType": false,
              "required": false,
              "isConfigOverride": false,
              "isComponentId": false,
              "expressionSupport": "SUPPORTED",
              "defaultValue": "false",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": false,
                "allowsReferences": false,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 8,
                "tabName": "Parser"
              },
              "allowedStereotypeModels": [],
              "name": "segmentOutOfOrderFail",
              "displayModel": {
                "displayName": "Fail when a segment is out of order in a message."
              },
              "description": "Fail when a segment is out of order in a message. If true, a message with this error is rejected; if false and the segment can be reordered the message is not rejected. In either case the error is reported in an ERR segment.",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "Boolean",
                "annotations": {
                  "typeId": "boolean"
                }
              },
              "hasDynamicType": false,
              "required": false,
              "isConfigOverride": false,
              "isComponentId": false,
              "expressionSupport": "SUPPORTED",
              "defaultValue": "false",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": false,
                "allowsReferences": false,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 9,
                "tabName": "Parser"
              },
              "allowedStereotypeModels": [],
              "name": "unusedSegmentPresentFail",
              "displayModel": {
                "displayName": "Fail when an unused segment is included in a message."
              },
              "description": "Fail when a segment marked as Unused is included in a message. If true, a message with this error is rejected; if false, the message is not rejected and the unused segment is ignored. In either case the error is reported in an ERR segment.",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "Boolean",
                "annotations": {
                  "typeId": "boolean"
                }
              },
              "hasDynamicType": false,
              "required": false,
              "isConfigOverride": false,
              "isComponentId": false,
              "expressionSupport": "SUPPORTED",
              "defaultValue": "false",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": false,
                "allowsReferences": false,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 10,
                "tabName": "Parser"
              },
              "allowedStereotypeModels": [],
              "name": "wrongSegmentsRepeatsFail",
              "displayModel": {
                "displayName": "Fail when there are too many repeats of a segment."
              },
              "description": "Fail when a segment occurs too many times in a message. If true, a message with this error is rejected; if false, the message is not rejected. In either case the error is reported in an ERR segment.",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "String",
                "annotations": {
                  "typeId": "com.mulesoft.connectors.hl7.extension.api.config.SegmentTerminator",
                  "enum": {
                    "type": "[Ljava.lang.String;",
                    "values": [
                      "CR",
                      "LF"
                    ]
                  }
                }
              },
              "hasDynamicType": false,
              "required": false,
              "isConfigOverride": false,
              "isComponentId": false,
              "expressionSupport": "NOT_SUPPORTED",
              "defaultValue": "CR",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": false,
                "allowsReferences": false,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 11,
                "tabName": "Parser"
              },
              "allowedStereotypeModels": [],
              "name": "parserSegmentTerminator",
              "displayModel": {
                "displayName": "HL7 Message segment terminator"
              },
              "description": "Segment terminator for HL7 messages. This is used to recognize when a segment ends",
              "modelProperties": {}
            }
          ],
          "exclusiveParametersModels": [],
          "layoutModel": {
            "password": false,
            "text": false,
            "query": false,
            "order": 3
          },
          "showInDsl": false,
          "name": "Parser",
          "description": "",
          "modelProperties": {}
        },
        {
          "parameters": [
            {
              "type": {
                "format": "java",
                "type": "String"
              },
              "hasDynamicType": false,
              "required": false,
              "isConfigOverride": false,
              "isComponentId": false,
              "expressionSupport": "SUPPORTED",
              "defaultValue": "|",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": false,
                "allowsReferences": false,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 1,
                "tabName": "Writer"
              },
              "allowedStereotypeModels": [],
              "name": "fieldSeparator",
              "displayModel": {
                "displayName": "Field separator character"
              },
              "description": "Optional data element separator character. The configured value is used by default for all output messages, but can be overridden at the message level.",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "String"
              },
              "hasDynamicType": false,
              "required": false,
              "isConfigOverride": false,
              "isComponentId": false,
              "expressionSupport": "SUPPORTED",
              "defaultValue": "^",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": false,
                "allowsReferences": false,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 2,
                "tabName": "Writer"
              },
              "allowedStereotypeModels": [],
              "name": "componentSeparator",
              "displayModel": {
                "displayName": "Component separator character"
              },
              "description": "Optional component separator character. The configured value is used by default for all output messages, but can be overridden at the message level.",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "String"
              },
              "hasDynamicType": false,
              "required": false,
              "isConfigOverride": false,
              "isComponentId": false,
              "expressionSupport": "SUPPORTED",
              "defaultValue": "\u0027",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": false,
                "allowsReferences": false,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 3,
                "tabName": "Writer"
              },
              "allowedStereotypeModels": [],
              "name": "subcompSeparator",
              "displayModel": {
                "displayName": "Sub component separator character"
              },
              "description": "Optional sub component separator character. The configured value is used by default for all output messages, but can be overridden at the message level.",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "String"
              },
              "hasDynamicType": false,
              "required": false,
              "isConfigOverride": false,
              "isComponentId": false,
              "expressionSupport": "SUPPORTED",
              "defaultValue": "~",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": false,
                "allowsReferences": false,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 4,
                "tabName": "Writer"
              },
              "allowedStereotypeModels": [],
              "name": "repetitionSeparator",
              "displayModel": {
                "displayName": "Repetition separator character"
              },
              "description": "Optional repetition separator character. The configured value is used by default for all output messages, but can be overridden at the message level.",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "String"
              },
              "hasDynamicType": false,
              "required": false,
              "isConfigOverride": false,
              "isComponentId": false,
              "expressionSupport": "SUPPORTED",
              "defaultValue": "\\",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": false,
                "allowsReferences": false,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 5,
                "tabName": "Writer"
              },
              "allowedStereotypeModels": [],
              "name": "escapeCharacter",
              "displayModel": {
                "displayName": "Escape character"
              },
              "description": "Optional escape character. The configured value is used by default for all output messages, but can be overridden at the message level.",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "String",
                "annotations": {
                  "typeId": "com.mulesoft.connectors.hl7.extension.api.config.SegmentTerminator",
                  "enum": {
                    "type": "[Ljava.lang.String;",
                    "values": [
                      "CR",
                      "LF"
                    ]
                  }
                }
              },
              "hasDynamicType": false,
              "required": false,
              "isConfigOverride": false,
              "isComponentId": false,
              "expressionSupport": "NOT_SUPPORTED",
              "defaultValue": "CR",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": false,
                "allowsReferences": false,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 6,
                "tabName": "Writer"
              },
              "allowedStereotypeModels": [],
              "name": "writerSegmentTerminator",
              "displayModel": {
                "displayName": "HL7 Message segment terminator"
              },
              "description": "Segment terminator for HL7 messages. This is used to recognize when a segment ends",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "Boolean",
                "annotations": {
                  "typeId": "boolean"
                }
              },
              "hasDynamicType": false,
              "required": false,
              "isConfigOverride": false,
              "isComponentId": false,
              "expressionSupport": "NOT_SUPPORTED",
              "defaultValue": "false",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": false,
                "allowsReferences": false,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 7,
                "tabName": "Writer"
              },
              "allowedStereotypeModels": [],
              "name": "handleEmptyArrays",
              "displayModel": {
                "displayName": "Handle empty arrays for fields in messages"
              },
              "description": "Handle Empty Arrays for Fields in Messages.",
              "modelProperties": {}
            }
          ],
          "exclusiveParametersModels": [],
          "layoutModel": {
            "password": false,
            "text": false,
            "query": false,
            "order": 4
          },
          "showInDsl": false,
          "name": "Writer",
          "description": "",
          "modelProperties": {}
        }
      ],
      "externalLibraryModels": [],
      "operations": [
        {
          "blocking": true,
          "executionType": "BLOCKING",
          "output": {
            "type": {
              "format": "java",
              "type": "Object",
              "annotations": {
                "classInformation": {
                  "classname": "java.util.Map",
                  "hasDefaultConstructor": false,
                  "isInterface": true,
                  "isInstantiable": false,
                  "isAbstract": true,
                  "isFinal": false,
                  "implementedInterfaces": [],
                  "parent": "",
                  "genericTypes": [
                    "java.lang.String",
                    "java.lang.Object"
                  ],
                  "isMap": true
                }
              },
              "open": {
                "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": []
              },
              "fields": []
            },
            "hasDynamicType": true,
            "description": "",
            "modelProperties": {}
          },
          "outputAttributes": {
            "type": {
              "format": "java",
              "type": "Void"
            },
            "hasDynamicType": false,
            "description": "",
            "modelProperties": {}
          },
          "transactional": false,
          "requiresConnection": true,
          "supportsStreaming": false,
          "notifications": [],
          "nestedComponents": [],
          "errors": [
            "HL7:RETRY_EXHAUSTED",
            "HL7:UNKNOWN",
            "HL7:SCHEMA",
            "HL7:PARSE",
            "HL7:CONNECTIVITY",
            "HL7:WRITE"
          ],
          "stereotype": {
            "type": "READ",
            "namespace": "HL7",
            "parent": {
              "type": "PROCESSOR",
              "namespace": "HL7",
              "parent": {
                "type": "PROCESSOR",
                "namespace": "MULE"
              }
            }
          },
          "parameterGroupModels": [
            {
              "parameters": [
                {
                  "type": {
                    "format": "java",
                    "type": "Any",
                    "annotations": {
                      "classInformation": {
                        "classname": "java.io.InputStream",
                        "hasDefaultConstructor": true,
                        "isInterface": false,
                        "isInstantiable": false,
                        "isAbstract": true,
                        "isFinal": false,
                        "implementedInterfaces": [
                          "java.io.Closeable"
                        ],
                        "parent": "",
                        "genericTypes": [],
                        "isMap": false
                      }
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "isConfigOverride": false,
                  "isComponentId": false,
                  "expressionSupport": "SUPPORTED",
                  "defaultValue": "#[payload]",
                  "role": "PRIMARY_CONTENT",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": false,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 1
                  },
                  "allowedStereotypeModels": [],
                  "name": "readContent",
                  "description": "",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "Object",
                    "annotations": {
                      "typeId": "org.mule.runtime.extension.api.runtime.config.ConfigurationProvider"
                    },
                    "fields": []
                  },
                  "hasDynamicType": false,
                  "required": true,
                  "isConfigOverride": false,
                  "isComponentId": false,
                  "expressionSupport": "NOT_SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": false,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 2
                  },
                  "allowedStereotypeModels": [
                    {
                      "type": "CONFIG",
                      "namespace": "HL7",
                      "parent": {
                        "type": "MODULE_CONFIG",
                        "namespace": "MULE"
                      }
                    }
                  ],
                  "name": "config-ref",
                  "description": "The name of the configuration to be used to execute this component",
                  "modelProperties": {}
                }
              ],
              "exclusiveParametersModels": [],
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 1
              },
              "showInDsl": false,
              "name": "General",
              "description": "",
              "modelProperties": {}
            },
            {
              "parameters": [
                {
                  "type": {
                    "format": "java",
                    "type": "String"
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "isConfigOverride": false,
                  "isComponentId": false,
                  "expressionSupport": "NOT_SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": false,
                    "allowsReferences": false,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 3,
                    "tabName": "Advanced"
                  },
                  "allowedStereotypeModels": [],
                  "name": "target",
                  "displayModel": {
                    "displayName": "Target Variable"
                  },
                  "description": "The name of a variable on which the operation\u0027s output will be placed",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "String"
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "isConfigOverride": false,
                  "isComponentId": false,
                  "expressionSupport": "REQUIRED",
                  "defaultValue": "#[payload]",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": false,
                    "allowsReferences": false,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 4,
                    "tabName": "Advanced"
                  },
                  "allowedStereotypeModels": [],
                  "name": "targetValue",
                  "displayModel": {
                    "displayName": "Target Value"
                  },
                  "description": "An expression that will be evaluated against the operation\u0027s output and the outcome of that expression will be stored in the target variable",
                  "modelProperties": {}
                }
              ],
              "exclusiveParametersModels": [],
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 2
              },
              "showInDsl": false,
              "name": "Output",
              "description": "",
              "modelProperties": {}
            },
            {
              "parameters": [
                {
                  "type": {
                    "format": "java",
                    "type": "Union",
                    "annotations": {
                      "typeId": "ReconnectionStrategy"
                    },
                    "of": [
                      {
                        "type": "Object",
                        "annotations": {
                          "typeId": "reconnect"
                        },
                        "fields": [
                          {
                            "key": {
                              "name": "frequency"
                            },
                            "model": {
                              "type": "Number",
                              "annotations": {
                                "int": {},
                                "classInformation": {
                                  "classname": "java.lang.Long",
                                  "hasDefaultConstructor": false,
                                  "isInterface": false,
                                  "isInstantiable": false,
                                  "isAbstract": false,
                                  "isFinal": true,
                                  "implementedInterfaces": [
                                    "java.lang.Comparable"
                                  ],
                                  "parent": "java.lang.Number",
                                  "genericTypes": [],
                                  "isMap": false
                                },
                                "default": "2000"
                              }
                            },
                            "annotations": {
                              "description": {
                                "value": "How often (in ms) to reconnect"
                              }
                            }
                          },
                          {
                            "key": {
                              "name": "blocking"
                            },
                            "model": {
                              "type": "Boolean",
                              "annotations": {
                                "default": "true"
                              }
                            },
                            "annotations": {
                              "description": {
                                "value": "If false, the reconnection strategy will run in a separate, non-blocking thread"
                              }
                            }
                          },
                          {
                            "key": {
                              "name": "count"
                            },
                            "model": {
                              "type": "Number",
                              "annotations": {
                                "int": {},
                                "default": "2"
                              }
                            },
                            "annotations": {
                              "description": {
                                "value": "How many reconnection attempts to make"
                              }
                            }
                          }
                        ]
                      },
                      {
                        "type": "Object",
                        "annotations": {
                          "typeId": "reconnect-forever"
                        },
                        "fields": [
                          {
                            "key": {
                              "name": "frequency"
                            },
                            "model": {
                              "type": "Number",
                              "annotations": {
                                "int": {},
                                "classInformation": {
                                  "classname": "java.lang.Long",
                                  "hasDefaultConstructor": false,
                                  "isInterface": false,
                                  "isInstantiable": false,
                                  "isAbstract": false,
                                  "isFinal": true,
                                  "implementedInterfaces": [
                                    "java.lang.Comparable"
                                  ],
                                  "parent": "java.lang.Number",
                                  "genericTypes": [],
                                  "isMap": false
                                },
                                "default": "2000"
                              }
                            },
                            "annotations": {
                              "description": {
                                "value": "How often (in ms) to reconnect"
                              }
                            }
                          },
                          {
                            "key": {
                              "name": "blocking"
                            },
                            "model": {
                              "type": "Boolean",
                              "annotations": {
                                "default": "true"
                              }
                            },
                            "annotations": {
                              "description": {
                                "value": "If false, the reconnection strategy will run in a separate, non-blocking thread"
                              }
                            }
                          }
                        ]
                      }
                    ]
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "isConfigOverride": false,
                  "isComponentId": false,
                  "expressionSupport": "NOT_SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": false,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 5,
                    "tabName": "Advanced"
                  },
                  "allowedStereotypeModels": [],
                  "name": "reconnectionStrategy",
                  "description": "A retry strategy in case of connectivity errors",
                  "modelProperties": {
                    "org.mule.runtime.extension.api.property.QNameModelProperty": {
                      "value": {
                        "namespaceURI": "http://www.mulesoft.org/schema/mule/core",
                        "localPart": "abstract-reconnection-strategy",
                        "prefix": "mule"
                      }
                    },
                    "org.mule.runtime.extension.api.property.InfrastructureParameterModelProperty": {
                      "sequence": 3
                    }
                  }
                }
              ],
              "exclusiveParametersModels": [],
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 3
              },
              "showInDsl": false,
              "name": "Connection",
              "description": "",
              "modelProperties": {}
            }
          ],
          "name": "read",
          "description": "",
          "modelProperties": {
            "typeResolversInformation": {
              "category": "ConnectorTypeLoader",
              "outputResolver": {
                "resolverName": "OUTPUT_PAYLOAD",
                "requiresConnection": true,
                "requiresConfiguration": true
              }
            }
          },
          "kind": "operation"
        },
        {
          "blocking": true,
          "executionType": "BLOCKING",
          "output": {
            "type": {
              "format": {
                "id": "application/plain",
                "label": "application/plain",
                "validMimeTypes": [
                  "application/plain"
                ]
              },
              "type": "Any",
              "annotations": {
                "classInformation": {
                  "classname": "java.io.InputStream",
                  "hasDefaultConstructor": true,
                  "isInterface": false,
                  "isInstantiable": false,
                  "isAbstract": true,
                  "isFinal": false,
                  "implementedInterfaces": [
                    "java.io.Closeable"
                  ],
                  "parent": "",
                  "genericTypes": [],
                  "isMap": false
                }
              }
            },
            "hasDynamicType": false,
            "description": "",
            "modelProperties": {}
          },
          "outputAttributes": {
            "type": {
              "format": "java",
              "type": "Void"
            },
            "hasDynamicType": false,
            "description": "",
            "modelProperties": {}
          },
          "transactional": false,
          "requiresConnection": true,
          "supportsStreaming": true,
          "notifications": [],
          "nestedComponents": [],
          "errors": [
            "HL7:RETRY_EXHAUSTED",
            "HL7:UNKNOWN",
            "HL7:SCHEMA",
            "HL7:PARSE",
            "HL7:CONNECTIVITY",
            "HL7:WRITE"
          ],
          "stereotype": {
            "type": "WRITE",
            "namespace": "HL7",
            "parent": {
              "type": "PROCESSOR",
              "namespace": "HL7",
              "parent": {
                "type": "PROCESSOR",
                "namespace": "MULE"
              }
            }
          },
          "parameterGroupModels": [
            {
              "parameters": [
                {
                  "type": {
                    "format": "java",
                    "type": "Object",
                    "annotations": {
                      "classInformation": {
                        "classname": "java.util.Map",
                        "hasDefaultConstructor": false,
                        "isInterface": true,
                        "isInstantiable": false,
                        "isAbstract": true,
                        "isFinal": false,
                        "implementedInterfaces": [],
                        "parent": "",
                        "genericTypes": [
                          "java.lang.String",
                          "java.lang.Object"
                        ],
                        "isMap": true
                      }
                    },
                    "open": {
                      "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": []
                    },
                    "fields": []
                  },
                  "hasDynamicType": true,
                  "required": false,
                  "isConfigOverride": false,
                  "isComponentId": false,
                  "expressionSupport": "SUPPORTED",
                  "defaultValue": "#[payload]",
                  "role": "PRIMARY_CONTENT",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": false,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 1
                  },
                  "allowedStereotypeModels": [],
                  "name": "writeContent",
                  "description": "",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "Object",
                    "annotations": {
                      "typeId": "org.mule.runtime.extension.api.runtime.config.ConfigurationProvider"
                    },
                    "fields": []
                  },
                  "hasDynamicType": false,
                  "required": true,
                  "isConfigOverride": false,
                  "isComponentId": false,
                  "expressionSupport": "NOT_SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": false,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 3
                  },
                  "allowedStereotypeModels": [
                    {
                      "type": "CONFIG",
                      "namespace": "HL7",
                      "parent": {
                        "type": "MODULE_CONFIG",
                        "namespace": "MULE"
                      }
                    }
                  ],
                  "name": "config-ref",
                  "description": "The name of the configuration to be used to execute this component",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "Union",
                    "annotations": {
                      "typeId": "ByteStreamingStrategy"
                    },
                    "of": [
                      {
                        "type": "Object",
                        "annotations": {
                          "typeId": "repeatable-in-memory-stream"
                        },
                        "fields": [
                          {
                            "key": {
                              "name": "initialBufferSize"
                            },
                            "model": {
                              "type": "Number",
                              "annotations": {
                                "int": {},
                                "default": "512"
                              }
                            },
                            "annotations": {
                              "description": {
                                "value": "This is the amount of memory that will be allocated in order to consume the stream and provide random access to it. If the stream contains more data than can be fit into this buffer, then it will be expanded by according to the bufferSizeIncrement attribute, with an upper limit of maxInMemorySize."
                              }
                            }
                          },
                          {
                            "key": {
                              "name": "bufferSizeIncrement"
                            },
                            "model": {
                              "type": "Number",
                              "annotations": {
                                "int": {},
                                "default": "512"
                              }
                            },
                            "annotations": {
                              "description": {
                                "value": "This is by how much will be buffer size by expanded if it exceeds its initial size. Setting a value of zero or lower will mean that the buffer should not expand, meaning that a STREAM_MAXIMUM_SIZE_EXCEEDED error will be raised when the buffer gets full."
                              }
                            }
                          },
                          {
                            "key": {
                              "name": "maxBufferSize"
                            },
                            "model": {
                              "type": "Number",
                              "annotations": {
                                "int": {},
                                "default": "1024"
                              }
                            },
                            "annotations": {
                              "description": {
                                "value": "This is the maximum amount of memory that will be used. If more than that is used then a STREAM_MAXIMUM_SIZE_EXCEEDED error will be raised. A value lower or equal to zero means no limit."
                              }
                            }
                          },
                          {
                            "key": {
                              "name": "bufferUnit"
                            },
                            "model": {
                              "type": "String",
                              "annotations": {
                                "enum": {
                                  "type": "[Ljava.lang.String;",
                                  "values": [
                                    "BYTE",
                                    "KB",
                                    "MB",
                                    "GB"
                                  ]
                                },
                                "default": "KB"
                              }
                            },
                            "annotations": {
                              "description": {
                                "value": "The unit in which all these attributes are expressed"
                              }
                            }
                          }
                        ]
                      },
                      {
                        "type": "Object",
                        "annotations": {
                          "typeId": "repeatable-file-store-stream"
                        },
                        "fields": [
                          {
                            "key": {
                              "name": "inMemorySize"
                            },
                            "model": {
                              "type": "Number",
                              "annotations": {
                                "int": {},
                                "default": "512"
                              }
                            },
                            "annotations": {
                              "description": {
                                "value": "Defines the maximum memory that the stream should use to keep data in memory. If more than that is consumed then it will start to buffer the content on disk."
                              }
                            }
                          },
                          {
                            "key": {
                              "name": "bufferUnit"
                            },
                            "model": {
                              "type": "String",
                              "annotations": {
                                "enum": {
                                  "type": "[Ljava.lang.String;",
                                  "values": [
                                    "BYTE",
                                    "KB",
                                    "MB",
                                    "GB"
                                  ]
                                },
                                "default": "KB"
                              }
                            },
                            "annotations": {
                              "description": {
                                "value": "The unit in which maxInMemorySize is expressed"
                              }
                            }
                          }
                        ]
                      },
                      {
                        "type": "Object",
                        "annotations": {
                          "typeId": "non-repeatable-stream",
                          "description": {
                            "value": "This configuration allows the input stream to be read only once. It will not allow to seek randomly which will limit the transformations that DW can perform on this stream. Use this option for use cases which just require moving data around from one system to another to get optimum performance."
                          }
                        },
                        "fields": []
                      }
                    ]
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "isConfigOverride": false,
                  "isComponentId": false,
                  "expressionSupport": "NOT_SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": false,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 2,
                    "tabName": "Advanced"
                  },
                  "allowedStereotypeModels": [],
                  "name": "streamingStrategy",
                  "description": "Configure if repeatable streams should be used and their behaviour",
                  "modelProperties": {
                    "org.mule.runtime.extension.api.property.QNameModelProperty": {
                      "value": {
                        "namespaceURI": "http://www.mulesoft.org/schema/mule/core",
                        "localPart": "abstract-byte-streaming-strategy",
                        "prefix": "mule"
                      }
                    },
                    "org.mule.runtime.extension.api.property.InfrastructureParameterModelProperty": {
                      "sequence": 2
                    }
                  }
                }
              ],
              "exclusiveParametersModels": [],
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 1
              },
              "showInDsl": false,
              "name": "General",
              "description": "",
              "modelProperties": {}
            },
            {
              "parameters": [
                {
                  "type": {
                    "format": "java",
                    "type": "String"
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "isConfigOverride": false,
                  "isComponentId": false,
                  "expressionSupport": "NOT_SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": false,
                    "allowsReferences": false,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 4,
                    "tabName": "Advanced"
                  },
                  "allowedStereotypeModels": [],
                  "name": "target",
                  "displayModel": {
                    "displayName": "Target Variable"
                  },
                  "description": "The name of a variable on which the operation\u0027s output will be placed",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "String"
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "isConfigOverride": false,
                  "isComponentId": false,
                  "expressionSupport": "REQUIRED",
                  "defaultValue": "#[payload]",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": false,
                    "allowsReferences": false,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 5,
                    "tabName": "Advanced"
                  },
                  "allowedStereotypeModels": [],
                  "name": "targetValue",
                  "displayModel": {
                    "displayName": "Target Value"
                  },
                  "description": "An expression that will be evaluated against the operation\u0027s output and the outcome of that expression will be stored in the target variable",
                  "modelProperties": {}
                }
              ],
              "exclusiveParametersModels": [],
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 2
              },
              "showInDsl": false,
              "name": "Output",
              "description": "",
              "modelProperties": {}
            },
            {
              "parameters": [
                {
                  "type": {
                    "format": "java",
                    "type": "Union",
                    "annotations": {
                      "typeId": "ReconnectionStrategy"
                    },
                    "of": [
                      {
                        "type": "Object",
                        "annotations": {
                          "typeId": "reconnect"
                        },
                        "fields": [
                          {
                            "key": {
                              "name": "frequency"
                            },
                            "model": {
                              "type": "Number",
                              "annotations": {
                                "int": {},
                                "classInformation": {
                                  "classname": "java.lang.Long",
                                  "hasDefaultConstructor": false,
                                  "isInterface": false,
                                  "isInstantiable": false,
                                  "isAbstract": false,
                                  "isFinal": true,
                                  "implementedInterfaces": [
                                    "java.lang.Comparable"
                                  ],
                                  "parent": "java.lang.Number",
                                  "genericTypes": [],
                                  "isMap": false
                                },
                                "default": "2000"
                              }
                            },
                            "annotations": {
                              "description": {
                                "value": "How often (in ms) to reconnect"
                              }
                            }
                          },
                          {
                            "key": {
                              "name": "blocking"
                            },
                            "model": {
                              "type": "Boolean",
                              "annotations": {
                                "default": "true"
                              }
                            },
                            "annotations": {
                              "description": {
                                "value": "If false, the reconnection strategy will run in a separate, non-blocking thread"
                              }
                            }
                          },
                          {
                            "key": {
                              "name": "count"
                            },
                            "model": {
                              "type": "Number",
                              "annotations": {
                                "int": {},
                                "default": "2"
                              }
                            },
                            "annotations": {
                              "description": {
                                "value": "How many reconnection attempts to make"
                              }
                            }
                          }
                        ]
                      },
                      {
                        "type": "Object",
                        "annotations": {
                          "typeId": "reconnect-forever"
                        },
                        "fields": [
                          {
                            "key": {
                              "name": "frequency"
                            },
                            "model": {
                              "type": "Number",
                              "annotations": {
                                "int": {},
                                "classInformation": {
                                  "classname": "java.lang.Long",
                                  "hasDefaultConstructor": false,
                                  "isInterface": false,
                                  "isInstantiable": false,
                                  "isAbstract": false,
                                  "isFinal": true,
                                  "implementedInterfaces": [
                                    "java.lang.Comparable"
                                  ],
                                  "parent": "java.lang.Number",
                                  "genericTypes": [],
                                  "isMap": false
                                },
                                "default": "2000"
                              }
                            },
                            "annotations": {
                              "description": {
                                "value": "How often (in ms) to reconnect"
                              }
                            }
                          },
                          {
                            "key": {
                              "name": "blocking"
                            },
                            "model": {
                              "type": "Boolean",
                              "annotations": {
                                "default": "true"
                              }
                            },
                            "annotations": {
                              "description": {
                                "value": "If false, the reconnection strategy will run in a separate, non-blocking thread"
                              }
                            }
                          }
                        ]
                      }
                    ]
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "isConfigOverride": false,
                  "isComponentId": false,
                  "expressionSupport": "NOT_SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": false,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 6,
                    "tabName": "Advanced"
                  },
                  "allowedStereotypeModels": [],
                  "name": "reconnectionStrategy",
                  "description": "A retry strategy in case of connectivity errors",
                  "modelProperties": {
                    "org.mule.runtime.extension.api.property.QNameModelProperty": {
                      "value": {
                        "namespaceURI": "http://www.mulesoft.org/schema/mule/core",
                        "localPart": "abstract-reconnection-strategy",
                        "prefix": "mule"
                      }
                    },
                    "org.mule.runtime.extension.api.property.InfrastructureParameterModelProperty": {
                      "sequence": 3
                    }
                  }
                }
              ],
              "exclusiveParametersModels": [],
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 3
              },
              "showInDsl": false,
              "name": "Connection",
              "description": "",
              "modelProperties": {}
            }
          ],
          "name": "write",
          "description": "",
          "modelProperties": {
            "typeResolversInformation": {
              "category": "ConnectorTypeLoader",
              "inputResolvers": {
                "writeContent": {
                  "resolverName": "INPUT",
                  "requiresConnection": true,
                  "requiresConfiguration": true
                }
              }
            }
          },
          "kind": "operation"
        }
      ],
      "connectionProviders": [
        {
          "connectionManagementType": "NONE",
          "externalLibraryModels": [],
          "supportsConnectivityTesting": true,
          "stereotype": {
            "type": "CONNECTION",
            "namespace": "HL7",
            "parent": {
              "type": "CONNECTION",
              "namespace": "MULE"
            }
          },
          "parameterGroupModels": [
            {
              "parameters": [
                {
                  "type": {
                    "format": "java",
                    "type": "Object",
                    "annotations": {
                      "typeId": "Reconnection"
                    },
                    "fields": [
                      {
                        "key": {
                          "name": "failsDeployment"
                        },
                        "model": {
                          "type": "Boolean",
                          "annotations": {
                            "default": "false"
                          }
                        },
                        "annotations": {
                          "description": {
                            "value": "When the application is deployed, a connectivity test is performed on all connectors. If set to true, deployment will fail if the test doesn\u0027t pass after exhausting the associated reconnection strategy"
                          }
                        }
                      },
                      {
                        "key": {
                          "name": "reconnectionStrategy"
                        },
                        "model": {
                          "type": "Union",
                          "annotations": {
                            "typeId": "ReconnectionStrategy"
                          },
                          "of": [
                            {
                              "type": "Object",
                              "annotations": {
                                "typeId": "reconnect"
                              },
                              "fields": [
                                {
                                  "key": {
                                    "name": "frequency"
                                  },
                                  "model": {
                                    "type": "Number",
                                    "annotations": {
                                      "int": {},
                                      "classInformation": {
                                        "classname": "java.lang.Long",
                                        "hasDefaultConstructor": false,
                                        "isInterface": false,
                                        "isInstantiable": false,
                                        "isAbstract": false,
                                        "isFinal": true,
                                        "implementedInterfaces": [
                                          "java.lang.Comparable"
                                        ],
                                        "parent": "java.lang.Number",
                                        "genericTypes": [],
                                        "isMap": false
                                      },
                                      "default": "2000"
                                    }
                                  },
                                  "annotations": {
                                    "description": {
                                      "value": "How often (in ms) to reconnect"
                                    }
                                  }
                                },
                                {
                                  "key": {
                                    "name": "blocking"
                                  },
                                  "model": {
                                    "type": "Boolean",
                                    "annotations": {
                                      "default": "true"
                                    }
                                  },
                                  "annotations": {
                                    "description": {
                                      "value": "If false, the reconnection strategy will run in a separate, non-blocking thread"
                                    }
                                  }
                                },
                                {
                                  "key": {
                                    "name": "count"
                                  },
                                  "model": {
                                    "type": "Number",
                                    "annotations": {
                                      "int": {},
                                      "default": "2"
                                    }
                                  },
                                  "annotations": {
                                    "description": {
                                      "value": "How many reconnection attempts to make"
                                    }
                                  }
                                }
                              ]
                            },
                            {
                              "type": "Object",
                              "annotations": {
                                "typeId": "reconnect-forever"
                              },
                              "fields": [
                                {
                                  "key": {
                                    "name": "frequency"
                                  },
                                  "model": {
                                    "type": "Number",
                                    "annotations": {
                                      "int": {},
                                      "classInformation": {
                                        "classname": "java.lang.Long",
                                        "hasDefaultConstructor": false,
                                        "isInterface": false,
                                        "isInstantiable": false,
                                        "isAbstract": false,
                                        "isFinal": true,
                                        "implementedInterfaces": [
                                          "java.lang.Comparable"
                                        ],
                                        "parent": "java.lang.Number",
                                        "genericTypes": [],
                                        "isMap": false
                                      },
                                      "default": "2000"
                                    }
                                  },
                                  "annotations": {
                                    "description": {
                                      "value": "How often (in ms) to reconnect"
                                    }
                                  }
                                },
                                {
                                  "key": {
                                    "name": "blocking"
                                  },
                                  "model": {
                                    "type": "Boolean",
                                    "annotations": {
                                      "default": "true"
                                    }
                                  },
                                  "annotations": {
                                    "description": {
                                      "value": "If false, the reconnection strategy will run in a separate, non-blocking thread"
                                    }
                                  }
                                }
                              ]
                            }
                          ]
                        },
                        "annotations": {
                          "description": {
                            "value": "The reconnection strategy to use"
                          }
                        }
                      }
                    ]
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "isConfigOverride": false,
                  "isComponentId": false,
                  "expressionSupport": "NOT_SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": false,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 1,
                    "tabName": "Advanced"
                  },
                  "allowedStereotypeModels": [],
                  "name": "reconnection",
                  "description": "When the application is deployed, a connectivity test is performed on all connectors. If set to true, deployment will fail if the test doesn\u0027t pass after exhausting the associated reconnection strategy",
                  "modelProperties": {
                    "org.mule.runtime.extension.api.property.QNameModelProperty": {
                      "value": {
                        "namespaceURI": "http://www.mulesoft.org/schema/mule/core",
                        "localPart": "reconnection",
                        "prefix": "mule"
                      }
                    },
                    "org.mule.runtime.extension.api.property.InfrastructureParameterModelProperty": {
                      "sequence": 3
                    }
                  }
                }
              ],
              "exclusiveParametersModels": [],
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 1
              },
              "showInDsl": false,
              "name": "Connection",
              "description": "",
              "modelProperties": {}
            }
          ],
          "name": "connection",
          "description": "",
          "modelProperties": {}
        }
      ],
      "messageSources": [],
      "name": "config",
      "description": "",
      "modelProperties": {}
    }
  ],
  "operations": [],
  "functions": [],
  "constructs": [],
  "connectionProviders": [],
  "messageSources": [],
  "notifications": [],
  "errors": [
    {
      "error": "HL7:RETRY_EXHAUSTED",
      "parent": "MULE:RETRY_EXHAUSTED",
      "handleable": true
    },
    {
      "error": "MULE:RETRY_EXHAUSTED",
      "parent": "MULE:ANY",
      "handleable": true
    },
    {
      "error": "MULE:ANY",
      "handleable": true
    },
    {
      "error": "HL7:CONNECTIVITY",
      "parent": "MULE:CONNECTIVITY",
      "handleable": true
    },
    {
      "error": "MULE:CONNECTIVITY",
      "parent": "MULE:ANY",
      "handleable": true
    },
    {
      "error": "HL7:UNKNOWN",
      "parent": "MULE:ANY",
      "handleable": true
    },
    {
      "error": "MULE:VALIDATION",
      "parent": "MULE:ANY",
      "handleable": true
    },
    {
      "error": "HL7:PARSE",
      "parent": "MULE:TRANSFORMATION",
      "handleable": true
    },
    {
      "error": "MULE:TRANSFORMATION",
      "parent": "MULE:ANY",
      "handleable": true
    },
    {
      "error": "HL7:SCHEMA",
      "parent": "MULE:VALIDATION",
      "handleable": true
    },
    {
      "error": "HL7:WRITE",
      "parent": "MULE:TRANSFORMATION",
      "handleable": true
    }
  ],
  "modelProperties": {},
  "types": []
}
