{
  "name": "simple",
  "description": "",
  "version": "1.8.4",
  "vendor": "Mulesoft",
  "supportedJavaVersions": [
    "1.8",
    "11"
  ],
  "category": "COMMUNITY",
  "xmlDsl": {
    "prefix": "simple",
    "namespace": "http://www.mulesoft.org/schema/mule/simple",
    "schemaLocation": "http://www.mulesoft.org/schema/mule/simple/current/mule-simple.xsd",
    "schemaVersion": "1.8.4",
    "xsdFileName": "mule-simple.xsd"
  },
  "resources": [],
  "subTypes": [
    {
      "baseType": {
        "format": "java",
        "type": "Object",
        "annotations": {
          "typeId": "org.mule.runtime.extension.api.soap.MessageDispatcherProvider",
          "classInformation": {
            "classname": "org.mule.runtime.extension.api.soap.MessageDispatcherProvider",
            "hasDefaultConstructor": false,
            "isInterface": true,
            "isInstantiable": false,
            "isAbstract": true,
            "isFinal": false,
            "implementedInterfaces": [
              "org.mule.runtime.api.connection.ConnectionProvider"
            ],
            "parent": "",
            "genericTypes": [],
            "isMap": false
          },
          "typeAlias": {
            "value": "MessageDispatcherProvider"
          }
        },
        "fields": []
      },
      "subTypes": [
        {
          "format": "java",
          "type": "@ref:extension.org.mule.soap.it.TestHttpDispatcherProvider"
        },
        {
          "format": "java",
          "type": "@ref:extension.org.mule.soap.it.TestExtensionsClientHttpDispatcherProvider"
        }
      ]
    }
  ],
  "privilegedPackages": [],
  "privilegedArtifacts": [],
  "externalLibraries": [],
  "importedTypes": [
    {
      "format": "java",
      "type": "Object",
      "annotations": {
        "typeId": "org.mule.runtime.api.tls.TlsContextFactory",
        "classInformation": {
          "classname": "org.mule.runtime.api.tls.TlsContextFactory",
          "hasDefaultConstructor": false,
          "isInterface": true,
          "isInstantiable": false,
          "isAbstract": true,
          "isFinal": false,
          "implementedInterfaces": [],
          "parent": "",
          "genericTypes": [],
          "isMap": false
        },
        "typeAlias": {
          "value": "Tls"
        },
        "infrastructureType": {},
        "typeDsl": {
          "allowInlineDefinition": true,
          "allowTopLevelDefinition": true
        },
        "QName": {
          "value": {
            "namespaceURI": "http://www.mulesoft.org/schema/mule/tls",
            "localPart": "context",
            "prefix": "tls"
          }
        },
        "stereotype": {
          "allowedStereotypes": [
            {
              "type": "CONTEXT",
              "namespace": "TLS"
            }
          ]
        }
      },
      "fields": [
        {
          "key": {
            "name": "enabledProtocols"
          },
          "model": {
            "type": "String"
          },
          "annotations": {
            "description": {
              "value": "A comma separated list of protocols enabled for this context."
            }
          }
        },
        {
          "key": {
            "name": "enabledCipherSuites"
          },
          "model": {
            "type": "String"
          },
          "annotations": {
            "description": {
              "value": "A comma separated list of cipher suites enabled for this context."
            }
          }
        },
        {
          "key": {
            "name": "trust-store"
          },
          "model": {
            "type": "Object",
            "annotations": {
              "typeId": "TrustStore",
              "infrastructureType": {},
              "QName": {
                "value": {
                  "namespaceURI": "http://www.mulesoft.org/schema/mule/tls",
                  "localPart": "trust-store",
                  "prefix": "tls"
                }
              },
              "description": {
                "value": "Trust store configuration. If used client side, the trust store contains the certificates of the trusted servers. If used server side, it contains the certificates of the trusted clients."
              }
            },
            "fields": [
              {
                "key": {
                  "name": "path"
                },
                "model": {
                  "type": "String"
                },
                "annotations": {
                  "description": {
                    "value": "The location (which will be resolved relative to the current classpath and file system, if possible) of the trust store."
                  },
                  "display": {
                    "displayModel": {
                      "pathModel": {
                        "type": "FILE",
                        "fileExtensions": [],
                        "acceptsUrls": false,
                        "location": "EMBEDDED"
                      }
                    }
                  }
                }
              },
              {
                "key": {
                  "name": "password"
                },
                "model": {
                  "type": "String"
                },
                "annotations": {
                  "description": {
                    "value": "The password used to protect the trust store."
                  },
                  "layout": {
                    "layoutModel": {
                      "password": true,
                      "text": false,
                      "query": false
                    }
                  }
                }
              },
              {
                "key": {
                  "name": "type"
                },
                "model": {
                  "type": "String",
                  "annotations": {
                    "display": {
                      "displayModel": {
                        "example": "jks, jceks, pkcs12 or other store type"
                      }
                    }
                  }
                },
                "annotations": {
                  "description": {
                    "value": "The type of store used."
                  }
                }
              },
              {
                "key": {
                  "name": "algorithm"
                },
                "model": {
                  "type": "String"
                },
                "annotations": {
                  "description": {
                    "value": "The algorithm used by the trust store."
                  }
                }
              },
              {
                "key": {
                  "name": "insecure"
                },
                "model": {
                  "type": "Boolean",
                  "annotations": {
                    "default": "false"
                  }
                },
                "annotations": {
                  "description": {
                    "value": "If true, no certificate validations will be performed, rendering connections vulnerable to attacks. Use at your own risk."
                  }
                }
              }
            ]
          },
          "annotations": {
            "parameterDsl": {
              "allowInlineDefinition": true,
              "allowReferences": false
            },
            "expressionSupport": {
              "value": "NOT_SUPPORTED"
            },
            "layout": {
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 0
              }
            }
          }
        },
        {
          "key": {
            "name": "key-store"
          },
          "model": {
            "type": "Object",
            "annotations": {
              "typeId": "KeyStore",
              "infrastructureType": {},
              "QName": {
                "value": {
                  "namespaceURI": "http://www.mulesoft.org/schema/mule/tls",
                  "localPart": "key-store",
                  "prefix": "tls"
                }
              },
              "description": {
                "value": "Key store configuration. The key store contains the keys of this server/client."
              }
            },
            "fields": [
              {
                "key": {
                  "name": "path"
                },
                "model": {
                  "type": "String"
                },
                "annotations": {
                  "description": {
                    "value": "The location (which will be resolved relative to the current classpath and file system, if possible) of the key store."
                  },
                  "display": {
                    "displayModel": {
                      "pathModel": {
                        "type": "FILE",
                        "fileExtensions": [],
                        "acceptsUrls": false,
                        "location": "EMBEDDED"
                      }
                    }
                  }
                }
              },
              {
                "key": {
                  "name": "type"
                },
                "model": {
                  "type": "String",
                  "annotations": {
                    "display": {
                      "displayModel": {
                        "example": "jks, jceks, pkcs12 or other store type"
                      }
                    }
                  }
                },
                "annotations": {
                  "description": {
                    "value": "The type of store used."
                  }
                }
              },
              {
                "key": {
                  "name": "alias"
                },
                "model": {
                  "type": "String"
                },
                "annotations": {
                  "description": {
                    "value": "When the key store contains many private keys, this attribute indicates the alias of the key that should be used. If not defined, the first key in the file will be used by default."
                  }
                }
              },
              {
                "key": {
                  "name": "keyPassword"
                },
                "model": {
                  "type": "String"
                },
                "annotations": {
                  "description": {
                    "value": "The password used to protect the private key."
                  },
                  "layout": {
                    "layoutModel": {
                      "password": true,
                      "text": false,
                      "query": false
                    }
                  }
                }
              },
              {
                "key": {
                  "name": "password"
                },
                "model": {
                  "type": "String"
                },
                "annotations": {
                  "description": {
                    "value": "The password used to protect the key store."
                  },
                  "layout": {
                    "layoutModel": {
                      "password": true,
                      "text": false,
                      "query": false
                    }
                  }
                }
              },
              {
                "key": {
                  "name": "algorithm"
                },
                "model": {
                  "type": "String"
                },
                "annotations": {
                  "description": {
                    "value": "The algorithm used by the key store."
                  }
                }
              }
            ]
          },
          "annotations": {
            "parameterDsl": {
              "allowInlineDefinition": true,
              "allowReferences": false
            },
            "expressionSupport": {
              "value": "NOT_SUPPORTED"
            },
            "layout": {
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 1
              }
            }
          }
        },
        {
          "key": {
            "name": "revocation-check"
          },
          "model": {
            "type": "Union",
            "annotations": {
              "typeId": "RevocationCheck",
              "infrastructureType": {},
              "extensibleType": {}
            },
            "of": [
              {
                "type": "Object",
                "annotations": {
                  "typeId": "standard-revocation-check",
                  "infrastructureType": {},
                  "QName": {
                    "value": {
                      "namespaceURI": "http://www.mulesoft.org/schema/mule/tls",
                      "localPart": "standard-revocation-check",
                      "prefix": "tls"
                    }
                  },
                  "description": {
                    "value": "Uses the standard JVM certificate revocation checks, which depend on the certificate having the corresponding extension points (additional tags for CRLDP or OCSP), and the availability of revocation servers."
                  }
                },
                "fields": [
                  {
                    "key": {
                      "name": "onlyEndEntities"
                    },
                    "model": {
                      "type": "Boolean",
                      "annotations": {
                        "default": "false"
                      }
                    },
                    "annotations": {
                      "description": {
                        "value": "Only verify the last element of the certificate chain."
                      }
                    }
                  },
                  {
                    "key": {
                      "name": "preferCrls"
                    },
                    "model": {
                      "type": "Boolean",
                      "annotations": {
                        "default": "false"
                      }
                    },
                    "annotations": {
                      "description": {
                        "value": "Try CRL instead of OCSP first."
                      }
                    }
                  },
                  {
                    "key": {
                      "name": "noFallback"
                    },
                    "model": {
                      "type": "Boolean",
                      "annotations": {
                        "default": "false"
                      }
                    },
                    "annotations": {
                      "description": {
                        "value": "Do not use the secondary checking method (the one not selected before)."
                      }
                    }
                  },
                  {
                    "key": {
                      "name": "softFail"
                    },
                    "model": {
                      "type": "Boolean",
                      "annotations": {
                        "default": "false"
                      }
                    },
                    "annotations": {
                      "description": {
                        "value": "Avoid verification failure when the revocation server can not be reached or is busy."
                      }
                    }
                  }
                ]
              },
              {
                "type": "Object",
                "annotations": {
                  "typeId": "custom-ocsp-responder",
                  "infrastructureType": {},
                  "QName": {
                    "value": {
                      "namespaceURI": "http://www.mulesoft.org/schema/mule/tls",
                      "localPart": "custom-ocsp-responder",
                      "prefix": "tls"
                    }
                  },
                  "description": {
                    "value": "Uses a custom OCSP responder for certificate revocation checks, with a specific trusted certificate for revocating other keys. This ignores extension points (additional tags for CRLDP or OCSP) present in the certificate, if any."
                  }
                },
                "fields": [
                  {
                    "key": {
                      "name": "url"
                    },
                    "model": {
                      "type": "String"
                    },
                    "annotations": {
                      "description": {
                        "value": "The URL of the OCSP responder."
                      }
                    }
                  },
                  {
                    "key": {
                      "name": "certAlias"
                    },
                    "model": {
                      "type": "String"
                    },
                    "annotations": {
                      "description": {
                        "value": "Alias of the signing certificate for the OCSP response (must be in the trust store), if present."
                      }
                    }
                  }
                ]
              },
              {
                "type": "Object",
                "annotations": {
                  "typeId": "crl-file",
                  "infrastructureType": {},
                  "QName": {
                    "value": {
                      "namespaceURI": "http://www.mulesoft.org/schema/mule/tls",
                      "localPart": "crl-file",
                      "prefix": "tls"
                    }
                  },
                  "description": {
                    "value": "Local file based certificate revocation checker, which requires a CRL file to be accessible and ignores extension points (additional tags for CRLDP and OCSP) in the certificate."
                  }
                },
                "fields": [
                  {
                    "key": {
                      "name": "path"
                    },
                    "model": {
                      "type": "String"
                    },
                    "annotations": {
                      "description": {
                        "value": "The path to the CRL file."
                      }
                    }
                  }
                ]
              }
            ]
          },
          "annotations": {
            "parameterDsl": {
              "allowInlineDefinition": true,
              "allowReferences": false
            },
            "expressionSupport": {
              "value": "NOT_SUPPORTED"
            },
            "layout": {
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 2
              }
            }
          }
        }
      ]
    }
  ],
  "configurations": [
    {
      "stereotype": {
        "type": "CONFIG",
        "namespace": "SIMPLE",
        "parent": {
          "type": "MODULE_CONFIG",
          "namespace": "MULE"
        }
      },
      "parameterGroupModels": [
        {
          "parameters": [
            {
              "type": {
                "format": "java",
                "type": "String"
              },
              "hasDynamicType": false,
              "required": true,
              "isConfigOverride": false,
              "isComponentId": true,
              "fieldValueProviderModels": [],
              "expressionSupport": "NOT_SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": false,
                "allowsReferences": false,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 2
              },
              "allowedStereotypeModels": [],
              "semanticTerms": [],
              "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",
                  "classInformation": {
                    "classname": "org.mule.runtime.extension.api.runtime.ExpirationPolicy",
                    "hasDefaultConstructor": false,
                    "isInterface": true,
                    "isInstantiable": false,
                    "isAbstract": true,
                    "isFinal": false,
                    "implementedInterfaces": [],
                    "parent": "",
                    "genericTypes": [],
                    "isMap": false
                  },
                  "infrastructureType": {},
                  "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": [],
                          "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,
              "fieldValueProviderModels": [],
              "expressionSupport": "NOT_SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": false,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 1,
                "tabName": "Advanced"
              },
              "allowedStereotypeModels": [],
              "semanticTerms": [],
              "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": 1
          },
          "showInDsl": false,
          "name": "General",
          "description": "",
          "modelProperties": {}
        }
      ],
      "externalLibraryModels": [],
      "operations": [
        {
          "blocking": true,
          "executionType": "BLOCKING",
          "output": {
            "type": {
              "format": "java",
              "type": "Object",
              "annotations": {
                "typeId": "org.mule.runtime.extension.api.soap.SoapOutputPayload",
                "classInformation": {
                  "classname": "org.mule.runtime.extension.api.soap.SoapOutputPayload",
                  "hasDefaultConstructor": false,
                  "isInterface": false,
                  "isInstantiable": false,
                  "isAbstract": false,
                  "isFinal": false,
                  "implementedInterfaces": [],
                  "parent": "",
                  "genericTypes": [],
                  "isMap": false
                },
                "typeAlias": {
                  "value": "SoapOutputPayload"
                }
              },
              "fields": [
                {
                  "key": {
                    "name": "attachments"
                  },
                  "model": {
                    "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": [],
                          "parent": "",
                          "genericTypes": [],
                          "isMap": false
                        }
                      }
                    },
                    "fields": []
                  },
                  "annotations": {
                    "visibility": "READ_ONLY"
                  }
                },
                {
                  "key": {
                    "name": "body"
                  },
                  "model": {
                    "type": "Binary",
                    "annotations": {
                      "classInformation": {
                        "classname": "java.io.InputStream",
                        "hasDefaultConstructor": true,
                        "isInterface": false,
                        "isInstantiable": false,
                        "isAbstract": true,
                        "isFinal": false,
                        "implementedInterfaces": [],
                        "parent": "",
                        "genericTypes": [],
                        "isMap": false
                      }
                    }
                  },
                  "annotations": {
                    "visibility": "READ_ONLY"
                  }
                },
                {
                  "key": {
                    "name": "headers"
                  },
                  "model": {
                    "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": "String"
                    },
                    "fields": []
                  },
                  "annotations": {
                    "visibility": "READ_ONLY"
                  }
                }
              ]
            },
            "hasDynamicType": true,
            "description": "",
            "modelProperties": {}
          },
          "outputAttributes": {
            "type": {
              "format": "java",
              "type": "Object",
              "annotations": {
                "typeId": "org.mule.runtime.extension.api.soap.SoapAttributes",
                "classInformation": {
                  "classname": "org.mule.runtime.extension.api.soap.SoapAttributes",
                  "hasDefaultConstructor": false,
                  "isInterface": false,
                  "isInstantiable": false,
                  "isAbstract": false,
                  "isFinal": true,
                  "implementedInterfaces": [],
                  "parent": "",
                  "genericTypes": [],
                  "isMap": false
                },
                "typeAlias": {
                  "value": "SoapAttributes"
                }
              },
              "fields": [
                {
                  "key": {
                    "name": "protocolHeaders"
                  },
                  "model": {
                    "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.String"
                        ],
                        "isMap": true
                      }
                    },
                    "open": {
                      "type": "String"
                    },
                    "fields": []
                  },
                  "annotations": {
                    "visibility": "READ_ONLY"
                  }
                }
              ]
            },
            "hasDynamicType": false,
            "description": "",
            "modelProperties": {}
          },
          "transactional": false,
          "requiresConnection": true,
          "supportsStreaming": false,
          "notifications": [],
          "nestedComponents": [],
          "errors": [
            "MULE:ANY",
            "MULE:CONNECTIVITY",
            "MULE:RETRY_EXHAUSTED",
            "SIMPLE:BAD_REQUEST",
            "SIMPLE:BAD_RESPONSE",
            "SIMPLE:CANNOT_DISPATCH",
            "SIMPLE:CONNECTIVITY",
            "SIMPLE:ENCODING",
            "SIMPLE:INVALID_WSDL",
            "SIMPLE:RETRY_EXHAUSTED",
            "SIMPLE:SOAP_FAULT",
            "SIMPLE:TIMEOUT"
          ],
          "semanticTerms": [],
          "visibility": "PUBLIC",
          "stereotype": {
            "type": "INVOKE",
            "namespace": "SIMPLE",
            "parent": {
              "type": "PROCESSOR",
              "namespace": "SIMPLE",
              "parent": {
                "type": "PROCESSOR",
                "namespace": "MULE"
              }
            }
          },
          "parameterGroupModels": [
            {
              "parameters": [
                {
                  "type": {
                    "format": "java",
                    "type": "Object",
                    "annotations": {
                      "typeId": "org.mule.runtime.extension.api.runtime.config.ConfigurationProvider",
                      "classInformation": {
                        "classname": "org.mule.runtime.extension.api.runtime.config.ConfigurationProvider",
                        "hasDefaultConstructor": false,
                        "isInterface": true,
                        "isInstantiable": false,
                        "isAbstract": true,
                        "isFinal": false,
                        "implementedInterfaces": [],
                        "parent": "",
                        "genericTypes": [],
                        "isMap": false
                      }
                    },
                    "fields": []
                  },
                  "hasDynamicType": false,
                  "required": true,
                  "isConfigOverride": false,
                  "isComponentId": false,
                  "fieldValueProviderModels": [],
                  "expressionSupport": "NOT_SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": false,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 10
                  },
                  "allowedStereotypeModels": [
                    {
                      "type": "CONFIG",
                      "namespace": "SIMPLE",
                      "parent": {
                        "type": "MODULE_CONFIG",
                        "namespace": "MULE"
                      }
                    }
                  ],
                  "semanticTerms": [],
                  "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": 0
              },
              "showInDsl": false,
              "name": "General",
              "description": "",
              "modelProperties": {}
            },
            {
              "parameters": [
                {
                  "type": {
                    "format": "java",
                    "type": "String"
                  },
                  "hasDynamicType": false,
                  "required": true,
                  "isConfigOverride": false,
                  "isComponentId": false,
                  "fieldValueProviderModels": [],
                  "expressionSupport": "SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": false,
                    "allowsReferences": false,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 1
                  },
                  "allowedStereotypeModels": [],
                  "semanticTerms": [],
                  "name": "service",
                  "description": "",
                  "modelProperties": {
                    "org.mule.runtime.extension.api.property.MetadataKeyPartModelProperty": {
                      "order": 1,
                      "providedByKeyResolver": true,
                      "expressionSupport": "NOT_SUPPORTED"
                    }
                  }
                },
                {
                  "type": {
                    "format": "java",
                    "type": "String"
                  },
                  "hasDynamicType": false,
                  "required": true,
                  "isConfigOverride": false,
                  "isComponentId": false,
                  "fieldValueProviderModels": [],
                  "expressionSupport": "SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": false,
                    "allowsReferences": false,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 2
                  },
                  "allowedStereotypeModels": [],
                  "semanticTerms": [],
                  "name": "operation",
                  "description": "",
                  "modelProperties": {
                    "org.mule.runtime.extension.api.property.MetadataKeyPartModelProperty": {
                      "order": 2,
                      "providedByKeyResolver": true,
                      "expressionSupport": "NOT_SUPPORTED"
                    }
                  }
                }
              ],
              "exclusiveParametersModels": [],
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 3
              },
              "showInDsl": false,
              "name": "Web Service Configuration",
              "description": "",
              "modelProperties": {}
            },
            {
              "parameters": [
                {
                  "type": {
                    "format": "java",
                    "type": "Binary",
                    "annotations": {
                      "classInformation": {
                        "classname": "java.io.InputStream",
                        "hasDefaultConstructor": true,
                        "isInterface": false,
                        "isInstantiable": false,
                        "isAbstract": true,
                        "isFinal": false,
                        "implementedInterfaces": [],
                        "parent": "",
                        "genericTypes": [],
                        "isMap": false
                      }
                    }
                  },
                  "hasDynamicType": true,
                  "required": false,
                  "isConfigOverride": false,
                  "isComponentId": false,
                  "fieldValueProviderModels": [],
                  "expressionSupport": "SUPPORTED",
                  "defaultValue": "#[payload]",
                  "role": "PRIMARY_CONTENT",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": false,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 3
                  },
                  "allowedStereotypeModels": [],
                  "semanticTerms": [],
                  "name": "body",
                  "displayModel": {
                    "summary": "The XML body to include in the SOAP message, with all the required parameters."
                  },
                  "description": "",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "Binary",
                    "annotations": {
                      "classInformation": {
                        "classname": "java.io.InputStream",
                        "hasDefaultConstructor": true,
                        "isInterface": false,
                        "isInstantiable": false,
                        "isAbstract": true,
                        "isFinal": false,
                        "implementedInterfaces": [],
                        "parent": "",
                        "genericTypes": [],
                        "isMap": false
                      }
                    }
                  },
                  "hasDynamicType": true,
                  "required": false,
                  "isConfigOverride": false,
                  "isComponentId": false,
                  "fieldValueProviderModels": [],
                  "expressionSupport": "SUPPORTED",
                  "role": "CONTENT",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": false,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 4
                  },
                  "allowedStereotypeModels": [],
                  "semanticTerms": [],
                  "name": "headers",
                  "displayModel": {
                    "displayName": "Headers",
                    "summary": "The XML headers to include in the SOAP message."
                  },
                  "description": "",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "Object",
                    "annotations": {
                      "typeId": "java.util.Map",
                      "classInformation": {
                        "classname": "java.util.Map",
                        "hasDefaultConstructor": false,
                        "isInterface": true,
                        "isInstantiable": false,
                        "isAbstract": true,
                        "isFinal": false,
                        "implementedInterfaces": [],
                        "parent": "",
                        "genericTypes": [],
                        "isMap": true
                      }
                    },
                    "open": {
                      "type": "Binary",
                      "annotations": {
                        "typeId": "java.io.InputStream"
                      }
                    },
                    "fields": []
                  },
                  "hasDynamicType": true,
                  "required": false,
                  "isConfigOverride": false,
                  "isComponentId": false,
                  "fieldValueProviderModels": [],
                  "expressionSupport": "SUPPORTED",
                  "role": "CONTENT",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": false,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 5
                  },
                  "allowedStereotypeModels": [],
                  "semanticTerms": [],
                  "name": "attachments",
                  "displayModel": {
                    "summary": "The attachments to include in the SOAP request."
                  },
                  "description": "",
                  "modelProperties": {}
                }
              ],
              "exclusiveParametersModels": [],
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 1
              },
              "showInDsl": true,
              "name": "Message",
              "description": "",
              "modelProperties": {}
            },
            {
              "parameters": [
                {
                  "type": {
                    "format": "java",
                    "type": "Object",
                    "annotations": {
                      "typeId": "java.util.Map",
                      "classInformation": {
                        "classname": "java.util.Map",
                        "hasDefaultConstructor": false,
                        "isInterface": true,
                        "isInstantiable": false,
                        "isAbstract": true,
                        "isFinal": false,
                        "implementedInterfaces": [],
                        "parent": "",
                        "genericTypes": [],
                        "isMap": true
                      }
                    },
                    "open": {
                      "type": "String"
                    },
                    "fields": []
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "isConfigOverride": false,
                  "isComponentId": false,
                  "fieldValueProviderModels": [],
                  "expressionSupport": "SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 2,
                    "tabName": "Transport"
                  },
                  "allowedStereotypeModels": [],
                  "semanticTerms": [],
                  "name": "transportHeaders",
                  "displayModel": {
                    "displayName": "Headers",
                    "summary": "The headers to set in the transport configuration."
                  },
                  "description": "",
                  "modelProperties": {}
                }
              ],
              "exclusiveParametersModels": [],
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 2
              },
              "showInDsl": false,
              "name": "Transport Configuration",
              "description": "",
              "modelProperties": {}
            },
            {
              "parameters": [
                {
                  "type": {
                    "format": "java",
                    "type": "String"
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "isConfigOverride": false,
                  "isComponentId": false,
                  "fieldValueProviderModels": [],
                  "expressionSupport": "NOT_SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": false,
                    "allowsReferences": false,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 6,
                    "tabName": "Advanced"
                  },
                  "allowedStereotypeModels": [],
                  "semanticTerms": [],
                  "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,
                  "fieldValueProviderModels": [],
                  "expressionSupport": "REQUIRED",
                  "defaultValue": "#[payload]",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": false,
                    "allowsReferences": false,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 7,
                    "tabName": "Advanced"
                  },
                  "allowedStereotypeModels": [],
                  "semanticTerms": [],
                  "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": 4
              },
              "showInDsl": false,
              "name": "Output",
              "description": "",
              "modelProperties": {}
            },
            {
              "parameters": [
                {
                  "type": {
                    "format": "java",
                    "type": "Array",
                    "annotations": {
                      "infrastructureType": {},
                      "description": {
                        "value": "Determines that an error thrown by this operation should be mapped to another"
                      },
                      "typeDsl": {
                        "allowInlineDefinition": true,
                        "allowTopLevelDefinition": false
                      }
                    },
                    "item": {
                      "type": "Object",
                      "annotations": {
                        "typeId": "errorMapping",
                        "infrastructureType": {}
                      },
                      "fields": [
                        {
                          "key": {
                            "name": "source"
                          },
                          "model": {
                            "format": {
                              "id": "text",
                              "label": "Text",
                              "validMimeTypes": [
                                "text/plain"
                              ]
                            },
                            "type": "String",
                            "annotations": {
                              "typeId": "errorTypeMatcher",
                              "enum": {
                                "type": "[Ljava.lang.String;",
                                "values": [
                                  "ANY",
                                  "REDELIVERY_EXHAUSTED",
                                  "TRANSFORMATION",
                                  "EXPRESSION",
                                  "SECURITY",
                                  "CLIENT_SECURITY",
                                  "SERVER_SECURITY",
                                  "ROUTING",
                                  "CONNECTIVITY",
                                  "RETRY_EXHAUSTED",
                                  "TIMEOUT"
                                ]
                              }
                            }
                          }
                        },
                        {
                          "key": {
                            "name": "target",
                            "required": "true"
                          },
                          "model": {
                            "format": {
                              "id": "text",
                              "label": "Text",
                              "validMimeTypes": [
                                "text/plain"
                              ]
                            },
                            "type": "String",
                            "annotations": {
                              "typeId": "errorTypeDefinition"
                            }
                          }
                        }
                      ]
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "isConfigOverride": false,
                  "isComponentId": false,
                  "fieldValueProviderModels": [],
                  "expressionSupport": "NOT_SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": false,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 8,
                    "tabName": "Error Mapping"
                  },
                  "allowedStereotypeModels": [],
                  "semanticTerms": [],
                  "name": "errorMappings",
                  "description": "Set of error mappings",
                  "modelProperties": {
                    "org.mule.runtime.extension.api.property.QNameModelProperty": {
                      "value": {
                        "namespaceURI": "http://www.mulesoft.org/schema/mule/core",
                        "localPart": "error-mappings",
                        "prefix": "mule"
                      }
                    },
                    "sinceMuleVersion": {
                      "version": "4.4.0"
                    },
                    "org.mule.runtime.extension.api.property.InfrastructureParameterModelProperty": {
                      "sequence": 12
                    }
                  }
                }
              ],
              "exclusiveParametersModels": [],
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 5
              },
              "showInDsl": false,
              "name": "Error Mappings",
              "description": "",
              "modelProperties": {}
            },
            {
              "parameters": [
                {
                  "type": {
                    "format": "java",
                    "type": "Union",
                    "annotations": {
                      "typeId": "ReconnectionStrategy",
                      "infrastructureType": {}
                    },
                    "of": [
                      {
                        "type": "Object",
                        "annotations": {
                          "typeId": "reconnect",
                          "infrastructureType": {}
                        },
                        "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": [],
                                  "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",
                          "infrastructureType": {}
                        },
                        "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": [],
                                  "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,
                  "fieldValueProviderModels": [],
                  "expressionSupport": "NOT_SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": false,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 9,
                    "tabName": "Advanced"
                  },
                  "allowedStereotypeModels": [],
                  "semanticTerms": [],
                  "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": 6
              },
              "showInDsl": false,
              "name": "Connection",
              "description": "",
              "modelProperties": {}
            }
          ],
          "name": "invoke",
          "description": "invokes Web Service operations",
          "modelProperties": {
            "typeResolversInformation": {
              "category": "InvokeOperationCategory",
              "outputResolver": {
                "resolverName": "InvokeOutput",
                "requiresConnection": true,
                "requiresConfiguration": true
              },
              "keysResolver": {
                "resolverName": "keys",
                "requiresConnection": true,
                "requiresConfiguration": true
              },
              "partialTypeKeyResolver": false,
              "inputResolvers": {
                "headers": {
                  "resolverName": "InvokeInputHeaders",
                  "requiresConnection": true,
                  "requiresConfiguration": true
                },
                "attachments": {
                  "resolverName": "InvokeInputAttachments",
                  "requiresConnection": true,
                  "requiresConfiguration": true
                },
                "body": {
                  "resolverName": "InvokeRequest",
                  "requiresConnection": true,
                  "requiresConfiguration": true
                }
              }
            },
            "metadataKeyId": {
              "type": {
                "format": "java",
                "type": "Object",
                "annotations": {
                  "typeId": "org.mule.runtime.module.extension.soap.internal.metadata.WebServiceTypeKey",
                  "classInformation": {
                    "classname": "org.mule.runtime.module.extension.soap.internal.metadata.WebServiceTypeKey",
                    "hasDefaultConstructor": true,
                    "isInterface": false,
                    "isInstantiable": true,
                    "isAbstract": false,
                    "isFinal": true,
                    "implementedInterfaces": [],
                    "parent": "",
                    "genericTypes": [],
                    "isMap": false
                  },
                  "typeAlias": {
                    "value": "WebServiceTypeKey"
                  }
                },
                "fields": [
                  {
                    "key": {
                      "name": "operation"
                    },
                    "model": {
                      "type": "String"
                    },
                    "annotations": {
                      "visibility": "READ_ONLY"
                    }
                  },
                  {
                    "key": {
                      "name": "service"
                    },
                    "model": {
                      "type": "String"
                    },
                    "annotations": {
                      "visibility": "READ_ONLY"
                    }
                  }
                ]
              },
              "parameterName": "Web Service Configuration",
              "categoryName": "InvokeOperationCategory"
            }
          },
          "kind": "operation"
        }
      ],
      "connectionProviders": [
        {
          "connectionManagementType": "POOLING",
          "externalLibraryModels": [],
          "supportsConnectivityTesting": true,
          "semanticTerms": [],
          "stereotype": {
            "type": "CUSTOM-HEADERS-CONNECTION",
            "namespace": "SIMPLE",
            "parent": {
              "type": "CONNECTION",
              "namespace": "MULE"
            }
          },
          "parameterGroupModels": [
            {
              "parameters": [
                {
                  "type": {
                    "format": "java",
                    "type": "String"
                  },
                  "hasDynamicType": false,
                  "required": true,
                  "isConfigOverride": false,
                  "isComponentId": false,
                  "fieldValueProviderModels": [],
                  "expressionSupport": "SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": false,
                    "allowsReferences": false,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 2
                  },
                  "allowedStereotypeModels": [],
                  "semanticTerms": [],
                  "name": "url",
                  "description": "",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "String"
                  },
                  "hasDynamicType": false,
                  "required": true,
                  "isConfigOverride": false,
                  "isComponentId": false,
                  "fieldValueProviderModels": [],
                  "expressionSupport": "SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": false,
                    "allowsReferences": false,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 3
                  },
                  "allowedStereotypeModels": [],
                  "semanticTerms": [],
                  "name": "service",
                  "description": "",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "String"
                  },
                  "hasDynamicType": false,
                  "required": true,
                  "isConfigOverride": false,
                  "isComponentId": false,
                  "fieldValueProviderModels": [],
                  "expressionSupport": "SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": false,
                    "allowsReferences": false,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 4
                  },
                  "allowedStereotypeModels": [],
                  "semanticTerms": [],
                  "name": "port",
                  "description": "",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "String",
                    "annotations": {
                      "typeId": "extension.org.mule.soap.it.Environment",
                      "enum": {
                        "type": "[Ljava.lang.String;",
                        "values": [
                          "DEV",
                          "TEST",
                          "PROD"
                        ]
                      },
                      "classInformation": {
                        "classname": "extension.org.mule.soap.it.Environment",
                        "hasDefaultConstructor": false,
                        "isInterface": false,
                        "isInstantiable": false,
                        "isAbstract": false,
                        "isFinal": true,
                        "implementedInterfaces": [],
                        "parent": "java.lang.Enum",
                        "genericTypes": [],
                        "isMap": false
                      }
                    }
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "isConfigOverride": false,
                  "isComponentId": false,
                  "fieldValueProviderModels": [],
                  "expressionSupport": "SUPPORTED",
                  "defaultValue": "PROD",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": false,
                    "allowsReferences": false,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 5
                  },
                  "allowedStereotypeModels": [],
                  "semanticTerms": [],
                  "name": "environment",
                  "description": "",
                  "modelProperties": {}
                }
              ],
              "exclusiveParametersModels": [],
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 1
              },
              "showInDsl": false,
              "name": "General",
              "description": "",
              "modelProperties": {}
            },
            {
              "parameters": [
                {
                  "type": {
                    "format": "java",
                    "type": "Object",
                    "annotations": {
                      "typeId": "org.mule.runtime.extension.api.soap.MessageDispatcherProvider",
                      "classInformation": {
                        "classname": "org.mule.runtime.extension.api.soap.MessageDispatcherProvider",
                        "hasDefaultConstructor": false,
                        "isInterface": true,
                        "isInstantiable": false,
                        "isAbstract": true,
                        "isFinal": false,
                        "implementedInterfaces": [
                          "org.mule.runtime.api.connection.ConnectionProvider"
                        ],
                        "parent": "",
                        "genericTypes": [],
                        "isMap": false
                      },
                      "typeAlias": {
                        "value": "MessageDispatcherProvider"
                      }
                    },
                    "fields": []
                  },
                  "hasDynamicType": false,
                  "required": true,
                  "isConfigOverride": false,
                  "isComponentId": false,
                  "fieldValueProviderModels": [],
                  "expressionSupport": "NOT_SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 1,
                    "tabName": "Transport"
                  },
                  "allowedStereotypeModels": [],
                  "semanticTerms": [],
                  "name": "transport",
                  "displayModel": {
                    "displayName": "Transport Configuration"
                  },
                  "description": "",
                  "modelProperties": {}
                }
              ],
              "exclusiveParametersModels": [],
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 2
              },
              "showInDsl": false,
              "name": "Transport Configuration",
              "description": "",
              "modelProperties": {}
            },
            {
              "parameters": [
                {
                  "type": {
                    "format": "java",
                    "type": "Object",
                    "annotations": {
                      "typeId": "Reconnection",
                      "infrastructureType": {}
                    },
                    "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",
                            "infrastructureType": {}
                          },
                          "of": [
                            {
                              "type": "Object",
                              "annotations": {
                                "typeId": "reconnect",
                                "infrastructureType": {}
                              },
                              "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": [],
                                        "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",
                                "infrastructureType": {}
                              },
                              "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": [],
                                        "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,
                  "fieldValueProviderModels": [],
                  "expressionSupport": "NOT_SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": false,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 6,
                    "tabName": "Advanced"
                  },
                  "allowedStereotypeModels": [],
                  "semanticTerms": [],
                  "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
                    }
                  }
                },
                {
                  "type": {
                    "format": "java",
                    "type": "Object",
                    "annotations": {
                      "typeId": "org.mule.runtime.api.config.PoolingProfile",
                      "description": {
                        "value": "A pooling profile is used to configure the pooling behaviour of Mule components. Each component can have its own pooling profile."
                      },
                      "infrastructureType": {},
                      "typeAlias": {
                        "value": "pooling-profile"
                      }
                    },
                    "fields": [
                      {
                        "key": {
                          "name": "maxActive"
                        },
                        "model": {
                          "type": "Number",
                          "annotations": {
                            "int": {},
                            "default": "5"
                          }
                        },
                        "annotations": {
                          "description": {
                            "value": "Controls the maximum number of Mule components that can be borrowed from a session at one time. When set to a negative value, there is no limit to the number of components that may be active at one time. When maxActive is exceeded, the pool is said to be exhausted."
                          }
                        }
                      },
                      {
                        "key": {
                          "name": "maxIdle"
                        },
                        "model": {
                          "type": "Number",
                          "annotations": {
                            "int": {},
                            "default": "5"
                          }
                        },
                        "annotations": {
                          "description": {
                            "value": "Controls the maximum number of Mule components that can sit idle in the pool at any time. When set to a negative value, there is no limit to the number of Mule components that may be idle at one time."
                          }
                        }
                      },
                      {
                        "key": {
                          "name": "maxWait"
                        },
                        "model": {
                          "type": "Number",
                          "annotations": {
                            "int": {},
                            "classInformation": {
                              "classname": "java.lang.Long",
                              "hasDefaultConstructor": false,
                              "isInterface": false,
                              "isInstantiable": false,
                              "isAbstract": false,
                              "isFinal": true,
                              "implementedInterfaces": [],
                              "parent": "java.lang.Number",
                              "genericTypes": [],
                              "isMap": false
                            },
                            "default": "4000"
                          }
                        },
                        "annotations": {
                          "description": {
                            "value": "Specifies the number of milliseconds to wait for a pooled component to become available when the pool is exhausted and the exhaustedAction is set to WHEN_EXHAUSTED_WAIT."
                          }
                        }
                      },
                      {
                        "key": {
                          "name": "minEvictionMillis"
                        },
                        "model": {
                          "type": "Number",
                          "annotations": {
                            "int": {},
                            "default": "1800000"
                          }
                        },
                        "annotations": {
                          "description": {
                            "value": "Determines the minimum amount of time an object may sit idle in the pool before it is eligible for eviction. When non-positive, no objects will be evicted from the pool due to idle time alone."
                          }
                        }
                      },
                      {
                        "key": {
                          "name": "evictionCheckIntervalMillis"
                        },
                        "model": {
                          "type": "Number",
                          "annotations": {
                            "int": {},
                            "default": "-1"
                          }
                        },
                        "annotations": {
                          "description": {
                            "value": "Specifies the number of milliseconds between runs of the object evictor. When non-positive, no object evictor is executed."
                          }
                        }
                      },
                      {
                        "key": {
                          "name": "exhaustedAction"
                        },
                        "model": {
                          "type": "String",
                          "annotations": {
                            "enum": {
                              "type": "[Ljava.lang.String;",
                              "values": [
                                "WHEN_EXHAUSTED_GROW",
                                "WHEN_EXHAUSTED_WAIT",
                                "WHEN_EXHAUSTED_FAIL"
                              ]
                            },
                            "default": "WHEN_EXHAUSTED_GROW"
                          }
                        },
                        "annotations": {
                          "description": {
                            "value": "Specifies the behavior of the Mule component pool when the pool is exhausted. Possible values are: \"WHEN_EXHAUSTED_FAIL\", which will throw a NoSuchElementException, \"WHEN_EXHAUSTED_WAIT\", which will block by invoking Object.wait(long) until a new or idle object is available, or WHEN_EXHAUSTED_GROW, which will create a new Mule instance and return it, essentially making maxActive meaningless. If a positive maxWait value is supplied, it will block for at most that many milliseconds, after which a NoSuchElementException will be thrown. If maxThreadWait is a negative value, it will block indefinitely."
                          }
                        }
                      },
                      {
                        "key": {
                          "name": "initialisationPolicy"
                        },
                        "model": {
                          "type": "String",
                          "annotations": {
                            "enum": {
                              "type": "[Ljava.lang.String;",
                              "values": [
                                "INITIALISE_NONE",
                                "INITIALISE_ONE",
                                "INITIALISE_ALL"
                              ]
                            },
                            "default": "INITIALISE_ONE"
                          }
                        },
                        "annotations": {
                          "description": {
                            "value": "Determines how components in a pool should be initialized. The possible values are: INITIALISE_NONE (will not load any components into the pool on startup), INITIALISE_ONE (will load one initial component into the pool on startup), or INITIALISE_ALL (will load all components in the pool on startup)"
                          }
                        }
                      },
                      {
                        "key": {
                          "name": "disabled"
                        },
                        "model": {
                          "type": "Boolean",
                          "annotations": {
                            "default": "false"
                          }
                        },
                        "annotations": {
                          "description": {
                            "value": "Whether pooling should be disabled"
                          }
                        }
                      }
                    ]
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "isConfigOverride": false,
                  "isComponentId": false,
                  "fieldValueProviderModels": [],
                  "expressionSupport": "NOT_SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": false,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 7,
                    "tabName": "Advanced"
                  },
                  "allowedStereotypeModels": [],
                  "semanticTerms": [],
                  "name": "poolingProfile",
                  "description": "Characteristics of the connection pool",
                  "modelProperties": {
                    "org.mule.runtime.extension.api.property.QNameModelProperty": {
                      "value": {
                        "namespaceURI": "http://www.mulesoft.org/schema/mule/core",
                        "localPart": "pooling-profile",
                        "prefix": "mule"
                      }
                    },
                    "org.mule.runtime.extension.api.property.InfrastructureParameterModelProperty": {
                      "sequence": 5
                    }
                  }
                }
              ],
              "exclusiveParametersModels": [],
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 3
              },
              "showInDsl": false,
              "name": "Connection",
              "description": "",
              "modelProperties": {}
            }
          ],
          "name": "custom-headers-connection",
          "description": "",
          "modelProperties": {
            "requiredForMetadata": {
              "requiredParameters": [
                "url",
                "service",
                "port",
                "environment",
                "transport"
              ]
            }
          }
        },
        {
          "connectionManagementType": "POOLING",
          "externalLibraryModels": [],
          "supportsConnectivityTesting": true,
          "semanticTerms": [],
          "stereotype": {
            "type": "TEST-CONNECTION",
            "namespace": "SIMPLE",
            "parent": {
              "type": "CONNECTION",
              "namespace": "MULE"
            }
          },
          "parameterGroupModels": [
            {
              "parameters": [
                {
                  "type": {
                    "format": "java",
                    "type": "String"
                  },
                  "hasDynamicType": false,
                  "required": true,
                  "isConfigOverride": false,
                  "isComponentId": false,
                  "fieldValueProviderModels": [],
                  "expressionSupport": "SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": false,
                    "allowsReferences": false,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 2
                  },
                  "allowedStereotypeModels": [],
                  "semanticTerms": [],
                  "name": "url",
                  "description": "",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "String"
                  },
                  "hasDynamicType": false,
                  "required": true,
                  "isConfigOverride": false,
                  "isComponentId": false,
                  "fieldValueProviderModels": [],
                  "expressionSupport": "SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": false,
                    "allowsReferences": false,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 3
                  },
                  "allowedStereotypeModels": [],
                  "semanticTerms": [],
                  "name": "service",
                  "description": "",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "String"
                  },
                  "hasDynamicType": false,
                  "required": true,
                  "isConfigOverride": false,
                  "isComponentId": false,
                  "fieldValueProviderModels": [],
                  "expressionSupport": "SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": false,
                    "allowsReferences": false,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 4
                  },
                  "allowedStereotypeModels": [],
                  "semanticTerms": [],
                  "name": "port",
                  "description": "",
                  "modelProperties": {}
                }
              ],
              "exclusiveParametersModels": [],
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 1
              },
              "showInDsl": false,
              "name": "General",
              "description": "",
              "modelProperties": {}
            },
            {
              "parameters": [
                {
                  "type": {
                    "format": "java",
                    "type": "Object",
                    "annotations": {
                      "typeId": "org.mule.runtime.extension.api.soap.MessageDispatcherProvider",
                      "classInformation": {
                        "classname": "org.mule.runtime.extension.api.soap.MessageDispatcherProvider",
                        "hasDefaultConstructor": false,
                        "isInterface": true,
                        "isInstantiable": false,
                        "isAbstract": true,
                        "isFinal": false,
                        "implementedInterfaces": [
                          "org.mule.runtime.api.connection.ConnectionProvider"
                        ],
                        "parent": "",
                        "genericTypes": [],
                        "isMap": false
                      },
                      "typeAlias": {
                        "value": "MessageDispatcherProvider"
                      }
                    },
                    "fields": []
                  },
                  "hasDynamicType": false,
                  "required": true,
                  "isConfigOverride": false,
                  "isComponentId": false,
                  "fieldValueProviderModels": [],
                  "expressionSupport": "NOT_SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": true,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 1,
                    "tabName": "Transport"
                  },
                  "allowedStereotypeModels": [],
                  "semanticTerms": [],
                  "name": "transport",
                  "displayModel": {
                    "displayName": "Transport Configuration"
                  },
                  "description": "",
                  "modelProperties": {}
                }
              ],
              "exclusiveParametersModels": [],
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 2
              },
              "showInDsl": false,
              "name": "Transport Configuration",
              "description": "",
              "modelProperties": {}
            },
            {
              "parameters": [
                {
                  "type": {
                    "format": "java",
                    "type": "Object",
                    "annotations": {
                      "typeId": "Reconnection",
                      "infrastructureType": {}
                    },
                    "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",
                            "infrastructureType": {}
                          },
                          "of": [
                            {
                              "type": "Object",
                              "annotations": {
                                "typeId": "reconnect",
                                "infrastructureType": {}
                              },
                              "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": [],
                                        "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",
                                "infrastructureType": {}
                              },
                              "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": [],
                                        "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,
                  "fieldValueProviderModels": [],
                  "expressionSupport": "NOT_SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": false,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 5,
                    "tabName": "Advanced"
                  },
                  "allowedStereotypeModels": [],
                  "semanticTerms": [],
                  "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
                    }
                  }
                },
                {
                  "type": {
                    "format": "java",
                    "type": "Object",
                    "annotations": {
                      "typeId": "org.mule.runtime.api.config.PoolingProfile",
                      "description": {
                        "value": "A pooling profile is used to configure the pooling behaviour of Mule components. Each component can have its own pooling profile."
                      },
                      "infrastructureType": {},
                      "typeAlias": {
                        "value": "pooling-profile"
                      }
                    },
                    "fields": [
                      {
                        "key": {
                          "name": "maxActive"
                        },
                        "model": {
                          "type": "Number",
                          "annotations": {
                            "int": {},
                            "default": "5"
                          }
                        },
                        "annotations": {
                          "description": {
                            "value": "Controls the maximum number of Mule components that can be borrowed from a session at one time. When set to a negative value, there is no limit to the number of components that may be active at one time. When maxActive is exceeded, the pool is said to be exhausted."
                          }
                        }
                      },
                      {
                        "key": {
                          "name": "maxIdle"
                        },
                        "model": {
                          "type": "Number",
                          "annotations": {
                            "int": {},
                            "default": "5"
                          }
                        },
                        "annotations": {
                          "description": {
                            "value": "Controls the maximum number of Mule components that can sit idle in the pool at any time. When set to a negative value, there is no limit to the number of Mule components that may be idle at one time."
                          }
                        }
                      },
                      {
                        "key": {
                          "name": "maxWait"
                        },
                        "model": {
                          "type": "Number",
                          "annotations": {
                            "int": {},
                            "classInformation": {
                              "classname": "java.lang.Long",
                              "hasDefaultConstructor": false,
                              "isInterface": false,
                              "isInstantiable": false,
                              "isAbstract": false,
                              "isFinal": true,
                              "implementedInterfaces": [],
                              "parent": "java.lang.Number",
                              "genericTypes": [],
                              "isMap": false
                            },
                            "default": "4000"
                          }
                        },
                        "annotations": {
                          "description": {
                            "value": "Specifies the number of milliseconds to wait for a pooled component to become available when the pool is exhausted and the exhaustedAction is set to WHEN_EXHAUSTED_WAIT."
                          }
                        }
                      },
                      {
                        "key": {
                          "name": "minEvictionMillis"
                        },
                        "model": {
                          "type": "Number",
                          "annotations": {
                            "int": {},
                            "default": "1800000"
                          }
                        },
                        "annotations": {
                          "description": {
                            "value": "Determines the minimum amount of time an object may sit idle in the pool before it is eligible for eviction. When non-positive, no objects will be evicted from the pool due to idle time alone."
                          }
                        }
                      },
                      {
                        "key": {
                          "name": "evictionCheckIntervalMillis"
                        },
                        "model": {
                          "type": "Number",
                          "annotations": {
                            "int": {},
                            "default": "-1"
                          }
                        },
                        "annotations": {
                          "description": {
                            "value": "Specifies the number of milliseconds between runs of the object evictor. When non-positive, no object evictor is executed."
                          }
                        }
                      },
                      {
                        "key": {
                          "name": "exhaustedAction"
                        },
                        "model": {
                          "type": "String",
                          "annotations": {
                            "enum": {
                              "type": "[Ljava.lang.String;",
                              "values": [
                                "WHEN_EXHAUSTED_GROW",
                                "WHEN_EXHAUSTED_WAIT",
                                "WHEN_EXHAUSTED_FAIL"
                              ]
                            },
                            "default": "WHEN_EXHAUSTED_GROW"
                          }
                        },
                        "annotations": {
                          "description": {
                            "value": "Specifies the behavior of the Mule component pool when the pool is exhausted. Possible values are: \"WHEN_EXHAUSTED_FAIL\", which will throw a NoSuchElementException, \"WHEN_EXHAUSTED_WAIT\", which will block by invoking Object.wait(long) until a new or idle object is available, or WHEN_EXHAUSTED_GROW, which will create a new Mule instance and return it, essentially making maxActive meaningless. If a positive maxWait value is supplied, it will block for at most that many milliseconds, after which a NoSuchElementException will be thrown. If maxThreadWait is a negative value, it will block indefinitely."
                          }
                        }
                      },
                      {
                        "key": {
                          "name": "initialisationPolicy"
                        },
                        "model": {
                          "type": "String",
                          "annotations": {
                            "enum": {
                              "type": "[Ljava.lang.String;",
                              "values": [
                                "INITIALISE_NONE",
                                "INITIALISE_ONE",
                                "INITIALISE_ALL"
                              ]
                            },
                            "default": "INITIALISE_ONE"
                          }
                        },
                        "annotations": {
                          "description": {
                            "value": "Determines how components in a pool should be initialized. The possible values are: INITIALISE_NONE (will not load any components into the pool on startup), INITIALISE_ONE (will load one initial component into the pool on startup), or INITIALISE_ALL (will load all components in the pool on startup)"
                          }
                        }
                      },
                      {
                        "key": {
                          "name": "disabled"
                        },
                        "model": {
                          "type": "Boolean",
                          "annotations": {
                            "default": "false"
                          }
                        },
                        "annotations": {
                          "description": {
                            "value": "Whether pooling should be disabled"
                          }
                        }
                      }
                    ]
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "isConfigOverride": false,
                  "isComponentId": false,
                  "fieldValueProviderModels": [],
                  "expressionSupport": "NOT_SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": true,
                    "allowsReferences": false,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 6,
                    "tabName": "Advanced"
                  },
                  "allowedStereotypeModels": [],
                  "semanticTerms": [],
                  "name": "poolingProfile",
                  "description": "Characteristics of the connection pool",
                  "modelProperties": {
                    "org.mule.runtime.extension.api.property.QNameModelProperty": {
                      "value": {
                        "namespaceURI": "http://www.mulesoft.org/schema/mule/core",
                        "localPart": "pooling-profile",
                        "prefix": "mule"
                      }
                    },
                    "org.mule.runtime.extension.api.property.InfrastructureParameterModelProperty": {
                      "sequence": 5
                    }
                  }
                }
              ],
              "exclusiveParametersModels": [],
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 3
              },
              "showInDsl": false,
              "name": "Connection",
              "description": "",
              "modelProperties": {}
            }
          ],
          "name": "test-connection",
          "description": "",
          "modelProperties": {
            "requiredForMetadata": {
              "requiredParameters": [
                "url",
                "service",
                "port",
                "transport"
              ]
            }
          }
        }
      ],
      "messageSources": [],
      "name": "config",
      "description": "Default configuration",
      "modelProperties": {
        "requiredForMetadata": {
          "requiredParameters": [
            "name"
          ]
        }
      }
    }
  ],
  "operations": [],
  "functions": [],
  "constructs": [],
  "connectionProviders": [],
  "messageSources": [],
  "artifactCoordinates": {
    "artifact id": "mule-extension-test-soap",
    "group id": "org.mule.tests.extensions",
    "version": "1.8.4"
  },
  "notifications": [],
  "errors": [
    {
      "error": "MULE:ANY",
      "handleable": true
    },
    {
      "error": "MULE:CONNECTIVITY",
      "parent": "MULE:ANY",
      "handleable": true
    },
    {
      "error": "MULE:RETRY_EXHAUSTED",
      "parent": "MULE:ANY",
      "handleable": true
    },
    {
      "error": "SIMPLE:BAD_REQUEST",
      "parent": "MULE:ANY",
      "handleable": true
    },
    {
      "error": "SIMPLE:BAD_RESPONSE",
      "parent": "MULE:ANY",
      "handleable": true
    },
    {
      "error": "SIMPLE:CANNOT_DISPATCH",
      "parent": "MULE:ANY",
      "handleable": true
    },
    {
      "error": "SIMPLE:CONNECTIVITY",
      "parent": "MULE:CONNECTIVITY",
      "handleable": true
    },
    {
      "error": "SIMPLE:ENCODING",
      "parent": "MULE:ANY",
      "handleable": true
    },
    {
      "error": "SIMPLE:INVALID_WSDL",
      "parent": "MULE:ANY",
      "handleable": true
    },
    {
      "error": "SIMPLE:RETRY_EXHAUSTED",
      "parent": "MULE:RETRY_EXHAUSTED",
      "handleable": true
    },
    {
      "error": "SIMPLE:SOAP_FAULT",
      "parent": "MULE:ANY",
      "handleable": true
    },
    {
      "error": "SIMPLE:TIMEOUT",
      "parent": "MULE:ANY",
      "handleable": true
    }
  ],
  "modelProperties": {},
  "types": [
    {
      "format": "java",
      "type": "Object",
      "annotations": {
        "typeId": "extension.org.mule.soap.it.TestExtensionsClientHttpDispatcherProvider",
        "classInformation": {
          "classname": "extension.org.mule.soap.it.TestExtensionsClientHttpDispatcherProvider",
          "hasDefaultConstructor": true,
          "isInterface": false,
          "isInstantiable": true,
          "isAbstract": false,
          "isFinal": false,
          "implementedInterfaces": [],
          "parent": "org.mule.runtime.extension.api.soap.ContextAwareMessageDispatcherProvider",
          "genericTypes": [],
          "isMap": false
        },
        "typeAlias": {
          "value": "http-extensions-client-provider"
        }
      },
      "fields": [
        {
          "key": {
            "name": "requesterConfig",
            "required": "true"
          },
          "model": {
            "type": "String"
          },
          "annotations": {
            "expressionSupport": {
              "value": "SUPPORTED"
            }
          }
        }
      ]
    },
    {
      "format": "java",
      "type": "Object",
      "annotations": {
        "typeId": "extension.org.mule.soap.it.TestHttpDispatcherProvider",
        "classInformation": {
          "classname": "extension.org.mule.soap.it.TestHttpDispatcherProvider",
          "hasDefaultConstructor": true,
          "isInterface": false,
          "isInstantiable": true,
          "isAbstract": false,
          "isFinal": false,
          "implementedInterfaces": [
            "org.mule.runtime.api.lifecycle.Lifecycle"
          ],
          "parent": "org.mule.runtime.extension.api.soap.ContextAwareMessageDispatcherProvider",
          "genericTypes": [],
          "isMap": false
        },
        "typeAlias": {
          "value": "TestHttpDispatcherProvider"
        }
      },
      "fields": []
    }
  ]
}
