{
  "name": "ExtensionWihTls",
  "description": "TLS Connector Description",
  "version": "4.0.0-M5",
  "vendor": "Mulesoft",
  "category": "COMMUNITY",
  "minMuleVersion": "4.0.0",
  "xmlDsl": {
    "namespace": "extension-wih-tls",
    "namespaceUri": "http://www.mulesoft.org/schema/mule/extension-wih-tls",
    "schemaLocation": "http://www.mulesoft.org/schema/mule/extension-wih-tls/current/mule-extension-wih-tls.xsd",
    "schemaVersion": "4.0.0-M5",
    "xsdFileName": "mule-extension-wih-tls.xsd"
  },
  "resources": [],
  "subTypes": [],
  "externalLibraries": [],
  "importedTypes": [],
  "configurations": [
    {
      "parameterGroupModels": [
        {
          "parameters": [
            {
              "type": {
                "format": "java",
                "type": "Object",
                "annotations": {
                  "typeId": "org.mule.runtime.api.tls.TlsContextFactory",
                  "typeAlias": {
                    "value": "Tls"
                  }
                },
                "fields": [
                  {
                    "key": {
                      "name": "enabledProtocols"
                    },
                    "model": {
                      "type": "String",
                      "annotations": {
                        "typeId": "java.lang.String"
                      }
                    },
                    "annotations": {
                      "description": {
                        "value": "A comma separated list of protocols enabled for this context."
                      }
                    }
                  },
                  {
                    "key": {
                      "name": "enabledCipherSuites"
                    },
                    "model": {
                      "type": "String",
                      "annotations": {
                        "typeId": "java.lang.String"
                      }
                    },
                    "annotations": {
                      "description": {
                        "value": "A comma separated list of cipher suites enabled for this context."
                      }
                    }
                  },
                  {
                    "key": {
                      "name": "trust-store"
                    },
                    "model": {
                      "type": "Object",
                      "annotations": {
                        "typeId": "java.lang.Object",
                        "typeAlias": {
                          "value": "TrustStore"
                        },
                        "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": {
                              "typeId": "java.lang.String"
                            }
                          },
                          "annotations": {
                            "description": {
                              "value": "The location (which will be resolved relative to the current classpath and file system, if possible) of the trust store."
                            }
                          }
                        },
                        {
                          "key": {
                            "name": "password"
                          },
                          "model": {
                            "type": "String",
                            "annotations": {
                              "typeId": "java.lang.String"
                            }
                          },
                          "annotations": {
                            "description": {
                              "value": "The password used to protect the trust store."
                            }
                          }
                        },
                        {
                          "key": {
                            "name": "type"
                          },
                          "model": {
                            "type": "Union",
                            "of": [
                              {
                                "type": "String",
                                "annotations": {
                                  "typeId": "java.lang.String",
                                  "enum": {
                                    "type": "[Ljava.lang.String;",
                                    "values": [
                                      "jks",
                                      "jceks",
                                      "pkcs12"
                                    ]
                                  }
                                }
                              },
                              {
                                "type": "String"
                              }
                            ]
                          },
                          "annotations": {
                            "description": {
                              "value": "The type of store used."
                            }
                          }
                        },
                        {
                          "key": {
                            "name": "algorithm"
                          },
                          "model": {
                            "type": "String",
                            "annotations": {
                              "typeId": "java.lang.String"
                            }
                          },
                          "annotations": {
                            "description": {
                              "value": "The algorithm used by the trust store."
                            }
                          }
                        },
                        {
                          "key": {
                            "name": "insecure"
                          },
                          "model": {
                            "type": "Boolean",
                            "annotations": {
                              "typeId": "java.lang.Boolean",
                              "default": "false"
                            }
                          },
                          "annotations": {
                            "description": {
                              "value": "If true, no certificate validations will be performed."
                            }
                          }
                        }
                      ]
                    }
                  },
                  {
                    "key": {
                      "name": "key-store"
                    },
                    "model": {
                      "type": "Object",
                      "annotations": {
                        "typeId": "java.lang.Object",
                        "typeAlias": {
                          "value": "KeyStore"
                        },
                        "description": {
                          "value": "Key store configuration. The key store contains the keys of this server/client."
                        }
                      },
                      "fields": [
                        {
                          "key": {
                            "name": "path"
                          },
                          "model": {
                            "type": "String",
                            "annotations": {
                              "typeId": "java.lang.String"
                            }
                          },
                          "annotations": {
                            "description": {
                              "value": "The location (which will be resolved relative to the current classpath and file system, if possible) of the key store."
                            }
                          }
                        },
                        {
                          "key": {
                            "name": "type"
                          },
                          "model": {
                            "type": "Union",
                            "of": [
                              {
                                "type": "String",
                                "annotations": {
                                  "typeId": "java.lang.String",
                                  "enum": {
                                    "type": "[Ljava.lang.String;",
                                    "values": [
                                      "jks",
                                      "jceks",
                                      "pkcs12"
                                    ]
                                  }
                                }
                              },
                              {
                                "type": "String"
                              }
                            ]
                          },
                          "annotations": {
                            "description": {
                              "value": "The type of store used."
                            }
                          }
                        },
                        {
                          "key": {
                            "name": "alias"
                          },
                          "model": {
                            "type": "String",
                            "annotations": {
                              "typeId": "java.lang.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": {
                              "typeId": "java.lang.String"
                            }
                          },
                          "annotations": {
                            "description": {
                              "value": "The password used to protect the private key."
                            }
                          }
                        },
                        {
                          "key": {
                            "name": "password"
                          },
                          "model": {
                            "type": "String",
                            "annotations": {
                              "typeId": "java.lang.String"
                            }
                          },
                          "annotations": {
                            "description": {
                              "value": "The password used to protect the key store."
                            }
                          }
                        },
                        {
                          "key": {
                            "name": "algorithm"
                          },
                          "model": {
                            "type": "String",
                            "annotations": {
                              "typeId": "java.lang.String"
                            }
                          },
                          "annotations": {
                            "description": {
                              "value": "The algorithm used by the key store."
                            }
                          }
                        }
                      ]
                    }
                  }
                ]
              },
              "hasDynamicType": false,
              "required": false,
              "expressionSupport": "NOT_SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": true
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 1
              },
              "name": "tlsContext",
              "description": "",
              "modelProperties": {}
            }
          ],
          "exclusiveParametersModels": [],
          "showInDsl": false,
          "name": "General",
          "description": "",
          "modelProperties": {}
        }
      ],
      "externalLibraryModels": [],
      "operations": [],
      "connectionProviders": [],
      "messageSources": [],
      "name": "config",
      "description": "Extension javadoc description",
      "modelProperties": {}
    }
  ],
  "operations": [
    {
      "blocking": true,
      "executionType": "CPU_LITE",
      "errors": [],
      "output": {
        "type": {
          "format": "java",
          "type": "String",
          "annotations": {
            "typeId": "java.lang.String"
          }
        },
        "hasDynamicType": false,
        "description": "",
        "modelProperties": {}
      },
      "outputAttributes": {
        "type": {
          "format": "java",
          "type": "Void"
        },
        "hasDynamicType": false,
        "description": "",
        "modelProperties": {}
      },
      "transactional": false,
      "requiresConnection": false,
      "parameterGroupModels": [
        {
          "parameters": [
            {
              "type": {
                "format": "java",
                "type": "String",
                "annotations": {
                  "typeId": "java.lang.String"
                }
              },
              "hasDynamicType": false,
              "required": true,
              "expressionSupport": "SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 1
              },
              "name": "param",
              "description": "",
              "modelProperties": {}
            }
          ],
          "exclusiveParametersModels": [],
          "showInDsl": false,
          "name": "General",
          "description": "",
          "modelProperties": {}
        },
        {
          "parameters": [
            {
              "type": {
                "format": "java",
                "type": "String",
                "annotations": {
                  "typeId": "java.lang.String"
                }
              },
              "hasDynamicType": false,
              "required": false,
              "expressionSupport": "NOT_SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "tabName": "Advanced"
              },
              "name": "target",
              "displayModel": {
                "displayName": "Target Variable"
              },
              "description": "The name of a variable on which the operation\u0027s output will be placed",
              "modelProperties": {}
            }
          ],
          "exclusiveParametersModels": [],
          "showInDsl": false,
          "name": "Output",
          "description": "",
          "modelProperties": {}
        }
      ],
      "name": "dummyOperation",
      "description": "",
      "modelProperties": {}
    }
  ],
  "connectionProviders": [
    {
      "connectionManagementType": "NONE",
      "externalLibraryModels": [],
      "parameterGroupModels": [
        {
          "parameters": [
            {
              "type": {
                "format": "java",
                "type": "Object",
                "annotations": {
                  "typeId": "org.mule.runtime.api.tls.TlsContextFactory",
                  "typeAlias": {
                    "value": "Tls"
                  }
                },
                "fields": [
                  {
                    "key": {
                      "name": "enabledProtocols"
                    },
                    "model": {
                      "type": "String",
                      "annotations": {
                        "typeId": "java.lang.String"
                      }
                    },
                    "annotations": {
                      "description": {
                        "value": "A comma separated list of protocols enabled for this context."
                      }
                    }
                  },
                  {
                    "key": {
                      "name": "enabledCipherSuites"
                    },
                    "model": {
                      "type": "String",
                      "annotations": {
                        "typeId": "java.lang.String"
                      }
                    },
                    "annotations": {
                      "description": {
                        "value": "A comma separated list of cipher suites enabled for this context."
                      }
                    }
                  },
                  {
                    "key": {
                      "name": "trust-store"
                    },
                    "model": {
                      "type": "Object",
                      "annotations": {
                        "typeId": "java.lang.Object",
                        "typeAlias": {
                          "value": "TrustStore"
                        },
                        "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": {
                              "typeId": "java.lang.String"
                            }
                          },
                          "annotations": {
                            "description": {
                              "value": "The location (which will be resolved relative to the current classpath and file system, if possible) of the trust store."
                            }
                          }
                        },
                        {
                          "key": {
                            "name": "password"
                          },
                          "model": {
                            "type": "String",
                            "annotations": {
                              "typeId": "java.lang.String"
                            }
                          },
                          "annotations": {
                            "description": {
                              "value": "The password used to protect the trust store."
                            }
                          }
                        },
                        {
                          "key": {
                            "name": "type"
                          },
                          "model": {
                            "type": "Union",
                            "of": [
                              {
                                "type": "String",
                                "annotations": {
                                  "typeId": "java.lang.String",
                                  "enum": {
                                    "type": "[Ljava.lang.String;",
                                    "values": [
                                      "jks",
                                      "jceks",
                                      "pkcs12"
                                    ]
                                  }
                                }
                              },
                              {
                                "type": "String"
                              }
                            ]
                          },
                          "annotations": {
                            "description": {
                              "value": "The type of store used."
                            }
                          }
                        },
                        {
                          "key": {
                            "name": "algorithm"
                          },
                          "model": {
                            "type": "String",
                            "annotations": {
                              "typeId": "java.lang.String"
                            }
                          },
                          "annotations": {
                            "description": {
                              "value": "The algorithm used by the trust store."
                            }
                          }
                        },
                        {
                          "key": {
                            "name": "insecure"
                          },
                          "model": {
                            "type": "Boolean",
                            "annotations": {
                              "typeId": "java.lang.Boolean",
                              "default": "false"
                            }
                          },
                          "annotations": {
                            "description": {
                              "value": "If true, no certificate validations will be performed."
                            }
                          }
                        }
                      ]
                    }
                  },
                  {
                    "key": {
                      "name": "key-store"
                    },
                    "model": {
                      "type": "Object",
                      "annotations": {
                        "typeId": "java.lang.Object",
                        "typeAlias": {
                          "value": "KeyStore"
                        },
                        "description": {
                          "value": "Key store configuration. The key store contains the keys of this server/client."
                        }
                      },
                      "fields": [
                        {
                          "key": {
                            "name": "path"
                          },
                          "model": {
                            "type": "String",
                            "annotations": {
                              "typeId": "java.lang.String"
                            }
                          },
                          "annotations": {
                            "description": {
                              "value": "The location (which will be resolved relative to the current classpath and file system, if possible) of the key store."
                            }
                          }
                        },
                        {
                          "key": {
                            "name": "type"
                          },
                          "model": {
                            "type": "Union",
                            "of": [
                              {
                                "type": "String",
                                "annotations": {
                                  "typeId": "java.lang.String",
                                  "enum": {
                                    "type": "[Ljava.lang.String;",
                                    "values": [
                                      "jks",
                                      "jceks",
                                      "pkcs12"
                                    ]
                                  }
                                }
                              },
                              {
                                "type": "String"
                              }
                            ]
                          },
                          "annotations": {
                            "description": {
                              "value": "The type of store used."
                            }
                          }
                        },
                        {
                          "key": {
                            "name": "alias"
                          },
                          "model": {
                            "type": "String",
                            "annotations": {
                              "typeId": "java.lang.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": {
                              "typeId": "java.lang.String"
                            }
                          },
                          "annotations": {
                            "description": {
                              "value": "The password used to protect the private key."
                            }
                          }
                        },
                        {
                          "key": {
                            "name": "password"
                          },
                          "model": {
                            "type": "String",
                            "annotations": {
                              "typeId": "java.lang.String"
                            }
                          },
                          "annotations": {
                            "description": {
                              "value": "The password used to protect the key store."
                            }
                          }
                        },
                        {
                          "key": {
                            "name": "algorithm"
                          },
                          "model": {
                            "type": "String",
                            "annotations": {
                              "typeId": "java.lang.String"
                            }
                          },
                          "annotations": {
                            "description": {
                              "value": "The algorithm used by the key store."
                            }
                          }
                        }
                      ]
                    }
                  }
                ]
              },
              "hasDynamicType": false,
              "required": false,
              "expressionSupport": "NOT_SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": true,
                "allowTopLevelDefinition": true
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 1
              },
              "name": "tlsContext",
              "description": "",
              "modelProperties": {}
            }
          ],
          "exclusiveParametersModels": [],
          "showInDsl": false,
          "name": "General",
          "description": "",
          "modelProperties": {}
        },
        {
          "parameters": [
            {
              "type": {
                "format": "java",
                "type": "Union",
                "annotations": {
                  "typeId": "java.lang.Object",
                  "typeAlias": {
                    "value": "ReconnectionStrategy"
                  }
                },
                "of": [
                  {
                    "type": "Object",
                    "annotations": {
                      "typeId": "java.lang.Object",
                      "typeAlias": {
                        "value": "reconnect"
                      }
                    },
                    "fields": [
                      {
                        "key": {
                          "name": "frequency"
                        },
                        "model": {
                          "type": "Number",
                          "annotations": {
                            "int": {},
                            "typeId": "java.lang.Long",
                            "default": "2000"
                          }
                        },
                        "annotations": {
                          "description": {
                            "value": "How often (in ms) to reconnect"
                          }
                        }
                      },
                      {
                        "key": {
                          "name": "count"
                        },
                        "model": {
                          "type": "Number",
                          "annotations": {
                            "int": {},
                            "typeId": "java.lang.Integer",
                            "default": "2"
                          }
                        },
                        "annotations": {
                          "description": {
                            "value": "How many reconnection attempts to make"
                          }
                        }
                      },
                      {
                        "key": {
                          "name": "blocking"
                        },
                        "model": {
                          "type": "Boolean",
                          "annotations": {
                            "typeId": "java.lang.Boolean",
                            "default": "true"
                          }
                        },
                        "annotations": {
                          "description": {
                            "value": "If false, the reconnection strategy will run in a separate, non-blocking thread"
                          }
                        }
                      }
                    ]
                  },
                  {
                    "type": "Object",
                    "annotations": {
                      "typeId": "java.lang.Object",
                      "typeAlias": {
                        "value": "reconnect-forever"
                      }
                    },
                    "fields": [
                      {
                        "key": {
                          "name": "frequency"
                        },
                        "model": {
                          "type": "Number",
                          "annotations": {
                            "int": {},
                            "typeId": "java.lang.Long",
                            "default": "2000"
                          }
                        },
                        "annotations": {
                          "description": {
                            "value": "How often (in ms) to reconnect"
                          }
                        }
                      }
                    ]
                  }
                ]
              },
              "hasDynamicType": false,
              "required": false,
              "expressionSupport": "NOT_SUPPORTED",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": true,
                "allowsReferences": false,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "tabName": "Advanced"
              },
              "name": "reconnectionStrategy",
              "description": "A retry strategy in case of connectivity errors",
              "modelProperties": {}
            }
          ],
          "exclusiveParametersModels": [],
          "showInDsl": false,
          "name": "Connection",
          "description": "",
          "modelProperties": {}
        }
      ],
      "name": "connection",
      "description": "",
      "modelProperties": {}
    }
  ],
  "messageSources": [],
  "errors": [],
  "modelProperties": {},
  "types": []
}
