{
  "name": "Compression",
  "description": "A module which provides functionality for compressing and decompressing data.",
  "version": "2.2.2",
  "vendor": "Mulesoft",
  "category": "COMMUNITY",
  "xmlDsl": {
    "prefix": "compression",
    "namespace": "http://www.mulesoft.org/schema/mule/compression",
    "schemaLocation": "http://www.mulesoft.org/schema/mule/compression/current/mule-compression.xsd",
    "schemaVersion": "2.2.2",
    "xsdFileName": "mule-compression.xsd"
  },
  "resources": [],
  "subTypes": [
    {
      "baseType": {
        "format": "java",
        "type": "@ref:org.mule.extension.compression.api.strategy.CompressorStrategy"
      },
      "subTypes": [
        {
          "format": "java",
          "type": "@ref:org.mule.extension.compression.api.strategy.gzip.GzipCompressorStrategy"
        },
        {
          "format": "java",
          "type": "@ref:org.mule.extension.compression.api.strategy.zip.ZipCompressorStrategy"
        }
      ]
    },
    {
      "baseType": {
        "format": "java",
        "type": "@ref:org.mule.extension.compression.api.strategy.DecompressorStrategy"
      },
      "subTypes": [
        {
          "format": "java",
          "type": "@ref:org.mule.extension.compression.api.strategy.gzip.GzipDecompressorStrategy"
        },
        {
          "format": "java",
          "type": "@ref:org.mule.extension.compression.api.strategy.zip.ZipDecompressorStrategy"
        }
      ]
    },
    {
      "baseType": {
        "format": "java",
        "type": "@ref:org.mule.extension.compression.api.strategy.ExtractorStrategy"
      },
      "subTypes": [
        {
          "format": "java",
          "type": "@ref:org.mule.extension.compression.api.strategy.zip.ZipExtractorStrategy"
        }
      ]
    },
    {
      "baseType": {
        "format": "java",
        "type": "@ref:org.mule.extension.compression.api.strategy.ArchiverStrategy"
      },
      "subTypes": [
        {
          "format": "java",
          "type": "@ref:org.mule.extension.compression.api.strategy.zip.ZipArchiverStrategy"
        }
      ]
    }
  ],
  "privilegedPackages": [],
  "privilegedArtifacts": [],
  "externalLibraries": [],
  "importedTypes": [],
  "configurations": [
    {
      "stereotype": {
        "type": "CONFIG",
        "namespace": "COMPRESSION",
        "parent": {
          "type": "MODULE_CONFIG",
          "namespace": "MULE"
        }
      },
      "parameterGroupModels": [],
      "externalLibraryModels": [],
      "operations": [],
      "connectionProviders": [],
      "messageSources": [],
      "name": "config",
      "description": "Default configuration",
      "modelProperties": {}
    }
  ],
  "operations": [
    {
      "blocking": true,
      "executionType": "CPU_LITE",
      "output": {
        "type": {
          "format": "java",
          "type": "Binary",
          "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": false,
      "supportsStreaming": true,
      "notifications": [],
      "nestedComponents": [],
      "errors": [
        "COMPRESSION:COULD_NOT_COMPRESS"
      ],
      "stereotype": {
        "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",
                      "org.mule.runtime.api.metadata.TypedValue"
                    ],
                    "isMap": true
                  }
                },
                "open": {
                  "type": "Binary",
                  "annotations": {
                    "classInformation": {
                      "classname": "java.io.InputStream",
                      "hasDefaultConstructor": true,
                      "isInterface": false,
                      "isInstantiable": false,
                      "isAbstract": true,
                      "isFinal": false,
                      "implementedInterfaces": [
                        "java.io.Closeable"
                      ],
                      "parent": "",
                      "genericTypes": [],
                      "isMap": false
                    }
                  }
                },
                "fields": []
              },
              "hasDynamicType": false,
              "required": false,
              "isConfigOverride": 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": "entries",
              "description": "the entries to be added to the archive",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "@ref:org.mule.extension.compression.api.strategy.ArchiverStrategy"
              },
              "hasDynamicType": false,
              "required": true,
              "isConfigOverride": false,
              "expressionSupport": "NOT_SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": false,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 2
              },
              "allowedStereotypeModels": [],
              "name": "archiver",
              "description": "the archiving strategy",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "String"
              },
              "hasDynamicType": false,
              "required": false,
              "isConfigOverride": false,
              "expressionSupport": "SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 3,
                "tabName": "Advanced"
              },
              "allowedStereotypeModels": [],
              "name": "outputMimeType",
              "description": "The mime type of the payload that this operation outputs.",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "String"
              },
              "hasDynamicType": false,
              "required": false,
              "isConfigOverride": false,
              "expressionSupport": "SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 4,
                "tabName": "Advanced"
              },
              "allowedStereotypeModels": [],
              "name": "outputEncoding",
              "description": "The encoding of the payload that this operation outputs.",
              "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,
              "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": "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,
              "expressionSupport": "NOT_SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 6,
                "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,
              "expressionSupport": "REQUIRED",
              "defaultValue": "#[payload]",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 7,
                "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": {}
        }
      ],
      "name": "archive",
      "displayModel": {
        "summary": "Compresses a set of entries into a new file in the specified archive format"
      },
      "description": "Compresses all the given entries into a new file in the configured format. \u003cp\u003e Each entry passed to this operation will be placed inside the compressed archive with the name provided by the user in the DataWeave script. e.g. \u003cp\u003e For this expression: \u003cp\u003e { file: vars.aTxtContent, \u0027dir/resume.pdf\u0027: vars.pdf } \u003cp\u003e The resultant archive will contain 2 entries one named \"file\" at root level and another one called \"resume.pdf\" inside a directory called \"dir\". \u003cp\u003e +- Archive |  \\- file1 |  \\+ dir1 |  \\- file2 \u003cp\u003e As you can see in the example above, the slash \"/\" in the name of an entry indicates directory separation, so all names will be introspected to create dirs inside the archive.",
      "modelProperties": {},
      "kind": "operation"
    },
    {
      "blocking": true,
      "executionType": "CPU_LITE",
      "output": {
        "type": {
          "format": "java",
          "type": "Binary",
          "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": false,
      "supportsStreaming": true,
      "notifications": [],
      "nestedComponents": [],
      "errors": [
        "COMPRESSION:COULD_NOT_COMPRESS"
      ],
      "stereotype": {
        "type": "PROCESSOR",
        "namespace": "MULE"
      },
      "parameterGroupModels": [
        {
          "parameters": [
            {
              "type": {
                "format": "java",
                "type": "Binary",
                "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,
              "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": "content",
              "description": "the content to be compressed",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "@ref:org.mule.extension.compression.api.strategy.CompressorStrategy"
              },
              "hasDynamicType": false,
              "required": true,
              "isConfigOverride": false,
              "expressionSupport": "NOT_SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": false,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 2
              },
              "allowedStereotypeModels": [],
              "name": "compressor",
              "description": "the compression strategy",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "String"
              },
              "hasDynamicType": false,
              "required": false,
              "isConfigOverride": false,
              "expressionSupport": "SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 3,
                "tabName": "Advanced"
              },
              "allowedStereotypeModels": [],
              "name": "outputMimeType",
              "description": "The mime type of the payload that this operation outputs.",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "String"
              },
              "hasDynamicType": false,
              "required": false,
              "isConfigOverride": false,
              "expressionSupport": "SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 4,
                "tabName": "Advanced"
              },
              "allowedStereotypeModels": [],
              "name": "outputEncoding",
              "description": "The encoding of the payload that this operation outputs.",
              "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,
              "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": "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,
              "expressionSupport": "NOT_SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 6,
                "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,
              "expressionSupport": "REQUIRED",
              "defaultValue": "#[payload]",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 7,
                "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": {}
        }
      ],
      "name": "compress",
      "displayModel": {
        "summary": "Compresses a given content using an specific format"
      },
      "description": "Compresses a given content using the configured format, ZIP or GZIP. \u003cp\u003e If a problem occur while compressing the content a COULD_NOT_COMPRESS error will be thrown.",
      "modelProperties": {},
      "kind": "operation"
    },
    {
      "blocking": true,
      "executionType": "CPU_LITE",
      "output": {
        "type": {
          "format": "java",
          "type": "Binary",
          "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": false,
      "supportsStreaming": true,
      "notifications": [],
      "nestedComponents": [],
      "errors": [
        "COMPRESSION:COULD_NOT_DECOMPRESS",
        "COMPRESSION:INVALID_ARCHIVE",
        "COMPRESSION:TOO_MANY_ENTRIES"
      ],
      "stereotype": {
        "type": "PROCESSOR",
        "namespace": "MULE"
      },
      "parameterGroupModels": [
        {
          "parameters": [
            {
              "type": {
                "format": "java",
                "type": "Binary",
                "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,
              "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": "compressed",
              "description": "the content to be decompressed",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "@ref:org.mule.extension.compression.api.strategy.DecompressorStrategy"
              },
              "hasDynamicType": false,
              "required": true,
              "isConfigOverride": false,
              "expressionSupport": "NOT_SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": false,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 2
              },
              "allowedStereotypeModels": [],
              "name": "decompressor",
              "description": "the decompression strategy",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "String"
              },
              "hasDynamicType": false,
              "required": false,
              "isConfigOverride": false,
              "expressionSupport": "SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 3,
                "tabName": "Advanced"
              },
              "allowedStereotypeModels": [],
              "name": "outputMimeType",
              "description": "The mime type of the payload that this operation outputs.",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "String"
              },
              "hasDynamicType": false,
              "required": false,
              "isConfigOverride": false,
              "expressionSupport": "SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 4,
                "tabName": "Advanced"
              },
              "allowedStereotypeModels": [],
              "name": "outputEncoding",
              "description": "The encoding of the payload that this operation outputs.",
              "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,
              "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": "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,
              "expressionSupport": "NOT_SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 6,
                "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,
              "expressionSupport": "REQUIRED",
              "defaultValue": "#[payload]",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 7,
                "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": {}
        }
      ],
      "name": "decompress",
      "displayModel": {
        "summary": "Decompresses a single entry compressed content"
      },
      "description": "Decompresses a given single entry compressed content which is assumed to be in an specific format (ZIP or GZIP). \u003cp\u003e If the given content is not in the configured format an INVALID_ARCHIVE error will be thrown. \u003cp\u003e Compressed archives can have multiple entries, this operation can handle only single entry archives because if the archive would contain more than one the operation wouldn\u0027t know which should return, if the content has more than one entry an TOO_MANY_ENTRIES error will be thrown. For multiple entry archives use the `extract` operation of this module, which will let you choose only formats that accept multiple entries.",
      "modelProperties": {},
      "kind": "operation"
    },
    {
      "blocking": true,
      "executionType": "CPU_LITE",
      "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.io.InputStream"
              ],
              "isMap": true
            }
          },
          "open": {
            "type": "Binary",
            "annotations": {
              "classInformation": {
                "classname": "java.io.InputStream",
                "hasDefaultConstructor": true,
                "isInterface": false,
                "isInstantiable": false,
                "isAbstract": true,
                "isFinal": false,
                "implementedInterfaces": [
                  "java.io.Closeable"
                ],
                "parent": "",
                "genericTypes": [],
                "isMap": false
              }
            }
          },
          "fields": []
        },
        "hasDynamicType": false,
        "description": "",
        "modelProperties": {}
      },
      "outputAttributes": {
        "type": {
          "format": "java",
          "type": "Void"
        },
        "hasDynamicType": false,
        "description": "",
        "modelProperties": {}
      },
      "transactional": false,
      "requiresConnection": false,
      "supportsStreaming": true,
      "notifications": [],
      "nestedComponents": [],
      "errors": [
        "COMPRESSION:COULD_NOT_DECOMPRESS",
        "COMPRESSION:INVALID_ARCHIVE"
      ],
      "stereotype": {
        "type": "PROCESSOR",
        "namespace": "MULE"
      },
      "parameterGroupModels": [
        {
          "parameters": [
            {
              "type": {
                "format": "java",
                "type": "Binary",
                "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,
              "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": "compressed",
              "description": "the content of a compressed archive",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "@ref:org.mule.extension.compression.api.strategy.ExtractorStrategy"
              },
              "hasDynamicType": false,
              "required": true,
              "isConfigOverride": false,
              "expressionSupport": "NOT_SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": false,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 2
              },
              "allowedStereotypeModels": [],
              "name": "extractor",
              "description": "the extractor strategy",
              "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,
              "expressionSupport": "NOT_SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": false,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 3,
                "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,
              "expressionSupport": "NOT_SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "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,
              "expressionSupport": "REQUIRED",
              "defaultValue": "#[payload]",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "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": {}
        }
      ],
      "name": "extract",
      "displayModel": {
        "summary": "Decompresses a compressed content in the configured returning a list with all the entries inside it uncompressed"
      },
      "description": "Decompresses a given content that represent an archive in a compression format.",
      "modelProperties": {},
      "kind": "operation"
    }
  ],
  "functions": [],
  "constructs": [],
  "connectionProviders": [],
  "messageSources": [],
  "notifications": [],
  "errors": [
    {
      "error": "COMPRESSION:CONNECTIVITY",
      "parent": "MULE:CONNECTIVITY",
      "handleable": true
    },
    {
      "error": "MULE:CONNECTIVITY",
      "parent": "MULE:ANY",
      "handleable": true
    },
    {
      "error": "MULE:ANY",
      "handleable": true
    },
    {
      "error": "MULE:RETRY_EXHAUSTED",
      "parent": "MULE:ANY",
      "handleable": true
    },
    {
      "error": "COMPRESSION:RETRY_EXHAUSTED",
      "parent": "MULE:RETRY_EXHAUSTED",
      "handleable": true
    },
    {
      "error": "COMPRESSION:COULD_NOT_DECOMPRESS",
      "parent": "MULE:ANY",
      "handleable": true
    },
    {
      "error": "COMPRESSION:INVALID_ARCHIVE",
      "parent": "MULE:ANY",
      "handleable": true
    },
    {
      "error": "COMPRESSION:COULD_NOT_COMPRESS",
      "parent": "MULE:ANY",
      "handleable": true
    },
    {
      "error": "COMPRESSION:TOO_MANY_ENTRIES",
      "parent": "MULE:ANY",
      "handleable": true
    }
  ],
  "modelProperties": {},
  "types": [
    {
      "format": "java",
      "type": "Object",
      "annotations": {
        "typeId": "org.mule.extension.compression.api.strategy.ArchiverStrategy",
        "classInformation": {
          "classname": "org.mule.extension.compression.api.strategy.ArchiverStrategy",
          "hasDefaultConstructor": false,
          "isInterface": true,
          "isInstantiable": false,
          "isAbstract": true,
          "isFinal": false,
          "implementedInterfaces": [],
          "parent": "",
          "genericTypes": [],
          "isMap": false
        },
        "typeAlias": {
          "value": "ArchiverStrategy"
        }
      },
      "fields": []
    },
    {
      "format": "java",
      "type": "Object",
      "annotations": {
        "typeId": "org.mule.extension.compression.api.strategy.CompressorStrategy",
        "classInformation": {
          "classname": "org.mule.extension.compression.api.strategy.CompressorStrategy",
          "hasDefaultConstructor": false,
          "isInterface": true,
          "isInstantiable": false,
          "isAbstract": true,
          "isFinal": false,
          "implementedInterfaces": [],
          "parent": "",
          "genericTypes": [],
          "isMap": false
        },
        "typeAlias": {
          "value": "CompressorStrategy"
        }
      },
      "fields": []
    },
    {
      "format": "java",
      "type": "Object",
      "annotations": {
        "typeId": "org.mule.extension.compression.api.strategy.DecompressorStrategy",
        "classInformation": {
          "classname": "org.mule.extension.compression.api.strategy.DecompressorStrategy",
          "hasDefaultConstructor": false,
          "isInterface": true,
          "isInstantiable": false,
          "isAbstract": true,
          "isFinal": false,
          "implementedInterfaces": [],
          "parent": "",
          "genericTypes": [],
          "isMap": false
        },
        "typeAlias": {
          "value": "DecompressorStrategy"
        }
      },
      "fields": []
    },
    {
      "format": "java",
      "type": "Object",
      "annotations": {
        "typeId": "org.mule.extension.compression.api.strategy.ExtractorStrategy",
        "classInformation": {
          "classname": "org.mule.extension.compression.api.strategy.ExtractorStrategy",
          "hasDefaultConstructor": false,
          "isInterface": true,
          "isInstantiable": false,
          "isAbstract": true,
          "isFinal": false,
          "implementedInterfaces": [],
          "parent": "",
          "genericTypes": [],
          "isMap": false
        },
        "typeAlias": {
          "value": "ExtractorStrategy"
        }
      },
      "fields": []
    },
    {
      "format": "java",
      "type": "Object",
      "annotations": {
        "typeId": "org.mule.extension.compression.api.strategy.gzip.GzipCompressorStrategy",
        "classInformation": {
          "classname": "org.mule.extension.compression.api.strategy.gzip.GzipCompressorStrategy",
          "hasDefaultConstructor": true,
          "isInterface": false,
          "isInstantiable": true,
          "isAbstract": false,
          "isFinal": false,
          "implementedInterfaces": [
            "org.mule.extension.compression.api.strategy.CompressorStrategy"
          ],
          "parent": "",
          "genericTypes": [],
          "isMap": false
        },
        "typeAlias": {
          "value": "gzip-compressor"
        }
      },
      "fields": []
    },
    {
      "format": "java",
      "type": "Object",
      "annotations": {
        "typeId": "org.mule.extension.compression.api.strategy.gzip.GzipDecompressorStrategy",
        "classInformation": {
          "classname": "org.mule.extension.compression.api.strategy.gzip.GzipDecompressorStrategy",
          "hasDefaultConstructor": true,
          "isInterface": false,
          "isInstantiable": true,
          "isAbstract": false,
          "isFinal": false,
          "implementedInterfaces": [
            "org.mule.extension.compression.api.strategy.DecompressorStrategy"
          ],
          "parent": "",
          "genericTypes": [],
          "isMap": false
        },
        "typeAlias": {
          "value": "gzip-decompressor"
        }
      },
      "fields": []
    },
    {
      "format": "java",
      "type": "Object",
      "annotations": {
        "typeId": "org.mule.extension.compression.api.strategy.zip.ZipArchiverStrategy",
        "classInformation": {
          "classname": "org.mule.extension.compression.api.strategy.zip.ZipArchiverStrategy",
          "hasDefaultConstructor": true,
          "isInterface": false,
          "isInstantiable": true,
          "isAbstract": false,
          "isFinal": false,
          "implementedInterfaces": [
            "org.mule.extension.compression.api.strategy.ArchiverStrategy"
          ],
          "parent": "",
          "genericTypes": [],
          "isMap": false
        },
        "typeAlias": {
          "value": "zip-archiver"
        }
      },
      "fields": [
        {
          "key": {
            "name": "forceZip64"
          },
          "model": {
            "type": "Boolean",
            "annotations": {
              "typeId": "boolean"
            }
          },
          "annotations": {
            "default": "false",
            "expressionSupport": {
              "value": "NOT_SUPPORTED"
            },
            "display": {
              "displayModel": {
                "displayName": "Force ZIP64"
              }
            }
          }
        }
      ]
    },
    {
      "format": "java",
      "type": "Object",
      "annotations": {
        "typeId": "org.mule.extension.compression.api.strategy.zip.ZipCompressorStrategy",
        "classInformation": {
          "classname": "org.mule.extension.compression.api.strategy.zip.ZipCompressorStrategy",
          "hasDefaultConstructor": true,
          "isInterface": false,
          "isInstantiable": true,
          "isAbstract": false,
          "isFinal": false,
          "implementedInterfaces": [
            "org.mule.extension.compression.api.strategy.CompressorStrategy"
          ],
          "parent": "",
          "genericTypes": [],
          "isMap": false
        },
        "typeAlias": {
          "value": "zip-compressor"
        }
      },
      "fields": [
        {
          "key": {
            "name": "forceZip64"
          },
          "model": {
            "type": "Boolean",
            "annotations": {
              "typeId": "boolean"
            }
          },
          "annotations": {
            "default": "false",
            "expressionSupport": {
              "value": "NOT_SUPPORTED"
            },
            "display": {
              "displayModel": {
                "displayName": "Force ZIP64"
              }
            }
          }
        }
      ]
    },
    {
      "format": "java",
      "type": "Object",
      "annotations": {
        "typeId": "org.mule.extension.compression.api.strategy.zip.ZipDecompressorStrategy",
        "classInformation": {
          "classname": "org.mule.extension.compression.api.strategy.zip.ZipDecompressorStrategy",
          "hasDefaultConstructor": true,
          "isInterface": false,
          "isInstantiable": true,
          "isAbstract": false,
          "isFinal": false,
          "implementedInterfaces": [
            "org.mule.extension.compression.api.strategy.DecompressorStrategy"
          ],
          "parent": "",
          "genericTypes": [],
          "isMap": false
        },
        "typeAlias": {
          "value": "zip-decompressor"
        }
      },
      "fields": []
    },
    {
      "format": "java",
      "type": "Object",
      "annotations": {
        "typeId": "org.mule.extension.compression.api.strategy.zip.ZipExtractorStrategy",
        "classInformation": {
          "classname": "org.mule.extension.compression.api.strategy.zip.ZipExtractorStrategy",
          "hasDefaultConstructor": true,
          "isInterface": false,
          "isInstantiable": true,
          "isAbstract": false,
          "isFinal": false,
          "implementedInterfaces": [
            "org.mule.extension.compression.api.strategy.ExtractorStrategy"
          ],
          "parent": "",
          "genericTypes": [],
          "isMap": false
        },
        "typeAlias": {
          "value": "zip-extractor"
        }
      },
      "fields": []
    }
  ]
}
