{
  "name": "WSS",
  "description": "",
  "version": "2.1.0",
  "vendor": "Mulesoft",
  "supportedJavaVersions": [
    "17"
  ],
  "category": "SELECT",
  "xmlDsl": {
    "prefix": "wss",
    "namespace": "http://www.mulesoft.org/schema/mule/wss",
    "schemaLocation": "http://www.mulesoft.org/schema/mule/wss/current/mule-wss.xsd",
    "schemaVersion": "2.1.0",
    "xsdFileName": "mule-wss.xsd"
  },
  "resources": [],
  "subTypes": [
    {
      "baseType": {
        "format": "java",
        "type": "@ref:com.mulesoft.modules.wss.api.inbound.AuthenticateUserConfig"
      },
      "subTypes": [
        {
          "format": "java",
          "type": "@ref:com.mulesoft.modules.wss.api.inbound.CredentialsConfig"
        },
        {
          "format": "java",
          "type": "@ref:com.mulesoft.modules.wss.api.inbound.LDAPConfig"
        }
      ]
    }
  ],
  "privilegedPackages": [],
  "privilegedArtifacts": [],
  "externalLibraries": [],
  "importedTypes": [],
  "configurations": [
    {
      "stereotype": {
        "type": "INBOUND",
        "namespace": "WSS",
        "parent": {
          "type": "MODULE_CONFIG",
          "namespace": "MULE"
        }
      },
      "parameterGroupModels": [
        {
          "parameters": [
            {
              "type": {
                "format": "java",
                "type": "String"
              },
              "hasDynamicType": false,
              "required": false,
              "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": "actor",
              "description": "",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "Boolean",
                "annotations": {
                  "typeId": "boolean"
                }
              },
              "hasDynamicType": false,
              "required": false,
              "isConfigOverride": false,
              "isComponentId": false,
              "fieldValueProviderModels": [],
              "expressionSupport": "NOT_SUPPORTED",
              "defaultValue": "false",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": false,
                "allowsReferences": false,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 2
              },
              "allowedStereotypeModels": [],
              "semanticTerms": [],
              "name": "extractSecurityHeader",
              "description": "",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "@ref:com.mulesoft.modules.wss.api.inbound.VerifyUsernameTokenConfig"
              },
              "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": 3,
                "tabName": "Validation"
              },
              "allowedStereotypeModels": [],
              "semanticTerms": [],
              "name": "usernameConfig",
              "displayModel": {
                "displayName": "Validate Username Token"
              },
              "description": "",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "@ref:com.mulesoft.modules.wss.api.inbound.VerifySignatureConfig"
              },
              "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": 4,
                "tabName": "Validation"
              },
              "allowedStereotypeModels": [],
              "semanticTerms": [],
              "name": "verifySignatureConfig",
              "displayModel": {
                "displayName": "Validate Signature"
              },
              "description": "",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "@ref:com.mulesoft.modules.wss.api.inbound.DecryptionConfig"
              },
              "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": "Decryption"
              },
              "allowedStereotypeModels": [],
              "semanticTerms": [],
              "name": "decryptionConfig",
              "displayModel": {
                "displayName": "Decrypt Message"
              },
              "description": "",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "@ref:com.mulesoft.modules.wss.api.inbound.VerifyTimestampConfig"
              },
              "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": "Validation"
              },
              "allowedStereotypeModels": [],
              "semanticTerms": [],
              "name": "timestampConfig",
              "displayModel": {
                "displayName": "Validate Timestamp"
              },
              "description": "",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "@ref:com.mulesoft.modules.wss.api.inbound.VerifySamlConfig"
              },
              "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": "SAML"
              },
              "allowedStereotypeModels": [],
              "semanticTerms": [],
              "name": "verifySamlConfig",
              "displayModel": {
                "displayName": "Validate SAML Assertion"
              },
              "description": "",
              "modelProperties": {}
            },
            {
              "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": 9
              },
              "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": 8,
                "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": "CPU_LITE",
          "output": {
            "type": {
              "format": "xml",
              "type": "Binary",
              "annotations": {
                "classInformation": {
                  "classname": "java.io.InputStream",
                  "hasDefaultConstructor": true,
                  "isInterface": false,
                  "isInstantiable": false,
                  "isAbstract": true,
                  "isFinal": false,
                  "implementedInterfaces": [],
                  "parent": "",
                  "genericTypes": [],
                  "isMap": false
                }
              }
            },
            "hasDynamicType": false,
            "description": "",
            "modelProperties": {}
          },
          "outputAttributes": {
            "type": {
              "format": "java",
              "type": "Void"
            },
            "hasDynamicType": false,
            "description": "",
            "modelProperties": {}
          },
          "transactional": false,
          "requiresConnection": false,
          "supportsStreaming": true,
          "notifications": [],
          "nestedComponents": [],
          "errors": [
            "WSS:MISSING_CERTIFICATE",
            "WSS:SECURITY_VALIDATING",
            "WSS:SECURITY_APPLYING"
          ],
          "semanticTerms": [],
          "visibility": "PUBLIC",
          "stereotype": {
            "type": "VALIDATE_WSS",
            "namespace": "WSS",
            "parent": {
              "type": "PROCESSOR",
              "namespace": "WSS",
              "parent": {
                "type": "PROCESSOR",
                "namespace": "MULE"
              }
            }
          },
          "parameterGroupModels": [
            {
              "parameters": [
                {
                  "type": {
                    "format": "java",
                    "type": "Binary",
                    "annotations": {
                      "classInformation": {
                        "classname": "java.io.InputStream",
                        "hasDefaultConstructor": true,
                        "isInterface": false,
                        "isInstantiable": false,
                        "isAbstract": true,
                        "isFinal": false,
                        "implementedInterfaces": [],
                        "parent": "",
                        "genericTypes": [],
                        "isMap": false
                      }
                    }
                  },
                  "hasDynamicType": false,
                  "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": 1
                  },
                  "allowedStereotypeModels": [],
                  "semanticTerms": [],
                  "name": "request",
                  "description": "",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "String",
                    "annotations": {
                      "typeId": "com.mulesoft.modules.wss.api.constants.SoapVersion",
                      "enum": {
                        "type": "[Ljava.lang.String;",
                        "values": [
                          "SOAP_11",
                          "SOAP_12"
                        ]
                      },
                      "classInformation": {
                        "classname": "com.mulesoft.modules.wss.api.constants.SoapVersion",
                        "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": "SOAP_12",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": false,
                    "allowsReferences": false,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 2
                  },
                  "allowedStereotypeModels": [],
                  "semanticTerms": [],
                  "name": "version",
                  "description": "",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "String"
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "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,
                    "tabName": "Advanced"
                  },
                  "allowedStereotypeModels": [],
                  "semanticTerms": [],
                  "name": "outputMimeType",
                  "description": "The mime type of the payload that this operation outputs.",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "String"
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "isConfigOverride": false,
                  "isComponentId": false,
                  "fieldValueProviderModels": [],
                  "expressionSupport": "SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": false,
                    "allowsReferences": false,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 4,
                    "tabName": "Advanced"
                  },
                  "allowedStereotypeModels": [],
                  "semanticTerms": [],
                  "name": "outputEncoding",
                  "description": "The encoding of the payload that this operation outputs.",
                  "modelProperties": {}
                },
                {
                  "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": false,
                  "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": 6
                  },
                  "allowedStereotypeModels": [
                    {
                      "type": "INBOUND",
                      "namespace": "WSS",
                      "parent": {
                        "type": "MODULE_CONFIG",
                        "namespace": "MULE"
                      }
                    }
                  ],
                  "semanticTerms": [],
                  "name": "config-ref",
                  "description": "The name of the configuration to be used to execute this component",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "Union",
                    "annotations": {
                      "typeId": "ByteStreamingStrategy",
                      "infrastructureType": {}
                    },
                    "of": [
                      {
                        "type": "Object",
                        "annotations": {
                          "typeId": "repeatable-in-memory-stream",
                          "infrastructureType": {}
                        },
                        "fields": [
                          {
                            "key": {
                              "name": "initialBufferSize"
                            },
                            "model": {
                              "type": "Number",
                              "annotations": {
                                "int": {},
                                "default": "512"
                              }
                            },
                            "annotations": {
                              "description": {
                                "value": "This is the amount of memory that will be allocated in order to consume the stream and provide random access to it. If the stream contains more data than can be fit into this buffer, then it will be expanded by according to the bufferSizeIncrement attribute, with an upper limit of maxInMemorySize."
                              }
                            }
                          },
                          {
                            "key": {
                              "name": "bufferSizeIncrement"
                            },
                            "model": {
                              "type": "Number",
                              "annotations": {
                                "int": {},
                                "default": "512"
                              }
                            },
                            "annotations": {
                              "description": {
                                "value": "This is by how much will be buffer size by expanded if it exceeds its initial size. Setting a value of zero or lower will mean that the buffer should not expand, meaning that a STREAM_MAXIMUM_SIZE_EXCEEDED error will be raised when the buffer gets full."
                              }
                            }
                          },
                          {
                            "key": {
                              "name": "maxBufferSize"
                            },
                            "model": {
                              "type": "Number",
                              "annotations": {
                                "int": {},
                                "default": "1024"
                              }
                            },
                            "annotations": {
                              "description": {
                                "value": "This is the maximum amount of memory that will be used. If more than that is used then a STREAM_MAXIMUM_SIZE_EXCEEDED error will be raised. A value lower or equal to zero means no limit."
                              }
                            }
                          },
                          {
                            "key": {
                              "name": "bufferUnit"
                            },
                            "model": {
                              "type": "String",
                              "annotations": {
                                "enum": {
                                  "type": "[Ljava.lang.String;",
                                  "values": [
                                    "BYTE",
                                    "KB",
                                    "MB",
                                    "GB"
                                  ]
                                },
                                "default": "KB"
                              }
                            },
                            "annotations": {
                              "description": {
                                "value": "The unit in which all these attributes are expressed"
                              }
                            }
                          }
                        ]
                      },
                      {
                        "type": "Object",
                        "annotations": {
                          "typeId": "repeatable-file-store-stream",
                          "QName": {
                            "value": {
                              "namespaceURI": "http://www.mulesoft.org/schema/mule/ee/core",
                              "localPart": "repeatable-file-store-stream",
                              "prefix": "ee"
                            }
                          },
                          "infrastructureType": {}
                        },
                        "fields": [
                          {
                            "key": {
                              "name": "inMemorySize"
                            },
                            "model": {
                              "type": "Number",
                              "annotations": {
                                "int": {},
                                "default": "512"
                              }
                            },
                            "annotations": {
                              "description": {
                                "value": "Defines the maximum memory that the stream should use to keep data in memory. If more than that is consumed then it will start to buffer the content on disk."
                              }
                            }
                          },
                          {
                            "key": {
                              "name": "bufferUnit"
                            },
                            "model": {
                              "type": "String",
                              "annotations": {
                                "enum": {
                                  "type": "[Ljava.lang.String;",
                                  "values": [
                                    "BYTE",
                                    "KB",
                                    "MB",
                                    "GB"
                                  ]
                                },
                                "default": "KB"
                              }
                            },
                            "annotations": {
                              "description": {
                                "value": "The unit in which maxInMemorySize is expressed"
                              }
                            }
                          }
                        ]
                      },
                      {
                        "type": "Object",
                        "annotations": {
                          "typeId": "non-repeatable-stream",
                          "infrastructureType": {},
                          "description": {
                            "value": "This configuration allows the input stream to be read only once. It will not allow to seek randomly which will limit the transformations that DW can perform on this stream. Use this option for use cases which just require moving data around from one system to another to get optimum performance."
                          }
                        },
                        "fields": []
                      }
                    ]
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "isConfigOverride": false,
                  "isComponentId": false,
                  "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": "streamingStrategy",
                  "description": "Configure if repeatable streams should be used and their behaviour",
                  "modelProperties": {
                    "org.mule.runtime.extension.api.property.QNameModelProperty": {
                      "value": {
                        "namespaceURI": "http://www.mulesoft.org/schema/mule/core",
                        "localPart": "abstract-byte-streaming-strategy",
                        "prefix": "mule"
                      }
                    },
                    "org.mule.runtime.extension.api.property.InfrastructureParameterModelProperty": {
                      "sequence": 2
                    }
                  }
                }
              ],
              "exclusiveParametersModels": [],
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 1
              },
              "showInDsl": false,
              "name": "General",
              "description": "",
              "modelProperties": {}
            },
            {
              "parameters": [
                {
                  "type": {
                    "format": "java",
                    "type": "String"
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "isConfigOverride": false,
                  "isComponentId": false,
                  "fieldValueProviderModels": [],
                  "expressionSupport": "NOT_SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": false,
                    "allowsReferences": false,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 7,
                    "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": 8,
                    "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": 2
              },
              "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": 9,
                    "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": 3
              },
              "showInDsl": false,
              "name": "Error Mappings",
              "description": "",
              "modelProperties": {}
            }
          ],
          "name": "validateWss",
          "displayModel": {
            "displayName": "Validate WSS"
          },
          "description": "",
          "modelProperties": {},
          "kind": "operation"
        }
      ],
      "connectionProviders": [],
      "messageSources": [],
      "name": "inbound",
      "description": "",
      "modelProperties": {
        "requiredForMetadata": {
          "requiredParameters": [
            "actor",
            "extractSecurityHeader",
            "usernameConfig",
            "verifySignatureConfig",
            "decryptionConfig",
            "timestampConfig",
            "verifySamlConfig",
            "name"
          ]
        }
      }
    },
    {
      "stereotype": {
        "type": "OUTBOUND",
        "namespace": "WSS",
        "parent": {
          "type": "MODULE_CONFIG",
          "namespace": "MULE"
        }
      },
      "parameterGroupModels": [
        {
          "parameters": [
            {
              "type": {
                "format": "java",
                "type": "@ref:com.mulesoft.modules.wss.api.outbound.SignatureConfig"
              },
              "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
              },
              "allowedStereotypeModels": [],
              "semanticTerms": [],
              "name": "signatureConfig",
              "displayModel": {
                "displayName": "Signature Configuration"
              },
              "description": "",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "@ref:com.mulesoft.modules.wss.api.outbound.EncryptionConfig"
              },
              "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": 2
              },
              "allowedStereotypeModels": [],
              "semanticTerms": [],
              "name": "encryptionConfig",
              "displayModel": {
                "displayName": "Encryption Configuration"
              },
              "description": "",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "@ref:com.mulesoft.modules.wss.api.outbound.TimestampConfig"
              },
              "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": 3
              },
              "allowedStereotypeModels": [],
              "semanticTerms": [],
              "name": "outboundTimestampConfig",
              "displayModel": {
                "displayName": "Timestamp Configuration"
              },
              "description": "",
              "modelProperties": {}
            },
            {
              "type": {
                "format": "java",
                "type": "Boolean",
                "annotations": {
                  "typeId": "boolean"
                }
              },
              "hasDynamicType": false,
              "required": false,
              "isConfigOverride": false,
              "isComponentId": false,
              "fieldValueProviderModels": [],
              "expressionSupport": "NOT_SUPPORTED",
              "defaultValue": "false",
              "role": "BEHAVIOUR",
              "dslConfiguration": {
                "allowsInlineDefinition": false,
                "allowsReferences": false,
                "allowTopLevelDefinition": false
              },
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 4
              },
              "allowedStereotypeModels": [],
              "semanticTerms": [],
              "name": "mustUnderstand",
              "displayModel": {
                "displayName": "\u0027Must Understand\u0027 Attribute"
              },
              "description": "",
              "modelProperties": {}
            },
            {
              "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": 5
              },
              "allowedStereotypeModels": [],
              "semanticTerms": [],
              "name": "name",
              "description": "The identifier of this element used to reference it in other components",
              "modelProperties": {}
            }
          ],
          "exclusiveParametersModels": [],
          "layoutModel": {
            "password": false,
            "text": false,
            "query": false,
            "order": 1
          },
          "showInDsl": false,
          "name": "General",
          "description": "",
          "modelProperties": {}
        }
      ],
      "externalLibraryModels": [],
      "operations": [
        {
          "blocking": true,
          "executionType": "CPU_LITE",
          "output": {
            "type": {
              "format": "xml",
              "type": "Binary",
              "annotations": {
                "classInformation": {
                  "classname": "java.io.InputStream",
                  "hasDefaultConstructor": true,
                  "isInterface": false,
                  "isInstantiable": false,
                  "isAbstract": true,
                  "isFinal": false,
                  "implementedInterfaces": [],
                  "parent": "",
                  "genericTypes": [],
                  "isMap": false
                }
              }
            },
            "hasDynamicType": false,
            "description": "",
            "modelProperties": {}
          },
          "outputAttributes": {
            "type": {
              "format": "java",
              "type": "Void"
            },
            "hasDynamicType": false,
            "description": "",
            "modelProperties": {}
          },
          "transactional": false,
          "requiresConnection": false,
          "supportsStreaming": true,
          "notifications": [],
          "nestedComponents": [],
          "errors": [
            "WSS:MISSING_CERTIFICATE",
            "WSS:SECURITY_VALIDATING",
            "WSS:SECURITY_APPLYING"
          ],
          "semanticTerms": [],
          "visibility": "PUBLIC",
          "stereotype": {
            "type": "APPLY_WSS",
            "namespace": "WSS",
            "parent": {
              "type": "PROCESSOR",
              "namespace": "WSS",
              "parent": {
                "type": "PROCESSOR",
                "namespace": "MULE"
              }
            }
          },
          "parameterGroupModels": [
            {
              "parameters": [
                {
                  "type": {
                    "format": "java",
                    "type": "Binary",
                    "annotations": {
                      "classInformation": {
                        "classname": "java.io.InputStream",
                        "hasDefaultConstructor": true,
                        "isInterface": false,
                        "isInstantiable": false,
                        "isAbstract": true,
                        "isFinal": false,
                        "implementedInterfaces": [],
                        "parent": "",
                        "genericTypes": [],
                        "isMap": false
                      }
                    }
                  },
                  "hasDynamicType": false,
                  "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": 1
                  },
                  "allowedStereotypeModels": [],
                  "semanticTerms": [],
                  "name": "response",
                  "description": "",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "String",
                    "annotations": {
                      "typeId": "com.mulesoft.modules.wss.api.constants.SoapVersion",
                      "enum": {
                        "type": "[Ljava.lang.String;",
                        "values": [
                          "SOAP_11",
                          "SOAP_12"
                        ]
                      },
                      "classInformation": {
                        "classname": "com.mulesoft.modules.wss.api.constants.SoapVersion",
                        "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": "SOAP_12",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": false,
                    "allowsReferences": false,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 2
                  },
                  "allowedStereotypeModels": [],
                  "semanticTerms": [],
                  "name": "version",
                  "description": "",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "String"
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "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,
                    "tabName": "Advanced"
                  },
                  "allowedStereotypeModels": [],
                  "semanticTerms": [],
                  "name": "outputMimeType",
                  "description": "The mime type of the payload that this operation outputs.",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "String"
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "isConfigOverride": false,
                  "isComponentId": false,
                  "fieldValueProviderModels": [],
                  "expressionSupport": "SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": false,
                    "allowsReferences": false,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 4,
                    "tabName": "Advanced"
                  },
                  "allowedStereotypeModels": [],
                  "semanticTerms": [],
                  "name": "outputEncoding",
                  "description": "The encoding of the payload that this operation outputs.",
                  "modelProperties": {}
                },
                {
                  "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": false,
                  "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": 6
                  },
                  "allowedStereotypeModels": [
                    {
                      "type": "OUTBOUND",
                      "namespace": "WSS",
                      "parent": {
                        "type": "MODULE_CONFIG",
                        "namespace": "MULE"
                      }
                    }
                  ],
                  "semanticTerms": [],
                  "name": "config-ref",
                  "description": "The name of the configuration to be used to execute this component",
                  "modelProperties": {}
                },
                {
                  "type": {
                    "format": "java",
                    "type": "Union",
                    "annotations": {
                      "typeId": "ByteStreamingStrategy",
                      "infrastructureType": {}
                    },
                    "of": [
                      {
                        "type": "Object",
                        "annotations": {
                          "typeId": "repeatable-in-memory-stream",
                          "infrastructureType": {}
                        },
                        "fields": [
                          {
                            "key": {
                              "name": "initialBufferSize"
                            },
                            "model": {
                              "type": "Number",
                              "annotations": {
                                "int": {},
                                "default": "512"
                              }
                            },
                            "annotations": {
                              "description": {
                                "value": "This is the amount of memory that will be allocated in order to consume the stream and provide random access to it. If the stream contains more data than can be fit into this buffer, then it will be expanded by according to the bufferSizeIncrement attribute, with an upper limit of maxInMemorySize."
                              }
                            }
                          },
                          {
                            "key": {
                              "name": "bufferSizeIncrement"
                            },
                            "model": {
                              "type": "Number",
                              "annotations": {
                                "int": {},
                                "default": "512"
                              }
                            },
                            "annotations": {
                              "description": {
                                "value": "This is by how much will be buffer size by expanded if it exceeds its initial size. Setting a value of zero or lower will mean that the buffer should not expand, meaning that a STREAM_MAXIMUM_SIZE_EXCEEDED error will be raised when the buffer gets full."
                              }
                            }
                          },
                          {
                            "key": {
                              "name": "maxBufferSize"
                            },
                            "model": {
                              "type": "Number",
                              "annotations": {
                                "int": {},
                                "default": "1024"
                              }
                            },
                            "annotations": {
                              "description": {
                                "value": "This is the maximum amount of memory that will be used. If more than that is used then a STREAM_MAXIMUM_SIZE_EXCEEDED error will be raised. A value lower or equal to zero means no limit."
                              }
                            }
                          },
                          {
                            "key": {
                              "name": "bufferUnit"
                            },
                            "model": {
                              "type": "String",
                              "annotations": {
                                "enum": {
                                  "type": "[Ljava.lang.String;",
                                  "values": [
                                    "BYTE",
                                    "KB",
                                    "MB",
                                    "GB"
                                  ]
                                },
                                "default": "KB"
                              }
                            },
                            "annotations": {
                              "description": {
                                "value": "The unit in which all these attributes are expressed"
                              }
                            }
                          }
                        ]
                      },
                      {
                        "type": "Object",
                        "annotations": {
                          "typeId": "repeatable-file-store-stream",
                          "QName": {
                            "value": {
                              "namespaceURI": "http://www.mulesoft.org/schema/mule/ee/core",
                              "localPart": "repeatable-file-store-stream",
                              "prefix": "ee"
                            }
                          },
                          "infrastructureType": {}
                        },
                        "fields": [
                          {
                            "key": {
                              "name": "inMemorySize"
                            },
                            "model": {
                              "type": "Number",
                              "annotations": {
                                "int": {},
                                "default": "512"
                              }
                            },
                            "annotations": {
                              "description": {
                                "value": "Defines the maximum memory that the stream should use to keep data in memory. If more than that is consumed then it will start to buffer the content on disk."
                              }
                            }
                          },
                          {
                            "key": {
                              "name": "bufferUnit"
                            },
                            "model": {
                              "type": "String",
                              "annotations": {
                                "enum": {
                                  "type": "[Ljava.lang.String;",
                                  "values": [
                                    "BYTE",
                                    "KB",
                                    "MB",
                                    "GB"
                                  ]
                                },
                                "default": "KB"
                              }
                            },
                            "annotations": {
                              "description": {
                                "value": "The unit in which maxInMemorySize is expressed"
                              }
                            }
                          }
                        ]
                      },
                      {
                        "type": "Object",
                        "annotations": {
                          "typeId": "non-repeatable-stream",
                          "infrastructureType": {},
                          "description": {
                            "value": "This configuration allows the input stream to be read only once. It will not allow to seek randomly which will limit the transformations that DW can perform on this stream. Use this option for use cases which just require moving data around from one system to another to get optimum performance."
                          }
                        },
                        "fields": []
                      }
                    ]
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "isConfigOverride": false,
                  "isComponentId": false,
                  "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": "streamingStrategy",
                  "description": "Configure if repeatable streams should be used and their behaviour",
                  "modelProperties": {
                    "org.mule.runtime.extension.api.property.QNameModelProperty": {
                      "value": {
                        "namespaceURI": "http://www.mulesoft.org/schema/mule/core",
                        "localPart": "abstract-byte-streaming-strategy",
                        "prefix": "mule"
                      }
                    },
                    "org.mule.runtime.extension.api.property.InfrastructureParameterModelProperty": {
                      "sequence": 2
                    }
                  }
                }
              ],
              "exclusiveParametersModels": [],
              "layoutModel": {
                "password": false,
                "text": false,
                "query": false,
                "order": 1
              },
              "showInDsl": false,
              "name": "General",
              "description": "",
              "modelProperties": {}
            },
            {
              "parameters": [
                {
                  "type": {
                    "format": "java",
                    "type": "String"
                  },
                  "hasDynamicType": false,
                  "required": false,
                  "isConfigOverride": false,
                  "isComponentId": false,
                  "fieldValueProviderModels": [],
                  "expressionSupport": "NOT_SUPPORTED",
                  "role": "BEHAVIOUR",
                  "dslConfiguration": {
                    "allowsInlineDefinition": false,
                    "allowsReferences": false,
                    "allowTopLevelDefinition": false
                  },
                  "layoutModel": {
                    "password": false,
                    "text": false,
                    "query": false,
                    "order": 7,
                    "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": 8,
                    "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": 2
              },
              "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": 9,
                    "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": 3
              },
              "showInDsl": false,
              "name": "Error Mappings",
              "description": "",
              "modelProperties": {}
            }
          ],
          "name": "applyWss",
          "displayModel": {
            "displayName": "Apply WSS"
          },
          "description": "",
          "modelProperties": {},
          "kind": "operation"
        }
      ],
      "connectionProviders": [],
      "messageSources": [],
      "name": "outbound",
      "description": "",
      "modelProperties": {
        "requiredForMetadata": {
          "requiredParameters": [
            "signatureConfig",
            "encryptionConfig",
            "outboundTimestampConfig",
            "mustUnderstand",
            "name"
          ]
        }
      }
    }
  ],
  "operations": [],
  "functions": [],
  "constructs": [],
  "connectionProviders": [],
  "messageSources": [],
  "artifactCoordinates": {
    "artifact id": "mule-wss-module",
    "group id": "com.mulesoft.modules",
    "version": "2.1.0"
  },
  "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": "WSS:CONNECTIVITY",
      "parent": "MULE:CONNECTIVITY",
      "handleable": true
    },
    {
      "error": "WSS:MISSING_CERTIFICATE",
      "parent": "MULE:ANY",
      "handleable": true
    },
    {
      "error": "WSS:RETRY_EXHAUSTED",
      "parent": "MULE:RETRY_EXHAUSTED",
      "handleable": true
    },
    {
      "error": "WSS:SECURITY_APPLYING",
      "parent": "MULE:ANY",
      "handleable": true
    },
    {
      "error": "WSS:SECURITY_VALIDATING",
      "parent": "MULE:ANY",
      "handleable": true
    }
  ],
  "modelProperties": {},
  "types": [
    {
      "format": "java",
      "type": "Object",
      "annotations": {
        "typeId": "com.mulesoft.modules.wss.api.inbound.AuthenticateUserConfig",
        "classInformation": {
          "classname": "com.mulesoft.modules.wss.api.inbound.AuthenticateUserConfig",
          "hasDefaultConstructor": false,
          "isInterface": true,
          "isInstantiable": false,
          "isAbstract": true,
          "isFinal": false,
          "implementedInterfaces": [],
          "parent": "",
          "genericTypes": [],
          "isMap": false
        },
        "typeAlias": {
          "value": "AuthenticateUserConfig"
        },
        "stereotype": {
          "allowedStereotypes": [
            {
              "type": "AUTHENTICATE_USER_CONFIG",
              "namespace": "WSS"
            }
          ]
        }
      },
      "fields": []
    },
    {
      "format": "java",
      "type": "Object",
      "annotations": {
        "typeId": "com.mulesoft.modules.wss.api.inbound.CredentialsConfig",
        "classInformation": {
          "classname": "com.mulesoft.modules.wss.api.inbound.CredentialsConfig",
          "hasDefaultConstructor": true,
          "isInterface": false,
          "isInstantiable": true,
          "isAbstract": false,
          "isFinal": false,
          "implementedInterfaces": [
            "com.mulesoft.modules.wss.api.inbound.AuthenticateUserConfig"
          ],
          "parent": "",
          "genericTypes": [],
          "isMap": false
        },
        "typeAlias": {
          "value": "CredentialsConfig"
        }
      },
      "fields": [
        {
          "key": {
            "name": "username",
            "required": "true"
          },
          "model": {
            "type": "String"
          },
          "annotations": {
            "expressionSupport": {
              "value": "SUPPORTED"
            },
            "display": {
              "displayModel": {
                "summary": "Username."
              }
            }
          }
        },
        {
          "key": {
            "name": "password",
            "required": "true"
          },
          "model": {
            "type": "String"
          },
          "annotations": {
            "expressionSupport": {
              "value": "SUPPORTED"
            },
            "layout": {
              "layoutModel": {
                "password": true,
                "text": false,
                "query": false
              }
            },
            "display": {
              "displayModel": {
                "summary": "Password."
              }
            },
            "org.mule.runtime.extension.api.declaration.type.annotation.SemanticTermsTypeAnnotation": {
              "semanticTerms": [
                "connectivity.password"
              ]
            }
          }
        }
      ]
    },
    {
      "format": "java",
      "type": "Object",
      "annotations": {
        "typeId": "com.mulesoft.modules.wss.api.inbound.DecryptionConfig",
        "classInformation": {
          "classname": "com.mulesoft.modules.wss.api.inbound.DecryptionConfig",
          "hasDefaultConstructor": true,
          "isInterface": false,
          "isInstantiable": true,
          "isAbstract": false,
          "isFinal": false,
          "implementedInterfaces": [],
          "parent": "",
          "genericTypes": [],
          "isMap": false
        },
        "typeAlias": {
          "value": "DecryptionConfig"
        }
      },
      "fields": [
        {
          "key": {
            "name": "keystore-config",
            "required": "true"
          },
          "model": {
            "type": "Object",
            "annotations": {
              "typeId": "com.mulesoft.modules.wss.api.store.KeyStoreConfiguration",
              "classInformation": {
                "classname": "com.mulesoft.modules.wss.api.store.KeyStoreConfiguration",
                "hasDefaultConstructor": true,
                "isInterface": false,
                "isInstantiable": true,
                "isAbstract": false,
                "isFinal": false,
                "implementedInterfaces": [],
                "parent": "",
                "genericTypes": [],
                "isMap": false
              },
              "typeDsl": {
                "allowInlineDefinition": true,
                "allowTopLevelDefinition": true
              },
              "typeAlias": {
                "value": "KeyStoreConfiguration"
              },
              "stereotype": {
                "allowedStereotypes": [
                  {
                    "type": "KEY_STORE_CONFIGURATION",
                    "namespace": "WSS"
                  }
                ]
              }
            },
            "fields": [
              {
                "key": {
                  "name": "path",
                  "required": "true"
                },
                "model": {
                  "type": "String"
                },
                "annotations": {
                  "expressionSupport": {
                    "value": "SUPPORTED"
                  },
                  "layout": {
                    "layoutModel": {
                      "password": false,
                      "text": false,
                      "query": false,
                      "order": 0,
                      "tabName": "General"
                    }
                  },
                  "display": {
                    "displayModel": {
                      "summary": "The location of the store file.",
                      "pathModel": {
                        "type": "FILE",
                        "fileExtensions": [],
                        "acceptsUrls": false,
                        "location": "EMBEDDED"
                      }
                    }
                  }
                }
              },
              {
                "key": {
                  "name": "password",
                  "required": "true"
                },
                "model": {
                  "type": "String"
                },
                "annotations": {
                  "expressionSupport": {
                    "value": "SUPPORTED"
                  },
                  "layout": {
                    "layoutModel": {
                      "password": true,
                      "text": false,
                      "query": false,
                      "order": 1,
                      "tabName": "General"
                    }
                  },
                  "display": {
                    "displayModel": {
                      "summary": "The password to access the store."
                    }
                  },
                  "org.mule.runtime.extension.api.declaration.type.annotation.SemanticTermsTypeAnnotation": {
                    "semanticTerms": [
                      "connectivity.password"
                    ]
                  }
                }
              },
              {
                "key": {
                  "name": "alias"
                },
                "model": {
                  "type": "String"
                },
                "annotations": {
                  "expressionSupport": {
                    "value": "SUPPORTED"
                  },
                  "layout": {
                    "layoutModel": {
                      "password": false,
                      "text": false,
                      "query": false,
                      "order": 2,
                      "tabName": "General"
                    }
                  },
                  "display": {
                    "displayModel": {
                      "summary": "The alias of the private key to use."
                    }
                  }
                }
              },
              {
                "key": {
                  "name": "keyPassword"
                },
                "model": {
                  "type": "String"
                },
                "annotations": {
                  "expressionSupport": {
                    "value": "SUPPORTED"
                  },
                  "layout": {
                    "layoutModel": {
                      "password": true,
                      "text": false,
                      "query": false,
                      "order": 3,
                      "tabName": "General"
                    }
                  },
                  "display": {
                    "displayModel": {
                      "summary": "The password used to access the private key."
                    }
                  },
                  "org.mule.runtime.extension.api.declaration.type.annotation.SemanticTermsTypeAnnotation": {
                    "semanticTerms": [
                      "connectivity.password"
                    ]
                  }
                }
              },
              {
                "key": {
                  "name": "type"
                },
                "model": {
                  "type": "String"
                },
                "annotations": {
                  "default": "jks",
                  "expressionSupport": {
                    "value": "SUPPORTED"
                  },
                  "layout": {
                    "layoutModel": {
                      "password": false,
                      "text": false,
                      "query": false,
                      "order": 4,
                      "tabName": "General"
                    }
                  },
                  "display": {
                    "displayModel": {
                      "summary": "The type of store (jks, pkcs12, jceks, or any other)."
                    }
                  }
                }
              }
            ]
          },
          "annotations": {
            "expressionSupport": {
              "value": "NOT_SUPPORTED"
            },
            "display": {
              "displayModel": {
                "displayName": "KeyStore Configuration",
                "summary": "KeyStore configuration used for decryption."
              }
            }
          }
        }
      ]
    },
    {
      "format": "java",
      "type": "Object",
      "annotations": {
        "typeId": "com.mulesoft.modules.wss.api.inbound.LDAPConfig",
        "classInformation": {
          "classname": "com.mulesoft.modules.wss.api.inbound.LDAPConfig",
          "hasDefaultConstructor": true,
          "isInterface": false,
          "isInstantiable": true,
          "isAbstract": false,
          "isFinal": false,
          "implementedInterfaces": [
            "com.mulesoft.modules.wss.api.inbound.AuthenticateUserConfig"
          ],
          "parent": "",
          "genericTypes": [],
          "isMap": false
        },
        "typeAlias": {
          "value": "LDAPConfig"
        }
      },
      "fields": [
        {
          "key": {
            "name": "providerUrl",
            "required": "true"
          },
          "model": {
            "type": "String"
          },
          "annotations": {
            "expressionSupport": {
              "value": "SUPPORTED"
            },
            "display": {
              "displayModel": {
                "summary": "LDAP Server URL"
              }
            }
          }
        },
        {
          "key": {
            "name": "userDn",
            "required": "true"
          },
          "model": {
            "type": "String"
          },
          "annotations": {
            "expressionSupport": {
              "value": "SUPPORTED"
            },
            "display": {
              "displayModel": {
                "summary": "User that will authenticate to the directory."
              }
            }
          }
        },
        {
          "key": {
            "name": "password",
            "required": "true"
          },
          "model": {
            "type": "String"
          },
          "annotations": {
            "expressionSupport": {
              "value": "SUPPORTED"
            },
            "display": {
              "displayModel": {
                "summary": "Credentials to use for getting authenticated contexts."
              }
            }
          }
        },
        {
          "key": {
            "name": "searchBase",
            "required": "true"
          },
          "model": {
            "type": "String"
          },
          "annotations": {
            "expressionSupport": {
              "value": "SUPPORTED"
            },
            "display": {
              "displayModel": {
                "summary": "Starting point for the search in the directory tree."
              }
            }
          }
        },
        {
          "key": {
            "name": "searchFilter",
            "required": "true"
          },
          "model": {
            "type": "String"
          },
          "annotations": {
            "expressionSupport": {
              "value": "SUPPORTED"
            },
            "display": {
              "displayModel": {
                "summary": "Used to restrict the numbers of users or groups that are permitted to access an application."
              }
            }
          }
        },
        {
          "key": {
            "name": "searchInSubtree"
          },
          "model": {
            "type": "Boolean",
            "annotations": {
              "typeId": "boolean"
            }
          },
          "annotations": {
            "default": "false",
            "expressionSupport": {
              "value": "NOT_SUPPORTED"
            },
            "display": {
              "displayModel": {
                "summary": "Whether to search in subtree."
              }
            }
          }
        }
      ]
    },
    {
      "format": "java",
      "type": "Object",
      "annotations": {
        "typeId": "com.mulesoft.modules.wss.api.inbound.VerifySamlConfig",
        "classInformation": {
          "classname": "com.mulesoft.modules.wss.api.inbound.VerifySamlConfig",
          "hasDefaultConstructor": true,
          "isInterface": false,
          "isInstantiable": true,
          "isAbstract": false,
          "isFinal": false,
          "implementedInterfaces": [],
          "parent": "",
          "genericTypes": [],
          "isMap": false
        },
        "typeAlias": {
          "value": "VerifySamlConfig"
        }
      },
      "fields": [
        {
          "key": {
            "name": "samlVersion"
          },
          "model": {
            "type": "String",
            "annotations": {
              "typeId": "com.mulesoft.modules.wss.api.constants.SamlVersion",
              "enum": {
                "type": "[Ljava.lang.String;",
                "values": [
                  "SAML10",
                  "SAML11",
                  "SAML20"
                ]
              },
              "classInformation": {
                "classname": "com.mulesoft.modules.wss.api.constants.SamlVersion",
                "hasDefaultConstructor": false,
                "isInterface": false,
                "isInstantiable": false,
                "isAbstract": false,
                "isFinal": true,
                "implementedInterfaces": [],
                "parent": "java.lang.Enum",
                "genericTypes": [],
                "isMap": false
              }
            }
          },
          "annotations": {
            "default": "SAML10",
            "expressionSupport": {
              "value": "NOT_SUPPORTED"
            },
            "display": {
              "displayModel": {
                "summary": "SAML Version."
              }
            }
          }
        },
        {
          "key": {
            "name": "timeToLive"
          },
          "model": {
            "type": "Number",
            "annotations": {
              "classInformation": {
                "classname": "java.lang.Integer",
                "hasDefaultConstructor": false,
                "isInterface": false,
                "isInstantiable": false,
                "isAbstract": false,
                "isFinal": true,
                "implementedInterfaces": [],
                "parent": "java.lang.Number",
                "genericTypes": [],
                "isMap": false
              },
              "int": {}
            }
          },
          "annotations": {
            "default": "1800",
            "expressionSupport": {
              "value": "NOT_SUPPORTED"
            },
            "display": {
              "displayModel": {
                "summary": "The time in seconds within which a SAML Assertion is valid, if it does not contain a NotOnOrAfter Condition. The default is 30 minutes."
              }
            }
          }
        },
        {
          "key": {
            "name": "skewTime"
          },
          "model": {
            "type": "Number",
            "annotations": {
              "classInformation": {
                "classname": "java.lang.Integer",
                "hasDefaultConstructor": false,
                "isInterface": false,
                "isInstantiable": false,
                "isAbstract": false,
                "isFinal": true,
                "implementedInterfaces": [],
                "parent": "java.lang.Number",
                "genericTypes": [],
                "isMap": false
              },
              "int": {}
            }
          },
          "annotations": {
            "default": "60",
            "expressionSupport": {
              "value": "NOT_SUPPORTED"
            },
            "display": {
              "displayModel": {
                "summary": "The time difference between server and client. The default is 60 seconds."
              }
            }
          }
        },
        {
          "key": {
            "name": "timeUnit"
          },
          "model": {
            "type": "String",
            "annotations": {
              "typeId": "java.util.concurrent.TimeUnit",
              "enum": {
                "type": "[Ljava.lang.String;",
                "values": [
                  "NANOSECONDS",
                  "MICROSECONDS",
                  "MILLISECONDS",
                  "SECONDS",
                  "MINUTES",
                  "HOURS",
                  "DAYS"
                ]
              },
              "classInformation": {
                "classname": "java.util.concurrent.TimeUnit",
                "hasDefaultConstructor": false,
                "isInterface": false,
                "isInstantiable": false,
                "isAbstract": false,
                "isFinal": true,
                "implementedInterfaces": [],
                "parent": "java.lang.Enum",
                "genericTypes": [],
                "isMap": false
              }
            }
          },
          "annotations": {
            "default": "SECONDS",
            "expressionSupport": {
              "value": "SUPPORTED"
            },
            "display": {
              "displayModel": {
                "summary": "Time unit to be used in the timeToLive and skewTime configuration."
              }
            }
          }
        },
        {
          "key": {
            "name": "requireStandardSubjectConfirmationMethod"
          },
          "model": {
            "type": "Boolean",
            "annotations": {
              "typeId": "boolean"
            }
          },
          "annotations": {
            "default": "false",
            "expressionSupport": {
              "value": "NOT_SUPPORTED"
            },
            "display": {
              "displayModel": {
                "summary": "If set, at least one of the standard Subject Confirmation Methods must be present in the assertion."
              }
            }
          }
        },
        {
          "key": {
            "name": "requireBearerSignature"
          },
          "model": {
            "type": "Boolean",
            "annotations": {
              "typeId": "boolean"
            }
          },
          "annotations": {
            "default": "false",
            "expressionSupport": {
              "value": "NOT_SUPPORTED"
            },
            "display": {
              "displayModel": {
                "summary": "If set, an Assertion with a Bearer Subject Confirmation Method must be signed."
              }
            }
          }
        },
        {
          "key": {
            "name": "validateSignatureAgainstProfile"
          },
          "model": {
            "type": "Boolean",
            "annotations": {
              "typeId": "boolean"
            }
          },
          "annotations": {
            "default": "false",
            "expressionSupport": {
              "value": "NOT_SUPPORTED"
            },
            "display": {
              "displayModel": {
                "summary": "Whether to validate the signature of the Assertion against the relevant profile. Default is true."
              }
            }
          }
        },
        {
          "key": {
            "name": "requiredSubjectConfirmationMethod"
          },
          "model": {
            "type": "String",
            "annotations": {
              "typeId": "com.mulesoft.modules.wss.api.constants.SamlConfirmationMethod",
              "enum": {
                "type": "[Ljava.lang.String;",
                "values": [
                  "BEARER",
                  "HOLDER_OF_KEY",
                  "SENDER_VOUCHES"
                ]
              },
              "classInformation": {
                "classname": "com.mulesoft.modules.wss.api.constants.SamlConfirmationMethod",
                "hasDefaultConstructor": false,
                "isInterface": false,
                "isInstantiable": false,
                "isAbstract": false,
                "isFinal": true,
                "implementedInterfaces": [],
                "parent": "java.lang.Enum",
                "genericTypes": [],
                "isMap": false
              }
            }
          },
          "annotations": {
            "expressionSupport": {
              "value": "NOT_SUPPORTED"
            },
            "display": {
              "displayModel": {
                "summary": "If set, the value must appear as one of the Subject Confirmation Methods."
              }
            }
          }
        }
      ]
    },
    {
      "format": "java",
      "type": "Object",
      "annotations": {
        "typeId": "com.mulesoft.modules.wss.api.inbound.VerifySignatureConfig",
        "classInformation": {
          "classname": "com.mulesoft.modules.wss.api.inbound.VerifySignatureConfig",
          "hasDefaultConstructor": true,
          "isInterface": false,
          "isInstantiable": true,
          "isAbstract": false,
          "isFinal": false,
          "implementedInterfaces": [],
          "parent": "",
          "genericTypes": [],
          "isMap": false
        },
        "typeAlias": {
          "value": "VerifySignatureConfig"
        }
      },
      "fields": [
        {
          "key": {
            "name": "truststore-config",
            "required": "true"
          },
          "model": {
            "type": "Object",
            "annotations": {
              "typeId": "com.mulesoft.modules.wss.api.store.TrustStoreConfiguration",
              "classInformation": {
                "classname": "com.mulesoft.modules.wss.api.store.TrustStoreConfiguration",
                "hasDefaultConstructor": true,
                "isInterface": false,
                "isInstantiable": true,
                "isAbstract": false,
                "isFinal": false,
                "implementedInterfaces": [],
                "parent": "",
                "genericTypes": [],
                "isMap": false
              },
              "typeDsl": {
                "allowInlineDefinition": true,
                "allowTopLevelDefinition": true
              },
              "typeAlias": {
                "value": "TrustStoreConfiguration"
              },
              "stereotype": {
                "allowedStereotypes": [
                  {
                    "type": "TRUST_STORE_CONFIGURATION",
                    "namespace": "WSS"
                  }
                ]
              }
            },
            "fields": [
              {
                "key": {
                  "name": "path",
                  "required": "true"
                },
                "model": {
                  "type": "String"
                },
                "annotations": {
                  "expressionSupport": {
                    "value": "SUPPORTED"
                  },
                  "layout": {
                    "layoutModel": {
                      "password": false,
                      "text": false,
                      "query": false,
                      "order": 0,
                      "tabName": "General"
                    }
                  },
                  "display": {
                    "displayModel": {
                      "summary": "The location of the store file.",
                      "pathModel": {
                        "type": "FILE",
                        "fileExtensions": [],
                        "acceptsUrls": false,
                        "location": "EMBEDDED"
                      }
                    }
                  }
                }
              },
              {
                "key": {
                  "name": "password",
                  "required": "true"
                },
                "model": {
                  "type": "String"
                },
                "annotations": {
                  "expressionSupport": {
                    "value": "SUPPORTED"
                  },
                  "layout": {
                    "layoutModel": {
                      "password": true,
                      "text": false,
                      "query": false,
                      "order": 1,
                      "tabName": "General"
                    }
                  },
                  "display": {
                    "displayModel": {
                      "summary": "The password to access the store."
                    }
                  },
                  "org.mule.runtime.extension.api.declaration.type.annotation.SemanticTermsTypeAnnotation": {
                    "semanticTerms": [
                      "connectivity.password"
                    ]
                  }
                }
              },
              {
                "key": {
                  "name": "type"
                },
                "model": {
                  "type": "String"
                },
                "annotations": {
                  "default": "jks",
                  "expressionSupport": {
                    "value": "SUPPORTED"
                  },
                  "layout": {
                    "layoutModel": {
                      "password": false,
                      "text": false,
                      "query": false,
                      "order": 4,
                      "tabName": "General"
                    }
                  },
                  "display": {
                    "displayModel": {
                      "summary": "The type of store (jks, pkcs12, jceks, or any other)."
                    }
                  }
                }
              }
            ]
          },
          "annotations": {
            "expressionSupport": {
              "value": "NOT_SUPPORTED"
            },
            "display": {
              "displayModel": {
                "displayName": "TrustStore Configuration",
                "summary": "TrustStore configuration used for validating the signature."
              }
            }
          }
        },
        {
          "key": {
            "name": "issuerPattern"
          },
          "model": {
            "type": "String"
          },
          "annotations": {
            "expressionSupport": {
              "value": "SUPPORTED"
            },
            "display": {
              "displayModel": {
                "summary": "Certificate Issuer pattern.",
                "example": "CN\u003dMulesoft.*"
              }
            }
          }
        },
        {
          "key": {
            "name": "subjectPattern"
          },
          "model": {
            "type": "String"
          },
          "annotations": {
            "expressionSupport": {
              "value": "SUPPORTED"
            },
            "display": {
              "displayModel": {
                "summary": "Certificate Subject pattern.",
                "example": "CN\u003dMulesoft.*"
              }
            }
          }
        }
      ]
    },
    {
      "format": "java",
      "type": "Object",
      "annotations": {
        "typeId": "com.mulesoft.modules.wss.api.inbound.VerifyTimestampConfig",
        "classInformation": {
          "classname": "com.mulesoft.modules.wss.api.inbound.VerifyTimestampConfig",
          "hasDefaultConstructor": true,
          "isInterface": false,
          "isInstantiable": true,
          "isAbstract": false,
          "isFinal": false,
          "implementedInterfaces": [],
          "parent": "",
          "genericTypes": [],
          "isMap": false
        },
        "typeAlias": {
          "value": "VerifyTimestampConfig"
        }
      },
      "fields": [
        {
          "key": {
            "name": "timeToLive"
          },
          "model": {
            "type": "Number",
            "annotations": {
              "classInformation": {
                "classname": "java.lang.Integer",
                "hasDefaultConstructor": false,
                "isInterface": false,
                "isInstantiable": false,
                "isAbstract": false,
                "isFinal": true,
                "implementedInterfaces": [],
                "parent": "java.lang.Number",
                "genericTypes": [],
                "isMap": false
              },
              "int": {}
            }
          },
          "annotations": {
            "default": "300",
            "expressionSupport": {
              "value": "NOT_SUPPORTED"
            },
            "display": {
              "displayModel": {
                "summary": "The time within which the Timestamp element is valid. The default is 5 minutes."
              }
            }
          }
        },
        {
          "key": {
            "name": "skewTime"
          },
          "model": {
            "type": "Number",
            "annotations": {
              "classInformation": {
                "classname": "java.lang.Integer",
                "hasDefaultConstructor": false,
                "isInterface": false,
                "isInstantiable": false,
                "isAbstract": false,
                "isFinal": true,
                "implementedInterfaces": [],
                "parent": "java.lang.Number",
                "genericTypes": [],
                "isMap": false
              },
              "int": {}
            }
          },
          "annotations": {
            "default": "60",
            "expressionSupport": {
              "value": "NOT_SUPPORTED"
            },
            "display": {
              "displayModel": {
                "summary": "The time difference between server and client. The default is 60 seconds."
              }
            }
          }
        },
        {
          "key": {
            "name": "timeUnit"
          },
          "model": {
            "type": "String",
            "annotations": {
              "typeId": "java.util.concurrent.TimeUnit",
              "enum": {
                "type": "[Ljava.lang.String;",
                "values": [
                  "NANOSECONDS",
                  "MICROSECONDS",
                  "MILLISECONDS",
                  "SECONDS",
                  "MINUTES",
                  "HOURS",
                  "DAYS"
                ]
              },
              "classInformation": {
                "classname": "java.util.concurrent.TimeUnit",
                "hasDefaultConstructor": false,
                "isInterface": false,
                "isInstantiable": false,
                "isAbstract": false,
                "isFinal": true,
                "implementedInterfaces": [],
                "parent": "java.lang.Enum",
                "genericTypes": [],
                "isMap": false
              }
            }
          },
          "annotations": {
            "default": "SECONDS",
            "expressionSupport": {
              "value": "SUPPORTED"
            },
            "display": {
              "displayModel": {
                "summary": "Time unit to be used in the timeToLive configuration."
              }
            }
          }
        },
        {
          "key": {
            "name": "Strict"
          },
          "model": {
            "type": "Boolean",
            "annotations": {
              "typeId": "boolean"
            }
          },
          "annotations": {
            "default": "true",
            "expressionSupport": {
              "value": "NOT_SUPPORTED"
            },
            "display": {
              "displayModel": {
                "summary": "If set to true then validates if the timestamp contains an expires element and the semantics are expired."
              }
            }
          }
        },
        {
          "key": {
            "name": "requireExpiresHeader"
          },
          "model": {
            "type": "Boolean",
            "annotations": {
              "typeId": "boolean"
            }
          },
          "annotations": {
            "default": "true",
            "expressionSupport": {
              "value": "NOT_SUPPORTED"
            },
            "display": {
              "displayModel": {
                "summary": "Whether a timestamp Expires header is required."
              }
            }
          }
        },
        {
          "key": {
            "name": "precisionInMilliseconds"
          },
          "model": {
            "type": "Boolean",
            "annotations": {
              "typeId": "boolean"
            }
          },
          "annotations": {
            "default": "true",
            "expressionSupport": {
              "value": "NOT_SUPPORTED"
            },
            "display": {
              "displayModel": {
                "summary": "If set to true then use timestamps with milliseconds, otherwise omit the milliseconds."
              }
            }
          }
        }
      ]
    },
    {
      "format": "java",
      "type": "Object",
      "annotations": {
        "typeId": "com.mulesoft.modules.wss.api.inbound.VerifyUsernameTokenConfig",
        "classInformation": {
          "classname": "com.mulesoft.modules.wss.api.inbound.VerifyUsernameTokenConfig",
          "hasDefaultConstructor": true,
          "isInterface": false,
          "isInstantiable": true,
          "isAbstract": false,
          "isFinal": false,
          "implementedInterfaces": [],
          "parent": "",
          "genericTypes": [],
          "isMap": false
        },
        "typeAlias": {
          "value": "VerifyUsernameTokenConfig"
        }
      },
      "fields": [
        {
          "key": {
            "name": "authenticateUserConfig",
            "required": "true"
          },
          "model": {
            "type": "Object",
            "annotations": {
              "typeId": "com.mulesoft.modules.wss.api.inbound.AuthenticateUserConfig",
              "classInformation": {
                "classname": "com.mulesoft.modules.wss.api.inbound.AuthenticateUserConfig",
                "hasDefaultConstructor": false,
                "isInterface": true,
                "isInstantiable": false,
                "isAbstract": true,
                "isFinal": false,
                "implementedInterfaces": [],
                "parent": "",
                "genericTypes": [],
                "isMap": false
              },
              "typeAlias": {
                "value": "AuthenticateUserConfig"
              },
              "stereotype": {
                "allowedStereotypes": [
                  {
                    "type": "AUTHENTICATE_USER_CONFIG",
                    "namespace": "WSS"
                  }
                ]
              }
            },
            "fields": []
          },
          "annotations": {
            "expressionSupport": {
              "value": "NOT_SUPPORTED"
            },
            "parameterDsl": {
              "allowInlineDefinition": true,
              "allowReferences": false
            },
            "display": {
              "displayModel": {
                "summary": "Specific type for the authentication configuration."
              }
            }
          }
        },
        {
          "key": {
            "name": "timeToLive"
          },
          "model": {
            "type": "Number",
            "annotations": {
              "classInformation": {
                "classname": "java.lang.Integer",
                "hasDefaultConstructor": false,
                "isInterface": false,
                "isInstantiable": false,
                "isAbstract": false,
                "isFinal": true,
                "implementedInterfaces": [],
                "parent": "java.lang.Number",
                "genericTypes": [],
                "isMap": false
              },
              "int": {}
            }
          },
          "annotations": {
            "default": "30",
            "expressionSupport": {
              "value": "NOT_SUPPORTED"
            },
            "display": {
              "displayModel": {
                "summary": "The time difference between creation and expiry time in seconds in the UsernameToken Created element."
              }
            }
          }
        },
        {
          "key": {
            "name": "checkNonce"
          },
          "model": {
            "type": "Boolean",
            "annotations": {
              "typeId": "boolean"
            }
          },
          "annotations": {
            "default": "true",
            "expressionSupport": {
              "value": "NOT_SUPPORTED"
            },
            "display": {
              "displayModel": {
                "summary": "Whether to check the Nonce Element in the UsernameToken."
              }
            }
          }
        }
      ]
    },
    {
      "format": "java",
      "type": "Object",
      "annotations": {
        "typeId": "com.mulesoft.modules.wss.api.outbound.EncryptionConfig",
        "classInformation": {
          "classname": "com.mulesoft.modules.wss.api.outbound.EncryptionConfig",
          "hasDefaultConstructor": true,
          "isInterface": false,
          "isInstantiable": true,
          "isAbstract": false,
          "isFinal": false,
          "implementedInterfaces": [],
          "parent": "com.mulesoft.modules.wss.api.outbound.BaseOutboundConfig",
          "genericTypes": [],
          "isMap": false
        },
        "typeAlias": {
          "value": "EncryptionConfig"
        }
      },
      "fields": [
        {
          "key": {
            "name": "encryptionKeyIdentifier"
          },
          "model": {
            "type": "String",
            "annotations": {
              "typeId": "com.mulesoft.modules.wss.api.constants.EncryptionKeyIdentifierConstants",
              "enum": {
                "type": "[Ljava.lang.String;",
                "values": [
                  "ISSUER_SERIAL",
                  "DIRECT_REFERENCE",
                  "X509_KEY_IDENTIFIER",
                  "THUMBPRINT",
                  "SKI_KEY_IDENTIFIER",
                  "ENCRYPTED_KEY_SHA1"
                ]
              },
              "classInformation": {
                "classname": "com.mulesoft.modules.wss.api.constants.EncryptionKeyIdentifierConstants",
                "hasDefaultConstructor": false,
                "isInterface": false,
                "isInstantiable": false,
                "isAbstract": false,
                "isFinal": true,
                "implementedInterfaces": [],
                "parent": "java.lang.Enum",
                "genericTypes": [],
                "isMap": false
              }
            }
          },
          "annotations": {
            "default": "ISSUER_SERIAL",
            "expressionSupport": {
              "value": "NOT_SUPPORTED"
            },
            "display": {
              "displayModel": {
                "summary": "The key identifier type to use for encryption."
              }
            }
          }
        },
        {
          "key": {
            "name": "encryptionSymAlgorithm"
          },
          "model": {
            "type": "String",
            "annotations": {
              "typeId": "com.mulesoft.modules.wss.api.constants.EncryptionSymAlgorithmConstants",
              "enum": {
                "type": "[Ljava.lang.String;",
                "values": [
                  "TRIPLE_DES",
                  "AES_128",
                  "AES_256",
                  "AES_192",
                  "AES_128_GCM",
                  "AES_192_GCM",
                  "AES_256_GCM"
                ]
              },
              "classInformation": {
                "classname": "com.mulesoft.modules.wss.api.constants.EncryptionSymAlgorithmConstants",
                "hasDefaultConstructor": false,
                "isInterface": false,
                "isInstantiable": false,
                "isAbstract": false,
                "isFinal": true,
                "implementedInterfaces": [],
                "parent": "java.lang.Enum",
                "genericTypes": [],
                "isMap": false
              }
            }
          },
          "annotations": {
            "default": "AES_128",
            "expressionSupport": {
              "value": "NOT_SUPPORTED"
            },
            "display": {
              "displayModel": {
                "summary": "The symmetric encryption algorithm to use."
              }
            }
          }
        },
        {
          "key": {
            "name": "encryptionKeyTransportAlgorithm"
          },
          "model": {
            "type": "String",
            "annotations": {
              "typeId": "com.mulesoft.modules.wss.api.constants.EncryptionKeyTransportAlgorithmConstants",
              "enum": {
                "type": "[Ljava.lang.String;",
                "values": [
                  "KEYTRANSPORT_RSA15",
                  "KEYTRANSPORT_RSAOAEP",
                  "KEYTRANSPORT_RSAOAEP_XENC11"
                ]
              },
              "classInformation": {
                "classname": "com.mulesoft.modules.wss.api.constants.EncryptionKeyTransportAlgorithmConstants",
                "hasDefaultConstructor": false,
                "isInterface": false,
                "isInstantiable": false,
                "isAbstract": false,
                "isFinal": true,
                "implementedInterfaces": [],
                "parent": "java.lang.Enum",
                "genericTypes": [],
                "isMap": false
              }
            }
          },
          "annotations": {
            "default": "KEYTRANSPORT_RSAOAEP",
            "expressionSupport": {
              "value": "NOT_SUPPORTED"
            },
            "display": {
              "displayModel": {
                "summary": "The algorithm used to encrypt the generated symmetric key."
              }
            }
          }
        },
        {
          "key": {
            "name": "encryptionDigestAlgorithm"
          },
          "model": {
            "type": "String",
            "annotations": {
              "typeId": "com.mulesoft.modules.wss.api.constants.EncryptionDigestAlgorithmConstants",
              "enum": {
                "type": "[Ljava.lang.String;",
                "values": [
                  "SHA1",
                  "SHA256",
                  "SHA384",
                  "SHA512"
                ]
              },
              "classInformation": {
                "classname": "com.mulesoft.modules.wss.api.constants.EncryptionDigestAlgorithmConstants",
                "hasDefaultConstructor": false,
                "isInterface": false,
                "isInstantiable": false,
                "isAbstract": false,
                "isFinal": true,
                "implementedInterfaces": [],
                "parent": "java.lang.Enum",
                "genericTypes": [],
                "isMap": false
              }
            }
          },
          "annotations": {
            "expressionSupport": {
              "value": "NOT_SUPPORTED"
            },
            "display": {
              "displayModel": {
                "summary": "The encryption digest algorithm to use with the key transport algorithm."
              }
            }
          }
        },
        {
          "key": {
            "name": "keystore-config"
          },
          "model": {
            "type": "Object",
            "annotations": {
              "typeId": "com.mulesoft.modules.wss.api.store.KeyStoreConfiguration",
              "classInformation": {
                "classname": "com.mulesoft.modules.wss.api.store.KeyStoreConfiguration",
                "hasDefaultConstructor": true,
                "isInterface": false,
                "isInstantiable": true,
                "isAbstract": false,
                "isFinal": false,
                "implementedInterfaces": [],
                "parent": "",
                "genericTypes": [],
                "isMap": false
              },
              "typeDsl": {
                "allowInlineDefinition": true,
                "allowTopLevelDefinition": true
              },
              "typeAlias": {
                "value": "KeyStoreConfiguration"
              },
              "stereotype": {
                "allowedStereotypes": [
                  {
                    "type": "KEY_STORE_CONFIGURATION",
                    "namespace": "WSS"
                  }
                ]
              }
            },
            "fields": [
              {
                "key": {
                  "name": "path",
                  "required": "true"
                },
                "model": {
                  "type": "String"
                },
                "annotations": {
                  "expressionSupport": {
                    "value": "SUPPORTED"
                  },
                  "layout": {
                    "layoutModel": {
                      "password": false,
                      "text": false,
                      "query": false,
                      "order": 0,
                      "tabName": "General"
                    }
                  },
                  "display": {
                    "displayModel": {
                      "summary": "The location of the store file.",
                      "pathModel": {
                        "type": "FILE",
                        "fileExtensions": [],
                        "acceptsUrls": false,
                        "location": "EMBEDDED"
                      }
                    }
                  }
                }
              },
              {
                "key": {
                  "name": "password",
                  "required": "true"
                },
                "model": {
                  "type": "String"
                },
                "annotations": {
                  "expressionSupport": {
                    "value": "SUPPORTED"
                  },
                  "layout": {
                    "layoutModel": {
                      "password": true,
                      "text": false,
                      "query": false,
                      "order": 1,
                      "tabName": "General"
                    }
                  },
                  "display": {
                    "displayModel": {
                      "summary": "The password to access the store."
                    }
                  },
                  "org.mule.runtime.extension.api.declaration.type.annotation.SemanticTermsTypeAnnotation": {
                    "semanticTerms": [
                      "connectivity.password"
                    ]
                  }
                }
              },
              {
                "key": {
                  "name": "alias"
                },
                "model": {
                  "type": "String"
                },
                "annotations": {
                  "expressionSupport": {
                    "value": "SUPPORTED"
                  },
                  "layout": {
                    "layoutModel": {
                      "password": false,
                      "text": false,
                      "query": false,
                      "order": 2,
                      "tabName": "General"
                    }
                  },
                  "display": {
                    "displayModel": {
                      "summary": "The alias of the private key to use."
                    }
                  }
                }
              },
              {
                "key": {
                  "name": "keyPassword"
                },
                "model": {
                  "type": "String"
                },
                "annotations": {
                  "expressionSupport": {
                    "value": "SUPPORTED"
                  },
                  "layout": {
                    "layoutModel": {
                      "password": true,
                      "text": false,
                      "query": false,
                      "order": 3,
                      "tabName": "General"
                    }
                  },
                  "display": {
                    "displayModel": {
                      "summary": "The password used to access the private key."
                    }
                  },
                  "org.mule.runtime.extension.api.declaration.type.annotation.SemanticTermsTypeAnnotation": {
                    "semanticTerms": [
                      "connectivity.password"
                    ]
                  }
                }
              },
              {
                "key": {
                  "name": "type"
                },
                "model": {
                  "type": "String"
                },
                "annotations": {
                  "default": "jks",
                  "expressionSupport": {
                    "value": "SUPPORTED"
                  },
                  "layout": {
                    "layoutModel": {
                      "password": false,
                      "text": false,
                      "query": false,
                      "order": 4,
                      "tabName": "General"
                    }
                  },
                  "display": {
                    "displayModel": {
                      "summary": "The type of store (jks, pkcs12, jceks, or any other)."
                    }
                  }
                }
              }
            ]
          },
          "annotations": {
            "expressionSupport": {
              "value": "NOT_SUPPORTED"
            },
            "display": {
              "displayModel": {
                "displayName": "KeyStore Configuration",
                "summary": "KeyStore configuration used for encryption."
              }
            }
          }
        },
        {
          "key": {
            "name": "wssParts"
          },
          "model": {
            "type": "Array",
            "annotations": {
              "classInformation": {
                "classname": "java.util.List",
                "hasDefaultConstructor": false,
                "isInterface": true,
                "isInstantiable": false,
                "isAbstract": true,
                "isFinal": false,
                "implementedInterfaces": [],
                "parent": "",
                "genericTypes": [
                  "com.mulesoft.modules.wss.api.outbound.MessagePart"
                ],
                "isMap": false
              }
            },
            "item": {
              "type": "Object",
              "annotations": {
                "typeId": "com.mulesoft.modules.wss.api.outbound.MessagePart",
                "classInformation": {
                  "classname": "com.mulesoft.modules.wss.api.outbound.MessagePart",
                  "hasDefaultConstructor": true,
                  "isInterface": false,
                  "isInstantiable": true,
                  "isAbstract": false,
                  "isFinal": false,
                  "implementedInterfaces": [],
                  "parent": "",
                  "genericTypes": [],
                  "isMap": false
                },
                "typeAlias": {
                  "value": "wss-part"
                }
              },
              "fields": [
                {
                  "key": {
                    "name": "encode"
                  },
                  "model": {
                    "type": "String",
                    "annotations": {
                      "typeId": "com.mulesoft.modules.wss.api.constants.SignEncodeConstants",
                      "enum": {
                        "type": "[Ljava.lang.String;",
                        "values": [
                          "ELEMENT",
                          "CONTENT"
                        ]
                      },
                      "classInformation": {
                        "classname": "com.mulesoft.modules.wss.api.constants.SignEncodeConstants",
                        "hasDefaultConstructor": false,
                        "isInterface": false,
                        "isInstantiable": false,
                        "isAbstract": false,
                        "isFinal": true,
                        "implementedInterfaces": [],
                        "parent": "java.lang.Enum",
                        "genericTypes": [],
                        "isMap": false
                      }
                    }
                  },
                  "annotations": {
                    "default": "CONTENT",
                    "expressionSupport": {
                      "value": "NOT_SUPPORTED"
                    },
                    "display": {
                      "displayModel": {
                        "summary": "Constant that indicates whether to sign an Element or a Content."
                      }
                    }
                  }
                },
                {
                  "key": {
                    "name": "namespace",
                    "required": "true"
                  },
                  "model": {
                    "type": "String"
                  },
                  "annotations": {
                    "expressionSupport": {
                      "value": "NOT_SUPPORTED"
                    },
                    "display": {
                      "displayModel": {
                        "summary": "Element namespace."
                      }
                    }
                  }
                },
                {
                  "key": {
                    "name": "localname",
                    "required": "true"
                  },
                  "model": {
                    "type": "String"
                  },
                  "annotations": {
                    "expressionSupport": {
                      "value": "NOT_SUPPORTED"
                    },
                    "display": {
                      "displayModel": {
                        "summary": "Element localname."
                      }
                    }
                  }
                }
              ]
            }
          },
          "annotations": {
            "expressionSupport": {
              "value": "NOT_SUPPORTED"
            },
            "display": {
              "displayModel": {
                "displayName": "Parts",
                "summary": "Lists of parts to be encrypted. If any part is specified, the SOAP Body will be encrypted."
              }
            }
          }
        }
      ]
    },
    {
      "format": "java",
      "type": "Object",
      "annotations": {
        "typeId": "com.mulesoft.modules.wss.api.outbound.SignatureConfig",
        "classInformation": {
          "classname": "com.mulesoft.modules.wss.api.outbound.SignatureConfig",
          "hasDefaultConstructor": true,
          "isInterface": false,
          "isInstantiable": true,
          "isAbstract": false,
          "isFinal": false,
          "implementedInterfaces": [],
          "parent": "com.mulesoft.modules.wss.api.outbound.BaseOutboundConfig",
          "genericTypes": [],
          "isMap": false
        },
        "typeAlias": {
          "value": "SignatureConfig"
        }
      },
      "fields": [
        {
          "key": {
            "name": "keyIdentifier"
          },
          "model": {
            "type": "String",
            "annotations": {
              "typeId": "com.mulesoft.modules.wss.api.constants.SignatureKeyIdentifierConstants",
              "enum": {
                "type": "[Ljava.lang.String;",
                "values": [
                  "ISSUER_SERIAL",
                  "DIRECT_REFERENCE",
                  "X509_KEY_IDENTIFIER",
                  "THUMBPRINT",
                  "SKI_KEY_IDENTIFIER",
                  "KEY_VALUE"
                ]
              },
              "classInformation": {
                "classname": "com.mulesoft.modules.wss.api.constants.SignatureKeyIdentifierConstants",
                "hasDefaultConstructor": false,
                "isInterface": false,
                "isInstantiable": false,
                "isAbstract": false,
                "isFinal": true,
                "implementedInterfaces": [],
                "parent": "java.lang.Enum",
                "genericTypes": [],
                "isMap": false
              }
            }
          },
          "annotations": {
            "default": "ISSUER_SERIAL",
            "expressionSupport": {
              "value": "NOT_SUPPORTED"
            },
            "display": {
              "displayModel": {
                "summary": "The key identifier type to use for signature."
              }
            }
          }
        },
        {
          "key": {
            "name": "algorithm"
          },
          "model": {
            "type": "String",
            "annotations": {
              "typeId": "com.mulesoft.modules.wss.api.constants.SignatureAlgorithmConstants",
              "enum": {
                "type": "[Ljava.lang.String;",
                "values": [
                  "RSAwithSHA256",
                  "ECDSAwithSHA256",
                  "DSAwithSHA1",
                  "RSAwithSHA1",
                  "RSAwithSHA224",
                  "RSAwithSHA384",
                  "RSAwithSHA512",
                  "ECDSAwithSHA1",
                  "ECDSAwithSHA224",
                  "ECDSAwithSHA384",
                  "ECDSAwithSHA512",
                  "DSAwithSHA256"
                ]
              },
              "classInformation": {
                "classname": "com.mulesoft.modules.wss.api.constants.SignatureAlgorithmConstants",
                "hasDefaultConstructor": false,
                "isInterface": false,
                "isInstantiable": false,
                "isAbstract": false,
                "isFinal": true,
                "implementedInterfaces": [],
                "parent": "java.lang.Enum",
                "genericTypes": [],
                "isMap": false
              }
            }
          },
          "annotations": {
            "expressionSupport": {
              "value": "NOT_SUPPORTED"
            },
            "display": {
              "displayModel": {
                "summary": "The signature algorithm to use. The default is set by the data in the certificate."
              }
            }
          }
        },
        {
          "key": {
            "name": "digestAlgorithm"
          },
          "model": {
            "type": "String",
            "annotations": {
              "typeId": "com.mulesoft.modules.wss.api.constants.SignatureDigestAlgorithmConstants",
              "enum": {
                "type": "[Ljava.lang.String;",
                "values": [
                  "SHA1",
                  "SHA256",
                  "SHA224",
                  "SHA384",
                  "SHA512"
                ]
              },
              "classInformation": {
                "classname": "com.mulesoft.modules.wss.api.constants.SignatureDigestAlgorithmConstants",
                "hasDefaultConstructor": false,
                "isInterface": false,
                "isInstantiable": false,
                "isAbstract": false,
                "isFinal": true,
                "implementedInterfaces": [],
                "parent": "java.lang.Enum",
                "genericTypes": [],
                "isMap": false
              }
            }
          },
          "annotations": {
            "default": "SHA1",
            "expressionSupport": {
              "value": "NOT_SUPPORTED"
            },
            "display": {
              "displayModel": {
                "summary": "The signature digest algorithm to use."
              }
            }
          }
        },
        {
          "key": {
            "name": "c14nAlgorithm"
          },
          "model": {
            "type": "String",
            "annotations": {
              "typeId": "com.mulesoft.modules.wss.api.constants.SignatureC14nAlgorithmConstants",
              "enum": {
                "type": "[Ljava.lang.String;",
                "values": [
                  "CanonicalXML_1_0",
                  "CanonicalXML_1_1",
                  "ExclusiveXMLCanonicalization_1_0"
                ]
              },
              "classInformation": {
                "classname": "com.mulesoft.modules.wss.api.constants.SignatureC14nAlgorithmConstants",
                "hasDefaultConstructor": false,
                "isInterface": false,
                "isInstantiable": false,
                "isAbstract": false,
                "isFinal": true,
                "implementedInterfaces": [],
                "parent": "java.lang.Enum",
                "genericTypes": [],
                "isMap": false
              }
            }
          },
          "annotations": {
            "default": "ExclusiveXMLCanonicalization_1_0",
            "expressionSupport": {
              "value": "NOT_SUPPORTED"
            },
            "display": {
              "displayModel": {
                "displayName": "Signature c14n algorithm",
                "summary": "Defines which signature c14n (canonicalization) algorithm to use."
              }
            }
          }
        },
        {
          "key": {
            "name": "keystore-config",
            "required": "true"
          },
          "model": {
            "type": "Object",
            "annotations": {
              "typeId": "com.mulesoft.modules.wss.api.store.KeyStoreConfiguration",
              "classInformation": {
                "classname": "com.mulesoft.modules.wss.api.store.KeyStoreConfiguration",
                "hasDefaultConstructor": true,
                "isInterface": false,
                "isInstantiable": true,
                "isAbstract": false,
                "isFinal": false,
                "implementedInterfaces": [],
                "parent": "",
                "genericTypes": [],
                "isMap": false
              },
              "typeDsl": {
                "allowInlineDefinition": true,
                "allowTopLevelDefinition": true
              },
              "typeAlias": {
                "value": "KeyStoreConfiguration"
              },
              "stereotype": {
                "allowedStereotypes": [
                  {
                    "type": "KEY_STORE_CONFIGURATION",
                    "namespace": "WSS"
                  }
                ]
              }
            },
            "fields": [
              {
                "key": {
                  "name": "path",
                  "required": "true"
                },
                "model": {
                  "type": "String"
                },
                "annotations": {
                  "expressionSupport": {
                    "value": "SUPPORTED"
                  },
                  "layout": {
                    "layoutModel": {
                      "password": false,
                      "text": false,
                      "query": false,
                      "order": 0,
                      "tabName": "General"
                    }
                  },
                  "display": {
                    "displayModel": {
                      "summary": "The location of the store file.",
                      "pathModel": {
                        "type": "FILE",
                        "fileExtensions": [],
                        "acceptsUrls": false,
                        "location": "EMBEDDED"
                      }
                    }
                  }
                }
              },
              {
                "key": {
                  "name": "password",
                  "required": "true"
                },
                "model": {
                  "type": "String"
                },
                "annotations": {
                  "expressionSupport": {
                    "value": "SUPPORTED"
                  },
                  "layout": {
                    "layoutModel": {
                      "password": true,
                      "text": false,
                      "query": false,
                      "order": 1,
                      "tabName": "General"
                    }
                  },
                  "display": {
                    "displayModel": {
                      "summary": "The password to access the store."
                    }
                  },
                  "org.mule.runtime.extension.api.declaration.type.annotation.SemanticTermsTypeAnnotation": {
                    "semanticTerms": [
                      "connectivity.password"
                    ]
                  }
                }
              },
              {
                "key": {
                  "name": "alias"
                },
                "model": {
                  "type": "String"
                },
                "annotations": {
                  "expressionSupport": {
                    "value": "SUPPORTED"
                  },
                  "layout": {
                    "layoutModel": {
                      "password": false,
                      "text": false,
                      "query": false,
                      "order": 2,
                      "tabName": "General"
                    }
                  },
                  "display": {
                    "displayModel": {
                      "summary": "The alias of the private key to use."
                    }
                  }
                }
              },
              {
                "key": {
                  "name": "keyPassword"
                },
                "model": {
                  "type": "String"
                },
                "annotations": {
                  "expressionSupport": {
                    "value": "SUPPORTED"
                  },
                  "layout": {
                    "layoutModel": {
                      "password": true,
                      "text": false,
                      "query": false,
                      "order": 3,
                      "tabName": "General"
                    }
                  },
                  "display": {
                    "displayModel": {
                      "summary": "The password used to access the private key."
                    }
                  },
                  "org.mule.runtime.extension.api.declaration.type.annotation.SemanticTermsTypeAnnotation": {
                    "semanticTerms": [
                      "connectivity.password"
                    ]
                  }
                }
              },
              {
                "key": {
                  "name": "type"
                },
                "model": {
                  "type": "String"
                },
                "annotations": {
                  "default": "jks",
                  "expressionSupport": {
                    "value": "SUPPORTED"
                  },
                  "layout": {
                    "layoutModel": {
                      "password": false,
                      "text": false,
                      "query": false,
                      "order": 4,
                      "tabName": "General"
                    }
                  },
                  "display": {
                    "displayModel": {
                      "summary": "The type of store (jks, pkcs12, jceks, or any other)."
                    }
                  }
                }
              }
            ]
          },
          "annotations": {
            "expressionSupport": {
              "value": "NOT_SUPPORTED"
            },
            "display": {
              "displayModel": {
                "displayName": "KeyStore Configuration",
                "summary": "KeyStore configuration used for signing."
              }
            }
          }
        },
        {
          "key": {
            "name": "wssParts"
          },
          "model": {
            "type": "Array",
            "annotations": {
              "classInformation": {
                "classname": "java.util.List",
                "hasDefaultConstructor": false,
                "isInterface": true,
                "isInstantiable": false,
                "isAbstract": true,
                "isFinal": false,
                "implementedInterfaces": [],
                "parent": "",
                "genericTypes": [
                  "com.mulesoft.modules.wss.api.outbound.MessagePart"
                ],
                "isMap": false
              }
            },
            "item": {
              "type": "Object",
              "annotations": {
                "typeId": "com.mulesoft.modules.wss.api.outbound.MessagePart",
                "classInformation": {
                  "classname": "com.mulesoft.modules.wss.api.outbound.MessagePart",
                  "hasDefaultConstructor": true,
                  "isInterface": false,
                  "isInstantiable": true,
                  "isAbstract": false,
                  "isFinal": false,
                  "implementedInterfaces": [],
                  "parent": "",
                  "genericTypes": [],
                  "isMap": false
                },
                "typeAlias": {
                  "value": "wss-part"
                }
              },
              "fields": [
                {
                  "key": {
                    "name": "encode"
                  },
                  "model": {
                    "type": "String",
                    "annotations": {
                      "typeId": "com.mulesoft.modules.wss.api.constants.SignEncodeConstants",
                      "enum": {
                        "type": "[Ljava.lang.String;",
                        "values": [
                          "ELEMENT",
                          "CONTENT"
                        ]
                      },
                      "classInformation": {
                        "classname": "com.mulesoft.modules.wss.api.constants.SignEncodeConstants",
                        "hasDefaultConstructor": false,
                        "isInterface": false,
                        "isInstantiable": false,
                        "isAbstract": false,
                        "isFinal": true,
                        "implementedInterfaces": [],
                        "parent": "java.lang.Enum",
                        "genericTypes": [],
                        "isMap": false
                      }
                    }
                  },
                  "annotations": {
                    "default": "CONTENT",
                    "expressionSupport": {
                      "value": "NOT_SUPPORTED"
                    },
                    "display": {
                      "displayModel": {
                        "summary": "Constant that indicates whether to sign an Element or a Content."
                      }
                    }
                  }
                },
                {
                  "key": {
                    "name": "namespace",
                    "required": "true"
                  },
                  "model": {
                    "type": "String"
                  },
                  "annotations": {
                    "expressionSupport": {
                      "value": "NOT_SUPPORTED"
                    },
                    "display": {
                      "displayModel": {
                        "summary": "Element namespace."
                      }
                    }
                  }
                },
                {
                  "key": {
                    "name": "localname",
                    "required": "true"
                  },
                  "model": {
                    "type": "String"
                  },
                  "annotations": {
                    "expressionSupport": {
                      "value": "NOT_SUPPORTED"
                    },
                    "display": {
                      "displayModel": {
                        "summary": "Element localname."
                      }
                    }
                  }
                }
              ]
            }
          },
          "annotations": {
            "expressionSupport": {
              "value": "NOT_SUPPORTED"
            },
            "display": {
              "displayModel": {
                "displayName": "Parts",
                "summary": "Lists of parts to be encrypted. If any part is specified, the SOAP Body will be encrypted."
              }
            }
          }
        }
      ]
    },
    {
      "format": "java",
      "type": "Object",
      "annotations": {
        "typeId": "com.mulesoft.modules.wss.api.outbound.TimestampConfig",
        "classInformation": {
          "classname": "com.mulesoft.modules.wss.api.outbound.TimestampConfig",
          "hasDefaultConstructor": true,
          "isInterface": false,
          "isInstantiable": true,
          "isAbstract": false,
          "isFinal": false,
          "implementedInterfaces": [],
          "parent": "",
          "genericTypes": [],
          "isMap": false
        },
        "typeAlias": {
          "value": "TimestampConfig"
        }
      },
      "fields": [
        {
          "key": {
            "name": "timeToLive"
          },
          "model": {
            "type": "Number",
            "annotations": {
              "classInformation": {
                "classname": "java.lang.Integer",
                "hasDefaultConstructor": false,
                "isInterface": false,
                "isInstantiable": false,
                "isAbstract": false,
                "isFinal": true,
                "implementedInterfaces": [],
                "parent": "java.lang.Number",
                "genericTypes": [],
                "isMap": false
              },
              "int": {}
            }
          },
          "annotations": {
            "default": "300",
            "expressionSupport": {
              "value": "NOT_SUPPORTED"
            },
            "display": {
              "displayModel": {
                "summary": "The time within which the Timestamp element is valid. The default is 5 minutes."
              }
            }
          }
        },
        {
          "key": {
            "name": "timeUnit"
          },
          "model": {
            "type": "String",
            "annotations": {
              "typeId": "java.util.concurrent.TimeUnit",
              "enum": {
                "type": "[Ljava.lang.String;",
                "values": [
                  "NANOSECONDS",
                  "MICROSECONDS",
                  "MILLISECONDS",
                  "SECONDS",
                  "MINUTES",
                  "HOURS",
                  "DAYS"
                ]
              },
              "classInformation": {
                "classname": "java.util.concurrent.TimeUnit",
                "hasDefaultConstructor": false,
                "isInterface": false,
                "isInstantiable": false,
                "isAbstract": false,
                "isFinal": true,
                "implementedInterfaces": [],
                "parent": "java.lang.Enum",
                "genericTypes": [],
                "isMap": false
              }
            }
          },
          "annotations": {
            "default": "SECONDS",
            "expressionSupport": {
              "value": "NOT_SUPPORTED"
            },
            "display": {
              "displayModel": {
                "summary": "Time unit to be used in the timeToLive configuration."
              }
            }
          }
        },
        {
          "key": {
            "name": "precisionInMilliseconds"
          },
          "model": {
            "type": "Boolean",
            "annotations": {
              "typeId": "boolean"
            }
          },
          "annotations": {
            "default": "true",
            "expressionSupport": {
              "value": "NOT_SUPPORTED"
            },
            "display": {
              "displayModel": {
                "summary": "If set to true then use timestamps with milliseconds, otherwise omit the milliseconds."
              }
            }
          }
        }
      ]
    }
  ]
}
