[
  {
    "configName": "AddHeader",
    "displayNameFormats": [
      {
        "format": "Add {{.metadataType}} {{.headerName}}:{{.headerValue}}",
        "condition": "and(equals({{.removeExisting}}, false), equals({{.operation}}, ADD))"
      },
      {
        "format": "Add {{.metadataType}} {{.headerName}}:{{.headerValue}} (replace existing)",
        "condition": "and(equals({{.removeExisting}}, true), equals({{.operation}}, ADD))"
      },
      {
        "format": "Remove {{.metadataType}}(s) {{.headerName}}",
        "condition": "and(equals({{.operation}}, REMOVE), isEmpty({{.headerValue}}))"
      },
      {
        "format": "Remove {{.metadataType}}(s) {{.headerName}}:{{.headerValue}}",
        "condition": "and(equals({{.operation}}, REMOVE), not(isEmpty({{.headerValue}})))"
      },
      {
        "format": "Add {{.metadataType}} {{.headerName}}:{{.headerValue}}",
        "condition": "true"
      }
    ],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/AddHeader",
        "title": "Manage Transport Properties/Headers",
        "properties": {
          "evaluateNameAsExpression": {
            "type": "boolean",
            "default": false
          },
          "evaluateValueExpression": {
            "type": "boolean",
            "default": false
          },
          "headerName": {
            "type": "string"
          },
          "headerValue": {
            "type": "string"
          },
          "metadataType": {
            "type": "string",
            "default": "HTTP_HEADER",
            "enum": [
              "HTTP_HEADER",
              "JMS_PROPERTY",
              "JMS_HEADER"
            ]
          },
          "operation": {
            "type": "string",
            "enum": [
              "ADD",
              "ADD_REPLACE",
              "REMOVE"
            ],
            "default": "ADD"
          },
          "otherTargetMessageVariable": {
            "type": "string"
          },
          "target": {
            "type": "string",
            "enum": [
              "REQUEST",
              "RESPONSE",
              "OTHER"
            ],
            "default": "REQUEST"
          }
        }
      }
    ],
    "refVariables": [],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Manage Transport Properties/Headers",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/target",
            "options": {
              "messageTarget": true,
              "otherTargetMessageVariableLabel": "assertion.common.target.otherTargetContextVariable"
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/metadataType",
            "options": {
              "markAsRequired": true
            },
            "i18n": "metadataType"
          },
          {
            "type": "Control",
            "scope": "#/properties/operation",
            "options": {
              "markAsRequired": true
            },
            "i18n": "operation"
          },
          {
            "type": "Group",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "property-header-group"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/headerName",
                "options": {
                  "markAsRequired": true
                },
                "i18n": "headerName"
              },
              {
                "type": "Control",
                "scope": "#/properties/evaluateNameAsExpression",
                "options": {
                  "markAsRequired": true
                },
                "i18n": "evaluateNameAsExpression",
                "rule": {
                  "effect": "SHOW",
                  "condition": {
                    "scope": "#/properties/operation",
                    "schema": {
                      "const": "REMOVE"
                    }
                  }
                }
              }
            ]
          },
          {
            "type": "Group",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "property-header-group"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/headerValue",
                "i18n": "headerValue",
                "options": {
                  "markAsRequired": true
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/evaluateValueExpression",
                "options": {
                  "markAsRequired": true
                },
                "i18n": "evaluateValueExpression",
                "rule": {
                  "effect": "SHOW",
                  "condition": {
                    "scope": "#/properties/operation",
                    "schema": {
                      "const": "REMOVE"
                    }
                  }
                }
              }
            ]
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/AddHeader",
        "locale": "en",
        "content": {
          "metadataType.label": "Type",
          "metadataType.HTTP_HEADER": "HTTP Header",
          "metadataType.JMS_PROPERTY": "JMS Property",
          "metadataType.JMS_HEADER": "JMS Header",
          "operation.label": "Operation",
          "operation.ADD": "Add",
          "operation.ADD_REPLACE": "Add or Replace",
          "operation.REMOVE": "Remove",
          "headerName.label": "Property/Header name",
          "headerValue.label": "Property/Header value",
          "evaluateValueExpression.label": "Regular expression",
          "evaluateNameAsExpression.label": "Regular expression",
          "headerName.error": "Invalid syntax",
          "headerValue.error": "Invalid syntax"
        }
      }
    ]
  },
  {
    "configName": "AddWsAddressing",
    "refVariables": [
      {
        "fieldPath": ".variablePrefix",
        "refType": "OUT",
        "dataType": "other",
        "prefixed": true
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".action",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".messageId",
        "refType": "OUT",
        "dataType": "string"
      }
    ],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/AddWsAddressing",
        "title": "Add WS-Addressing",
        "properties": {
          "action": {
            "type": "string"
          },
          "destination": {
            "type": "string"
          },
          "faultEndpoint": {
            "type": "string"
          },
          "messageId": {
            "type": "string"
          },
          "otherTargetMessageVariable": {
            "type": "string"
          },
          "relatesToMessageId": {
            "type": "string"
          },
          "replyEndpoint": {
            "type": "string"
          },
          "sourceEndpoint": {
            "type": "string"
          },
          "target": {
            "type": "string",
            "enum": [
              "REQUEST",
              "RESPONSE",
              "OTHER"
            ],
            "default": "REQUEST"
          },
          "variablePrefix": {
            "type": "string"
          },
          "wsaNamespaceUri": {
            "type": "string",
            "default": "http://www.w3.org/2005/08/addressing"
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Add WS-Addressing",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/target",
            "options": {
              "messageTarget": true,
              "otherTargetMessageVariableLabel": "assertion.common.target.otherTargetContextVariable"
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/wsaNamespaceUri",
            "i18n": "namespaceUri",
            "options": {
              "autocomplete": true,
              "allowUserProvidedInput": true,
              "markAsRequired": true,
              "defaultOptions": [
                {
                  "label": "http://www.w3.org/2005/08/addressing",
                  "value": "http://www.w3.org/2005/08/addressing"
                },
                {
                  "label": "http://schemas.xmlsoap.org/ws/2004/08/addressing",
                  "value": "http://schemas.xmlsoap.org/ws/2004/08/addressing"
                }
              ]
            }
          },
          {
            "type": "Group",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "common-page-style"
            },
            "i18n": "wsMessageAddressingProperties.label",
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/action",
                "i18n": "action",
                "options": {
                  "autocomplete": true,
                  "allowUserProvidedInput": true,
                  "markAsRequired": true,
                  "defaultOptions": [
                    {
                      "label": "<Obtain from target message>",
                      "value": "<Obtain from target message>"
                    },
                    {
                      "label": "<Explicit from WSDL (Input)>",
                      "value": "<Explicit from WSDL (Input)>"
                    },
                    {
                      "label": "<Explicit from WSDL (Output)>",
                      "value": "<Explicit from WSDL (Output)>"
                    }
                  ]
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/messageId",
                "i18n": "messageId",
                "options": {
                  "autocomplete": true,
                  "allowUserProvidedInput": true,
                  "defaultOptions": [
                    {
                      "label": "<auto>",
                      "value": "<auto>"
                    }
                  ]
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/destination",
                "i18n": "destination",
                "options": {
                  "autocomplete": true,
                  "allowUserProvidedInput": true,
                  "defaultOptions": [
                    {
                      "label": "http://www.w3.org/2005/08/addressing/anonymous",
                      "value": "http://www.w3.org/2005/08/addressing/anonymous"
                    }
                  ]
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/sourceEndpoint",
                "i18n": "sourceEndpoint",
                "options": {
                  "autocomplete": true,
                  "allowUserProvidedInput": true,
                  "defaultOptions": [
                    {
                      "label": "http://www.w3.org/2005/08/addressing/anonymous",
                      "value": "http://www.w3.org/2005/08/addressing/anonymous"
                    },
                    {
                      "label": "http://www.w3.org/2005/08/addressing/none",
                      "value": "http://www.w3.org/2005/08/addressing/none"
                    }
                  ]
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/replyEndpoint",
                "i18n": "replyEndpoint",
                "options": {
                  "autocomplete": true,
                  "allowUserProvidedInput": true,
                  "defaultOptions": [
                    {
                      "label": "http://www.w3.org/2005/08/addressing/anonymous",
                      "value": "http://www.w3.org/2005/08/addressing/anonymous"
                    },
                    {
                      "label": "http://www.w3.org/2005/08/addressing/none",
                      "value": "http://www.w3.org/2005/08/addressing/none"
                    }
                  ]
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/faultEndpoint",
                "i18n": "faultEndpoint",
                "options": {
                  "autocomplete": true,
                  "allowUserProvidedInput": true,
                  "defaultOptions": [
                    {
                      "label": "http://www.w3.org/2005/08/addressing/anonymous",
                      "value": "http://www.w3.org/2005/08/addressing/anonymous"
                    },
                    {
                      "label": "http://www.w3.org/2005/08/addressing/none",
                      "value": "http://www.w3.org/2005/08/addressing/none"
                    }
                  ]
                }
              }
            ]
          },
          {
            "type": "Group",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "common-page-style"
            },
            "i18n": "relatesTo.label",
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/relatesToMessageId",
                "i18n": "messageId"
              }
            ]
          },
          {
            "type": "Control",
            "scope": "#/properties/variablePrefix",
            "i18n": "variablePrefix",
            "options": {
              "markAsRequired": true,
              "contextVariable": true,
              "variableType": "output",
              "allowedDataTypes": []
            }
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/AddWsAddressing",
        "locale": "en",
        "content": {
          "namespaceUri.label": "WS-Addressing Namespace",
          "action.label": "Action",
          "messageId.label": "Message Id",
          "destination.label": "To",
          "sourceEndpoint.label": "From",
          "replyEndpoint.label": "Reply To Address",
          "faultEndpoint.label": "Fault To Address",
          "wsMessageAddressingProperties.label": "Message Addressing Properties",
          "relatesTo.label": "Relates To",
          "variablePrefix.label": "Variable Prefix"
        }
      }
    ]
  },
  {
    "configName": "AddWssSecurityToken",
    "displayNameFormats": [
      {
        "format": "Add Signed Security Token ({{.tokenType}})",
        "condition": "and(not(isNull({{.tokenType}})), equals({{.protectTokens}}, true)"
      },
      {
        "format": "Add Security Token ({{.tokenType}})",
        "condition": "and(not(isNull({{.tokenType}})), equals({{.protectTokens}}, false)"
      }
    ],
    "refVariables": [
      {
        "fieldPath": ".samlAssertionVariable",
        "refType": "IN",
        "dataType": "other"
      },
      {
        "fieldPath": ".wsscSessionVariable",
        "refType": "IN",
        "dataType": "other"
      }
    ],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/AddWssSecurityToken",
        "title": "Add Security Token",
        "properties": {
          "digest": {
            "type": "boolean",
            "default": false
          },
          "digestAlgorithmName": {
            "type": "string"
          },
          "dynamicPrivateKeyVariable": {
            "type": "string",
            "default": ""
          },
          "encrypt": {
            "type": "boolean",
            "default": false
          },
          "__privateKey": {
            "type": "string"
          },
          "identityTarget": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/sub-types/identityTarget"
          },
          "includeCreated": {
            "type": "boolean",
            "default": true
          },
          "includeNonce": {
            "type": "boolean",
            "default": true
          },
          "includePassword": {
            "type": "boolean",
            "default": false
          },
          "keyAlias": {
            "type": "string"
          },
          "keyReference": {
            "type": "string",
            "default": "BinarySecurityToken",
            "enum": [
              "BinarySecurityToken",
              "SubjectKeyIdentifier",
              "IssuerSerial"
            ]
          },
          "nonDefaultKeystoreId": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/sub-types/goid"
          },
          "omitSecurityContextToken": {
            "type": "boolean",
            "default": false
          },
          "otherTargetMessageVariable": {
            "type": "string"
          },
          "password": {
            "type": "string"
          },
          "protectTokens": {
            "type": "boolean",
            "default": true
          },
          "recipientContext": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/sub-types/xmlSecurityRecipientContext"
          },
          "samlAssertionVariable": {
            "type": "string"
          },
          "target": {
            "type": "string",
            "default": "REQUEST"
          },
          "tokenType": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/sub-types/securityTokenType",
            "default": "WS-S UsernameToken",
            "enum": [
              "WS-S UsernameToken",
              "WS-SC SecurityContextToken",
              "SAML Assertion",
              "WS-S EncryptedKey"
            ]
          },
          "__useCredentialsOption": {
            "type": "string",
            "default": "useLastGatheredCredentials",
            "enum": [
              "useLastGatheredCredentials",
              "specifiedCredentials"
            ]
          },
          "useLastGatheredCredentials": {
            "type": "boolean",
            "default": true
          },
          "username": {
            "type": "string"
          },
          "usesDefaultKeyStore": {
            "type": "boolean",
            "default": true
          },
          "usesDynamicPrivateKey": {
            "type": "boolean",
            "default": false
          },
          "wsscSessionVariable": {
            "type": "string"
          },
          "__inlineAlerts": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "__inlineAlertsSecurityContext": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/sub-types/identityTarget",
        "properties": {
          "identityId": {
            "type": "string"
          },
          "identityInfo": {
            "type": "string"
          },
          "identityProviderOid": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/sub-types/goid"
          },
          "targetIdentityType": {
            "type": "string",
            "enum": [
              "USER",
              "GROUP",
              "PROVIDER",
              "TAG"
            ]
          }
        }
      },
      {
        "type": "string",
        "$id": "https://l7tech.com/2025/json-schema/assertions/sub-types/goid"
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/sub-types/xmlSecurityRecipientContext",
        "properties": {
          "actor": {
            "type": "string"
          },
          "base64edX509Certificate": {
            "type": "string"
          }
        }
      },
      {
        "type": "string",
        "$id": "https://l7tech.com/2025/json-schema/assertions/sub-types/securityTokenType"
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Add Security Token",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/target",
            "options": {
              "messageTarget": true,
              "otherTargetMessageVariableLabel": "otherTargetMessageVariable.label"
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/tokenType",
            "i18n": "tokenType",
            "options": {
              "markAsRequired": true
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/includePassword",
            "options": {
              "markAsRequired": true
            },
            "rule": {
              "effect": "SHOW",
              "condition": {
                "scope": "#/properties/tokenType",
                "schema": {
                  "const": "WS-S UsernameToken"
                }
              }
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/__useCredentialsOption",
            "i18n": "useCredentialsOption",
            "options": {
              "format": "radio",
              "useRowLayout": false,
              "uiSchemasMap": {
                "specifiedCredentials": {
                  "type": "Group",
                  "options": {
                    "groupType": "wrapCustomClass",
                    "customClass": "no-label-input"
                  },
                  "elements": [
                    {
                      "type": "Control",
                      "scope": "#/properties/username",
                      "rule": {
                        "effect": "SHOW",
                        "condition": {
                          "scope": "#/properties/tokenType",
                          "schema": {
                            "const": "WS-S UsernameToken"
                          }
                        }
                      }
                    },
                    {
                      "type": "Control",
                      "scope": "#/properties/password",
                      "options": {
                        "markAsRequired": false,
                        "format": "password"
                      },
                      "rule": {
                        "effect": "SHOW",
                        "condition": {
                          "scope": "#/properties/includePassword",
                          "schema": {
                            "const": true
                          }
                        }
                      }
                    },
                    {
                      "type": "Control",
                      "scope": "#/properties/includeNonce",
                      "options": {
                        "markAsRequired": true
                      },
                      "rule": {
                        "effect": "SHOW",
                        "condition": {
                          "scope": "#/properties/tokenType",
                          "schema": {
                            "const": "WS-S UsernameToken"
                          }
                        }
                      }
                    },
                    {
                      "type": "Control",
                      "scope": "#/properties/includeCreated",
                      "options": {
                        "markAsRequired": true
                      }
                    },
                    {
                      "type": "Control",
                      "scope": "#/properties/digest",
                      "i18n": "digest",
                      "options": {
                        "markAsRequired": true
                      },
                      "rule": {
                        "effect": "SHOW",
                        "condition": {
                          "schema": {
                            "allOf": [
                              {
                                "properties": {
                                  "tokenType": {
                                    "const": "WS-S UsernameToken"
                                  }
                                },
                                "required": [
                                  "tokenType"
                                ]
                              },
                              {
                                "properties": {
                                  "includePassword": {
                                    "const": true
                                  }
                                },
                                "required": [
                                  "includePassword"
                                ]
                              }
                            ]
                          }
                        }
                      }
                    },
                    {
                      "type": "Control",
                      "scope": "#/properties/encrypt",
                      "options": {
                        "markAsRequired": true
                      },
                      "rule": {
                        "effect": "SHOW",
                        "condition": {
                          "scope": "#/properties/tokenType",
                          "schema": {
                            "const": "WS-S UsernameToken"
                          }
                        }
                      }
                    }
                  ]
                }
              }
            },
            "rule": {
              "effect": "SHOW",
              "condition": {
                "scope": "#/properties/tokenType",
                "schema": {
                  "const": "WS-S UsernameToken"
                }
              }
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/keyReference",
            "i18n": "keyReference",
            "options": {
              "format": "radio",
              "useRowLayout": false
            },
            "rule": {
              "effect": "SHOW",
              "condition": {
                "scope": "#/properties/tokenType",
                "schema": {
                  "const": "WS-S UsernameToken"
                }
              }
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/wsscSessionVariable",
            "i18n": "wsscSessionVariable",
            "options": {
              "contextVariable": true,
              "markAsRequired": true,
              "variableType": "input",
              "allowedDataTypes": []
            },
            "rule": {
              "effect": "SHOW",
              "condition": {
                "scope": "#/properties/tokenType",
                "schema": {
                  "const": "WS-SC SecurityContextToken"
                }
              }
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/omitSecurityContextToken",
            "i18n": "omitSecurityContextToken",
            "options": {
              "markAsRequired": true
            },
            "rule": {
              "effect": "SHOW",
              "condition": {
                "scope": "#/properties/tokenType",
                "schema": {
                  "const": "WS-SC SecurityContextToken"
                }
              }
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/samlAssertionVariable",
            "i18n": "samlAssertionVariable",
            "options": {
              "contextVariable": true,
              "markAsRequired": true,
              "variableType": "input",
              "allowedDataTypes": []
            },
            "rule": {
              "effect": "SHOW",
              "condition": {
                "scope": "#/properties/tokenType",
                "schema": {
                  "const": "SAML Assertion"
                }
              }
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/__inlineAlerts",
            "options": {
              "inlineAlerts": "info"
            },
            "rule": {
              "effect": "SHOW",
              "condition": {
                "scope": "#/properties/tokenType",
                "schema": {
                  "const": "WS-S EncryptedKey"
                }
              }
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/__inlineAlertsSecurityContext",
            "options": {
              "inlineAlerts": "info"
            },
            "rule": {
              "effect": "SHOW",
              "condition": {
                "scope": "#/properties/tokenType",
                "schema": {
                  "const": "WS-SC SecurityContextToken"
                }
              }
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/protectTokens",
            "i18n": "protectTokens",
            "options": {
              "markAsRequired": true
            }
          },
          {
            "type": "Group",
            "label": "Private Key",
            "options": {
              "groupType": "ShowHide"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/__privateKey",
                "options": {
                  "privateKey": true,
                  "keyTypeOptions": [
                    "DEFAULT_KEY",
                    "CUSTOM_PRIVATE_KEY"
                  ]
                }
              }
            ]
          },
          {
            "type": "Group",
            "label": "WS-Security Recipient",
            "options": {
              "groupType": "ShowHide"
            },
            "elements": [
              {
                "type": "Control",
                "options": {
                  "wssRecipient": true
                }
              }
            ]
          },
          {
            "type": "Group",
            "label": "Target Identity",
            "options": {
              "groupType": "ShowHide"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/identityTarget",
                "i18n": "identityTarget",
                "options": {
                  "identityTags": true
                }
              }
            ]
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/AddWssSecurityToken",
        "locale": "en",
        "content": {
          "otherTargetMessageVariable.label": "Context variable",
          "keyReference.label": "Signature Key Reference",
          "keyReference.BinarySecurityToken": "BinarySecurityToken",
          "keyReference.SubjectKeyIdentifier": "SecurityTokenReference with SKI",
          "keyReference.IssuerSerial": "Issuer name / serial number",
          "keyOptions.defaultKey": "Use default private key",
          "keyOptions.noPrivateKey": "Use no private key",
          "keyOptions.commonPrivateKey": "Use common private keys",
          "keyOptions.dynamicPrivateKey": "Use dynamic private keys",
          "keyList.label": "Key",
          "dynamicPrivateKeyVariable.label": "Key Alias (variable)",
          "managePrivateKeyButton.label": "Manage Private Key",
          "tokenType.label": "Security Token Type",
          "protectTokens.label": "Include security token in message signature",
          "useCredentialsOption.label": "Credentials",
          "useCredentialsOption.specifiedCredentials": "Use specified credentials",
          "useCredentialsOption.useLastGatheredCredentials": "Use last gathered request credentials",
          "digest.label": "Use Password Digest",
          "securityContext.helperText": "When a WS-SecureConversation session is specified, it will take precedence over other ways of encrypting when security requirements are next applied to the target message.",
          "encryptedKey.helperText": "When the security requirements are next applied to the target message, a new EncryptedKey will be generated, encrypted for the encryption recipient and included in the message.",
          "encryptedKey.helperText1": "The Gateway will cache the generated key for a period of time and will recognize it when processing future incoming messages that refer to it by its EncryptedKeySHA1.",
          "wsscSessionVariable.label": "Session Variable Name",
          "omitSecurityContextToken.label": "Include SecurityContextToken in message",
          "samlAssertionVariable.label": "SAML Assertion Variable"
        }
      }
    ]
  },
  {
    "configName": "AddWssTimestamp",
    "displayNameFormats": [
      {
        "format": "Add Signed Timestamp",
        "condition": "equals({{.signatureRequired}}, true)"
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Add Timestamp",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/target",
            "options": {
              "messageTarget": true,
              "otherTargetMessageVariableLabel": "assertion.common.target.otherTargetContextVariable"
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/resolution",
            "i18n": "resolution",
            "options": {
              "markAsRequired": true
            }
          },
          {
            "type": "Group",
            "i18n": "time.label",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "timewrapper"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/expiryMilliseconds",
                "label": false,
                "options": {
                  "markAsRequired": true,
                  "minValue": 0
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/timeUnit",
                "label": false,
                "i18n": "timeUnit",
                "options": {
                  "markAsRequired": true
                }
              }
            ]
          },
          {
            "type": "Control",
            "scope": "#/properties/signatureRequired",
            "i18n": "signatureRequired",
            "options": {
              "markAsRequired": true
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/keyReference",
            "i18n": "keyReference",
            "options": {
              "format": "radio",
              "useRowLayout": false
            }
          },
          {
            "type": "Group",
            "label": "Private Key",
            "options": {
              "groupType": "ShowHide"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/__privateKey",
                "options": {
                  "privateKey": true,
                  "keyTypeOptions": [
                    "DEFAULT_KEY",
                    "CUSTOM_PRIVATE_KEY"
                  ]
                }
              }
            ]
          },
          {
            "type": "Group",
            "label": "WS-Security Recipient",
            "options": {
              "groupType": "ShowHide"
            },
            "elements": [
              {
                "type": "Control",
                "options": {
                  "wssRecipient": true
                }
              }
            ]
          }
        ]
      }
    ],
    "configSchemaPatches": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/AddWssTimestamp",
        "patches": [
          {
            "op": "add",
            "path": "/properties/__privateKey",
            "value": {
              "type": "string"
            }
          },
          {
            "op": "add",
            "path": "/properties/keyReference/enum",
            "value": [
              "BinarySecurityToken",
              "SubjectKeyIdentifier",
              "IssuerSerial"
            ]
          },
          {
            "op": "replace",
            "path": "/properties/resolution/enum",
            "value": [
              "<Default>",
              "NANOSECONDS",
              "MILLISECONDS",
              "SECONDS"
            ]
          },
          {
            "op": "add",
            "path": "/properties/resolution/default",
            "value": "<Default>"
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/AddWssTimestamp",
        "locale": "en",
        "content": {
          "keyReference.label": "Signature key reference",
          "keyReference.BinarySecurityToken": "BinarySecurityToken",
          "keyReference.SubjectKeyIdentifier": "SecurityTokenReference with SKI",
          "keyReference.IssuerSerial": "Issuer name / serial number",
          "resolution.label": "Resolution",
          "resolution.NANOSECONDS": "Nanoseconds",
          "resolution.MILLISECONDS": "Milliseconds",
          "resolution.SECONDS": "Seconds",
          "timeUnit.ms": "Milliseconds",
          "timeUnit.s": "Seconds",
          "timeUnit.m": "Minutes",
          "timeUnit.h": "Hours",
          "timeUnit.d": "Days",
          "time.label": "Expiry Time",
          "signatureRequired.label": "Sign Timestamp",
          "expiryMilliseconds.error": "Expiry Time should be a positive number"
        }
      }
    ]
  },
  {
    "configName": "All",
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "All assertions must evaluate to true"
      }
    ]
  },
  {
    "configName": "ApiPortalEncassIntegration",
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Set as Portal Publishable Fragment",
        "elements": [
          {
            "type": "Group",
            "i18n": "list.label",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "publishable-list",
              "labelColor": "bodyText",
              "list": []
            }
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/ApiPortalEncassIntegration",
        "locale": "en",
        "content": {
          "list.label": "List of Encapsulated Assertions that use this policy"
        }
      }
    ]
  },
  {
    "configName": "ApiPortalIntegration",
    "displayNameFormats": [
      {
        "format": "Set as Portal Managed Service",
        "condition": "true"
      }
    ],
    "refVariables": [
      {
        "fieldPath": ".variablePrefix",
        "refType": "OUT",
        "dataType": "other",
        "prefixed": true
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".apiId",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".apiGroup",
        "refType": "OUT",
        "dataType": "string"
      }
    ],
    "refEntities": [],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Set as Portal Managed Service",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/variablePrefix",
            "i18n": "variablePrefix",
            "options": {
              "markAsRequired": true
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/apiId",
            "i18n": "apiId",
            "options": {
              "markAsRequired": true
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/apiGroup",
            "i18n": "apiGroup"
          }
        ]
      }
    ],
    "configSchemaPatches": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/ApiPortalIntegration",
        "patches": [
          {
            "op": "remove",
            "path": "/properties/variablePrefix/default"
          },
          {
            "op": "remove",
            "path": "/properties/apiId/default"
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/ApiPortalIntegration",
        "locale": "en",
        "content": {
          "variablePrefix.label": "Variable Prefix",
          "apiId.label": "API ID",
          "apiGroup.label": "API Group",
          "apiId.error": "API ID must contain only alphanumeric characters or '-'.",
          "apiGroup.error": "API Group must contain only alphanumeric characters or '-'."
        }
      }
    ]
  },
  {
    "configName": "AppleFeedbackService",
    "refVariables": [
      {
        "fieldPath": ".variablePrefix",
        "refType": "OUT",
        "dataType": "string"
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Get Apple Push Notification Feedback Service",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/__targetAPNs",
            "i18n": "__targetAPNs",
            "options": {
              "format": "radio",
              "useRowLayout": false
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/variablePrefix",
            "i18n": "variablePrefix",
            "options": {
              "markAsRequired": true,
              "contextVariable": true,
              "variableType": "output",
              "allowedDataTypes": []
            }
          },
          {
            "type": "Group",
            "label": "Private Key",
            "options": {
              "groupType": "ShowHide"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/__privateKey",
                "options": {
                  "privateKey": true,
                  "keyTypeOptions": [
                    "DEFAULT_KEY",
                    "CUSTOM_PRIVATE_KEY"
                  ]
                }
              }
            ]
          }
        ]
      }
    ],
    "configSchemaPatches": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/AppleFeedbackService",
        "patches": [
          {
            "op": "add",
            "path": "/properties/__targetAPNs",
            "value": {
              "type": "string",
              "default": "PRODUCTION",
              "enum": [
                "PRODUCTION",
                "DEVELOPMENT"
              ]
            }
          },
          {
            "op": "add",
            "path": "/properties/__privateKey",
            "value": {
              "type": "string"
            }
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/AppleFeedbackService",
        "locale": "en",
        "content": {
          "variablePrefix.label": "Variable Prefix",
          "__targetAPNs.label": "Target APNs",
          "__targetAPNs.PRODUCTION": "Production",
          "__targetAPNs.DEVELOPMENT": "Development"
        }
      }
    ]
  },
  {
    "configName": "ApplePushNotification",
    "refVariables": [
      {
        "fieldPath": ".variablePrefix",
        "refType": "OUT",
        "dataType": "string"
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Send Apple Push Notification",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/target",
            "options": {
              "messageTarget": true,
              "otherTargetMessageVariableLabel": "assertion.common.target.otherTargetContextVariable"
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/deviceTokens",
            "i18n": "deviceTokens",
            "options": {
              "multiline": true,
              "rows": 5
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/jsonPayload",
            "i18n": "jsonPayload",
            "options": {
              "multiline": true,
              "rows": 5
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/__notifications",
            "i18n": "__notifications",
            "options": {
              "format": "radio",
              "useRowLayout": false,
              "uiSchemasMap": {
                "Enhanced": {
                  "type": "VerticalLayout",
                  "elements": [
                    {
                      "type": "Control",
                      "scope": "#/properties/expiryHours",
                      "i18n": "expiryHours",
                      "options": {
                        "markAsRequired": true
                      }
                    }
                  ]
                }
              }
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/__targetOptions",
            "i18n": "__targetOptions",
            "options": {
              "format": "radio",
              "useRowLayout": false
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/variablePrefix",
            "i18n": "variablePrefix",
            "options": {
              "contextVariable": true,
              "markAsRequired": false,
              "variableType": "output",
              "allowedDataTypes": []
            }
          },
          {
            "type": "Group",
            "label": "Private Key",
            "options": {
              "groupType": "ShowHide"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/__privateKey",
                "options": {
                  "privateKey": true,
                  "keyTypeOptions": [
                    "DEFAULT_KEY",
                    "CUSTOM_PRIVATE_KEY"
                  ]
                }
              }
            ]
          }
        ]
      }
    ],
    "configSchemaPatches": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/ApplePushNotification",
        "patches": [
          {
            "op": "add",
            "path": "/properties/__privateKey",
            "value": {
              "type": "string"
            }
          },
          {
            "op": "add",
            "path": "/properties/__notifications",
            "value": {
              "type": "string",
              "enum": [
                "Enhanced",
                "Simple"
              ],
              "default": "Enhanced"
            }
          },
          {
            "op": "add",
            "path": "/properties/__targetOptions",
            "value": {
              "type": "string",
              "enum": [
                "Production",
                "Development"
              ],
              "default": "Production"
            }
          },
          {
            "op": "replace",
            "path": "/properties/expiryHours",
            "value": {
              "type": "string"
            }
          }
        ]
      }
    ],
    "configDataPatches": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/ApplePushNotification/Main#BeforeEdit",
        "patches": [
          {
            "op": "test",
            "path": "/isEnhancedNotification",
            "value": false
          },
          {
            "op": "add",
            "path": "/__notifications",
            "value": "Simple"
          }
        ]
      },
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/ApplePushNotification/Main#BeforeEdit",
        "patches": [
          {
            "op": "test",
            "path": "/isProductionEnvironment",
            "value": false
          },
          {
            "op": "add",
            "path": "/__targetOptions",
            "value": "Development"
          }
        ]
      },
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/ApplePushNotification/Main#AfterEdit",
        "patches": [
          {
            "op": "test",
            "path": "/__notifications",
            "value": "Enhanced"
          },
          {
            "op": "remove",
            "path": "/isEnhancedNotification"
          },
          {
            "op": "remove",
            "path": "/__notifications"
          }
        ]
      },
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/ApplePushNotification/Main#AfterEdit",
        "patches": [
          {
            "op": "test",
            "path": "/__notifications",
            "value": "Simple"
          },
          {
            "op": "add",
            "path": "/isEnhancedNotification",
            "value": false
          },
          {
            "op": "remove",
            "path": "/__notifications"
          }
        ]
      },
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/ApplePushNotification/Main#AfterEdit",
        "patches": [
          {
            "op": "test",
            "path": "/__targetOptions",
            "value": "Production"
          },
          {
            "op": "remove",
            "path": "/isProductionEnvironment"
          },
          {
            "op": "remove",
            "path": "/__targetOptions"
          }
        ]
      },
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/ApplePushNotification/Main#AfterEdit",
        "patches": [
          {
            "op": "test",
            "path": "/__targetOptions",
            "value": "Development"
          },
          {
            "op": "add",
            "path": "/isProductionEnvironment",
            "value": false
          },
          {
            "op": "remove",
            "path": "/__targetOptions"
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/SpecificUser",
        "locale": "en",
        "content": {
          "deviceTokens.label": "Device Token(s)",
          "jsonPayload.label": "Notification (JSON)",
          "__notifications.label": "Notification Format",
          "expiryHours.label": "Expiry (in hours)",
          "__targetOptions.label": "Target APNs",
          "variablePrefix.label": "Variable Prefix",
          "expiryHours.errors": "Expiry (in hours) must be a number between -596523 and 596523."
        }
      }
    ]
  },
  {
    "configName": "ApplyJSONPatch",
    "displayNameFormats": [
      {
        "format": "Apply JSON Patch",
        "condition": "true"
      }
    ],
    "refVariables": [
      {
        "fieldPath": ".destinationMessageTarget.__otherTarget",
        "refType": "OUT",
        "dataType": "other"
      },
      {
        "fieldPath": ".destinationMessageTarget.target",
        "refType": "OUT",
        "dataType": "other"
      }
    ],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/ApplyJSONPatch",
        "title": "Apply JSON Patch",
        "properties": {
          "target": {
            "type": "string",
            "enum": [
              "REQUEST",
              "RESPONSE",
              "OTHER"
            ],
            "default": "REQUEST"
          },
          "otherTargetMessageVariable": {
            "type": "string"
          },
          "destinationMessageTarget": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/sub-types/messageTargetableSupport"
          },
          "jsonPatchDocument": {
            "type": "string",
            "default": ""
          }
        }
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/sub-types/messageTargetableSupport",
        "properties": {
          "otherTargetMessageVariable": {
            "type": "string"
          },
          "sourceUsedByGateway": {
            "type": "boolean",
            "default": true
          },
          "target": {
            "type": "string",
            "enum": [
              "REQUEST",
              "RESPONSE",
              "OTHER"
            ],
            "default": "RESPONSE"
          },
          "targetModifiedByGateway": {
            "type": "boolean",
            "default": false
          }
        }
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/ApplyJSONPatch/Main",
        "title": "Apply JSON Patch",
        "properties": {
          "ApplyJSONPatch": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/ApplyJSONPatch"
          },
          ".properties": {
            "type": "object",
            "properties": {
              ".enabled": {
                "type": "boolean",
                "default": true
              },
              ".left.comment": {
                "type": "string"
              },
              ".right.comment": {
                "type": "string"
              }
            }
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Apply JSON Patch",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/jsonPatchDocument",
            "i18n": "jsonPatchDocument",
            "options": {
              "markAsRequired": true,
              "multiline": true,
              "rows": 5
            }
          },
          {
            "type": "Group",
            "label": "Source and Destination",
            "isExpanded": true,
            "options": {
              "groupType": "Accordion"
            },
            "elements": [
              {
                "type": "Group",
                "options": {
                  "groupType": "wrapCustomClass",
                  "customClass": "source-group-style"
                },
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/target",
                    "options": {
                      "messageTarget": true,
                      "default": "REQUEST"
                    },
                    "i18n": "source.target"
                  }
                ]
              },
              {
                "type": "Group",
                "options": {
                  "groupType": "wrapCustomClass",
                  "customClass": "source-group-style"
                },
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/destinationMessageTarget/properties/target",
                    "i18n": "destination.target",
                    "options": {
                      "format": "radio",
                      "useRowLayout": false
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/destinationMessageTarget/properties/__otherTarget",
                    "i18n": "otherContext",
                    "options": {
                      "customClass": "common-conditional-field",
                      "markAsRequired": true,
                      "contextVariable": true,
                      "variableType": "output",
                      "allowedDataTypes": []
                    },
                    "rule": {
                      "effect": "SHOW",
                      "condition": {
                        "scope": "#/properties/destinationMessageTarget/properties/target",
                        "schema": {
                          "const": "OTHER"
                        }
                      }
                    }
                  }
                ]
              }
            ]
          },
          {
            "type": "Group",
            "label": "Test",
            "options": {
              "groupType": "Accordion"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/__testInput",
                "i18n": "test_input",
                "options": {
                  "multiline": true,
                  "rows": 3
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/__test",
                "i18n": "test_button",
                "options": {
                  "controlType": "Button",
                  "variant": "outlined"
                },
                "rule": {
                  "effect": "DISABLE",
                  "condition": {
                    "scope": "#/properties/__testInput",
                    "schema": {
                      "maxLength": 0
                    }
                  }
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/__testOutput",
                "i18n": "output",
                "enabled": false,
                "options": {
                  "readonly": true,
                  "multiline": true,
                  "rows": 5
                }
              }
            ]
          }
        ]
      }
    ],
    "configSchemaPatches": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/ApplyJSONPatch",
        "patches": [
          {
            "op": "add",
            "path": "/properties/__testInput",
            "value": {
              "type": "string"
            }
          },
          {
            "op": "add",
            "path": "/properties/__testOutput",
            "value": {
              "type": "string"
            }
          },
          {
            "op": "add",
            "path": "/properties/__test",
            "value": {
              "type": "string"
            }
          },
          {
            "op": "add",
            "path": "/properties/destinationMessageTarget/properties/__otherTarget",
            "value": {
              "type": "string"
            }
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/ApplyJSONPatch",
        "locale": "en",
        "content": {
          "jsonPatchDocument.label": "JSON Patch",
          "source_and_destination": "Source and Destination",
          "source.target.label": "Source Target Message",
          "destination.target.label": "Destination Target Message",
          "destination.OTHER.label": "Message Variable",
          "test": "Test",
          "test_input.label": "Test Input",
          "output.label": "Test Output",
          "test_button": "Test",
          "source.target.REQUEST": "Request",
          "source.target.RESPONSE": "Response",
          "source.target.OTHER": "Other",
          "destination.target.REQUEST": "Request",
          "destination.target.RESPONSE": "Response",
          "destination.target.OTHER": "Other"
        }
      }
    ]
  },
  {
    "configName": "Audit",
    "displayNameFormats": [
      {
        "format": "Audit Messages in Policy",
        "condition": "true"
      }
    ],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/Audit",
        "title": "Audit Messages in Policy",
        "properties": {
          "changeSaveRequest": {
            "type": "boolean",
            "default": true
          },
          "changeSaveResponse": {
            "type": "boolean",
            "default": true
          },
          "level": {
            "type": "string",
            "default": "WARNING",
            "enum": [
              "WARNING",
              "INFO"
            ]
          },
          "saveRequest": {
            "type": "boolean",
            "default": false
          },
          "saveResponse": {
            "type": "boolean",
            "default": false
          },
          "__inlineAlerts": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Audit Messages in Policy",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/level",
            "i18n": "level"
          },
          {
            "type": "Control",
            "scope": "#/properties/__inlineAlerts",
            "options": {
              "inlineAlerts": "warning"
            }
          },
          {
            "type": "Group",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "save-request-group"
            },
            "elements": [
              {
                "type": "Group",
                "scope": "#/properties/saveRequest",
                "options": {
                  "format": "radio",
                  "defaultOptions": [
                    {
                      "label": "Always",
                      "value": true
                    },
                    {
                      "label": "Never",
                      "value": false
                    },
                    {
                      "label": "No change",
                      "value": "noChange"
                    }
                  ]
                },
                "i18n": "saveRequest"
              }
            ]
          },
          {
            "type": "Group",
            "scope": "#/properties/saveResponse",
            "options": {
              "format": "radio",
              "defaultOptions": [
                {
                  "label": "Always",
                  "value": true
                },
                {
                  "label": "Never",
                  "value": false
                },
                {
                  "label": "No change",
                  "value": "noChange"
                }
              ]
            },
            "i18n": "saveResponse"
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/Audit",
        "locale": "en",
        "content": {
          "level.label": "Record audit events at the following level beyond this point:",
          "level.i18n": "audit.level",
          "level.WARNING": "WARNING",
          "level.INFO": "INFO",
          "saveRequest.label": "Save request",
          "saveRequest.always": "Always",
          "saveRequest.never": "Never",
          "saveRequest.noChange": "No change",
          "saveResponse.label": "Save response",
          "saveResponse.Always": "Always",
          "saveResponse.Never": "Never",
          "saveResponse.No change": "No change",
          "level.warning.helper_text": "(NOTE: the server is currently not recording below level WARNING)",
          "level.info.helper_text": "(NOTE: the server is currently not recording below level INFO)",
          "level.finest.helper_text": "(NOTE: the server is currently not recording below level FINEST)"
        }
      }
    ]
  },
  {
    "configName": "AuditDetail",
    "displayNameFormats": [
      {
        "format": "Add Audit Details: \"{{.detail}}\"",
        "condition": "true"
      }
    ],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/AuditDetail",
        "title": "Add Audit Details",
        "properties": {
          "customLoggerSuffix": {
            "type": "string"
          },
          "detail": {
            "type": "string"
          },
          "category": {
            "type": "string",
            "enum": [
              "Audit",
              "Log"
            ],
            "default": "Audit"
          },
          "level": {
            "type": "string",
            "default": "INFO",
            "enum": [
              "WARNING",
              "INFO",
              "FINE",
              "FINER",
              "FINEST"
            ]
          },
          "loggingOnly": {
            "type": "boolean",
            "default": false
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Add Audit Details",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/detail",
            "options": {
              "multiline": true,
              "rows": 3,
              "markAsRequired": true
            },
            "i18n": "message"
          },
          {
            "type": "Control",
            "scope": "#/properties/category",
            "options": {
              "format": "radio"
            },
            "i18n": "category"
          },
          {
            "type": "Control",
            "scope": "#/properties/loggingOnly",
            "options": {
              "format": "checkbox"
            },
            "i18n": "Custom-logger"
          },
          {
            "type": "Control",
            "scope": "#/properties/customLoggerSuffix",
            "i18n": "customname",
            "options": {
              "prefixInputText": "com.l7tech.log.com",
              "markAsRequired": true
            },
            "rule": {
              "effect": "SHOW",
              "condition": {
                "scope": "#/properties/loggingOnly",
                "schema": {
                  "const": true
                }
              }
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/level",
            "i18n": "level"
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/AuditDetail",
        "locale": "en",
        "content": {
          "customLoggerSuffix.ERROR": "A custom logger name suffix must consist of letters and numbers separated by periods. For example, example.widgetwatcher",
          "message.label": "Message",
          "category.label": "Category",
          "Custom-logger.label": "Use custom logger name",
          "customname.label": "Logger Name",
          "level.label": "Level",
          "level.WARNING": "WARNING",
          "level.INFO": "INFO",
          "level.FINE": "FINE",
          "level.FINER": "FINER",
          "level.FINEST": "FINEST",
          "category.Audit": "Audit",
          "category.Log": "Log"
        }
      }
    ]
  },
  {
    "configName": "AuditRecordToXml",
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/AuditRecordToXml",
        "title": "Convert Audit Record to XML",
        "properties": {
          "otherTargetMessageVariable": {
            "type": "string"
          },
          "target": {
            "type": "string",
            "enum": [
              "REQUEST",
              "RESPONSE",
              "OTHER"
            ],
            "default": "REQUEST"
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Convert Audit Record to XML",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/target",
            "options": {
              "messageTarget": true,
              "otherTargetMessageVariableLabel": "assertion.common.target.otherTargetContextVariable"
            }
          }
        ]
      }
    ]
  },
  {
    "configName": "Authentication",
    "displayNameFormats": [
      {
        "format": "Authenticate against {{.identityProviderOid}}",
        "condition": "true"
      }
    ],
    "refVariables": [
      {
        "fieldPath": ".",
        "suffix": "idp.error.login",
        "refType": "OUT",
        "dataType": "string",
        "settable": false,
        "multivalued": true
      },
      {
        "fieldPath": ".",
        "suffix": "idp.error.message",
        "refType": "OUT",
        "dataType": "string",
        "settable": false,
        "multivalued": true
      }
    ],
    "refEntities": [
      {
        "fieldPath": ".identityProviderOid",
        "refType": "GOID",
        "entityType": "IdpRef"
      }
    ],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/Authentication",
        "title": "Authenticate Against Identity Provider",
        "properties": {
          "identityProviderOid": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/sub-types/goid"
          },
          "identityTag": {
            "type": "string"
          },
          "otherTargetMessageVariable": {
            "type": "string"
          },
          "target": {
            "type": "string",
            "enum": [
              "REQUEST",
              "RESPONSE",
              "OTHER"
            ],
            "default": "REQUEST"
          }
        }
      },
      {
        "type": "string",
        "$id": "https://l7tech.com/2025/json-schema/assertions/sub-types/goid"
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Authenticate Against Identity Provider",
        "i18n": "target",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/target",
            "options": {
              "messageTarget": true,
              "otherTargetMessageVariableLabel": "assertion.common.target.otherTargetContextVariable"
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/identityProviderOid",
            "i18n": "identityProvider"
          },
          {
            "type": "Control",
            "scope": "#/properties/identityTag",
            "i18n": "identityTag"
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/Authentication",
        "locale": "en",
        "content": {
          "error.pattern": "Only alphanumeric, space, underline, dash, dot and comma characters allowed",
          "identityProvider.label": "Identity Provider",
          "identityTag.label": "Identity Tag"
        }
      }
    ]
  },
  {
    "configName": "BufferData",
    "displayNameFormats": [
      {
        "format": "Accumulate Data in Memory",
        "condition": true
      }
    ],
    "refVariables": [
      {
        "fieldPath": ".newDataVarName",
        "refType": "IN",
        "dataType": "string",
        "settable": true
      },
      {
        "fieldPath": ".variablePrefix",
        "refType": "OUT",
        "dataType": "string",
        "settable": false,
        "prefixed": true
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".wasFull",
        "refType": "OUT",
        "dataType": "boolean",
        "settable": false,
        "multivalued": false
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".wasExtracted",
        "refType": "OUT",
        "dataType": "boolean",
        "settable": false,
        "multivalued": false
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".newSize.bytes",
        "refType": "OUT",
        "dataType": "decimal",
        "settable": false,
        "multivalued": false
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".newAge.millis",
        "refType": "OUT",
        "dataType": "decimal",
        "settable": false,
        "multivalued": false
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".extractedMessage",
        "refType": "OUT",
        "dataType": "message",
        "settable": false,
        "multivalued": false
      }
    ],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/BufferData",
        "title": "Accumulate Data in Memory",
        "properties": {
          "bufferName": {
            "type": "string"
          },
          "maxAgeMillis": {
            "type": "integer"
          },
          "__timeType": {
            "type": "string",
            "enum": [
              "ms",
              "s",
              "m",
              "h"
            ],
            "default": "h"
          },
          "maxSizeBytes": {
            "type": "integer"
          },
          "__sizeType": {
            "type": "string",
            "enum": [
              "bytes",
              "kilobytes",
              "megabytes"
            ],
            "default": "megabytes"
          },
          "newDataVarName": {
            "type": "string"
          },
          "variablePrefix": {
            "type": "string"
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Accumulate Data in Memory",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/bufferName",
            "options": {
              "markAsRequired": true
            }
          },
          {
            "type": "Group",
            "i18n": "maxAgeMillis",
            "options": {
              "groupType": "wrapCustomClass",
              "labelColor": "bodyText",
              "customClass": "time-row-group"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/maxAgeMillis",
                "i18n": "maxAgeMillis",
                "options": {
                  "customClass": "hide-label",
                  "markAsRequired": true,
                  "maxLength": 10,
                  "minValue": 0
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/__timeType",
                "i18n": "__timeType",
                "options": {
                  "customClass": "hide-label",
                  "markAsRequired": true
                }
              }
            ]
          },
          {
            "type": "Group",
            "i18n": "maxSizeBytes",
            "options": {
              "groupType": "wrapCustomClass",
              "labelColor": "bodyText",
              "customClass": "time-row-group"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/maxSizeBytes",
                "i18n": "maxSizeBytes",
                "options": {
                  "customClass": "hide-label",
                  "markAsRequired": true,
                  "minValue": 0
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/__sizeType",
                "i18n": "__sizeType",
                "options": {
                  "customClass": "hide-label",
                  "markAsRequired": true
                }
              }
            ]
          },
          {
            "type": "Group",
            "i18n": "dataHelpText",
            "options": {
              "groupType": "wrapCustomClass",
              "labelColor": "bodyText",
              "customClass": "helper-text-group"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/newDataVarName",
                "i18n": "newDataVarName",
                "options": {
                  "markAsRequired": true,
                  "contextVariable": true,
                  "variableType": "input",
                  "allowedDataTypes": []
                }
              }
            ]
          },
          {
            "type": "Group",
            "i18n": "varHelpText",
            "options": {
              "groupType": "wrapCustomClass",
              "labelColor": "bodyText",
              "customClass": "helper-text-group"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/variablePrefix",
                "options": {
                  "markAsRequired": true,
                  "contextVariable": true,
                  "variableType": "output",
                  "allowedDataTypes": []
                }
              }
            ]
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/BufferData",
        "locale": "en",
        "content": {
          "maxAgeMillis": "Maximum Buffer Time",
          "maxSizeBytes.error": "Value of maximum buffer size exceed limit of 500000000 bytes",
          "maxAgeMillis.error": "Value of maximum buffer time exceed limit of 2147483647",
          "maxSizeBytes": "Maximum Buffer Size",
          "newDataVarName.label": "Append Data from Variable",
          "dataHelpText": "Data in the following context variable will be appended to the above named buffer and will accumulate across multiple requests.",
          "varHelpText": "If the buffer exceeds the maximum time or size, it will be extracted to ${prefix}.extractedMessage.",
          "__timeType.label": "Buffer Time Units",
          "__timeType.ms": "Milliseconds",
          "__timeType.s": "Seconds",
          "__timeType.m": "Minutes",
          "__timeType.h": "Hours",
          "__sizeType.label": "Buffer Size Units",
          "__sizeType.bytes": "Bytes",
          "__sizeType.kilobytes": "Kilobytes",
          "__sizeType.megabytes": "Megabytes"
        }
      }
    ]
  },
  {
    "configName": "BuildRstSoapRequest",
    "displayNameFormats": [
      {
        "format": "Build RST SOAP Cancel Request",
        "condition": "equals({{.requestType}}, http://schemas.xmlsoap.org/ws/2005/02/trust/Cancel)"
      },
      {
        "format": "Build RST SOAP Issue Request",
        "condition": "isNull({{.requestType}})"
      },
      {
        "format": "Build RST SOAP Issue Request",
        "condition": "equals({{.requestType}}, http://schemas.xmlsoap.org/ws/2005/02/trust/Issue)"
      },
      {
        "format": "Build RST SOAP Validate Request",
        "condition": "equals({{.requestType}}, http://schemas.xmlsoap.org/ws/2005/02/trust/Validate)"
      }
    ],
    "refVariables": [
      {
        "fieldPath": ".targetTokenVariable",
        "refType": "IN",
        "dataType": "cert",
        "multivalued": true,
        "settable": true
      },
      {
        "fieldPath": ".variablePrefix",
        "refType": "OUT",
        "dataType": "other",
        "prefixed": true
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".rstRequest",
        "refType": "OUT",
        "dataType": "message"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".clientEntropy",
        "refType": "OUT",
        "dataType": "string"
      }
    ],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/BuildRstSoapRequest",
        "title": "Build RST SOAP Request",
        "properties": {
          "appliesToAddress": {
            "type": "string"
          },
          "includeClientEntropy": {
            "type": "boolean",
            "default": false
          },
          "issuerAddress": {
            "type": "string"
          },
          "keySize": {
            "type": "string",
            "default": "NOT_INCLUDED",
            "enum": [
              "NOT_INCLUDED",
              "128",
              "256",
              "512",
              "1024"
            ]
          },
          "lifetime": {
            "type": "number"
          },
          "lifetimeTimeUnit": {
            "type": "string",
            "enum": [
              "ms",
              "s",
              "m",
              "h",
              "d"
            ]
          },
          "requestType": {
            "type": "string",
            "default": "http://schemas.xmlsoap.org/ws/2005/02/trust/Issue",
            "enum": [
              "http://schemas.xmlsoap.org/ws/2005/02/trust/Cancel",
              "http://schemas.xmlsoap.org/ws/2005/02/trust/Issue",
              "http://schemas.xmlsoap.org/ws/2005/02/trust/Validate"
            ]
          },
          "soapVersion": {
            "type": "string",
            "enum": [
              "SOAP_1_2",
              "SOAP_1_1"
            ]
          },
          "targetTokenVariable": {
            "type": "string"
          },
          "tokenType": {
            "type": "string",
            "default": "NOT_INCLUDED",
            "enum": [
              "NOT_INCLUDED",
              "SAML2 Assertion",
              "SAML Assertion",
              "WS-SC SecurityContextToken"
            ]
          },
          "variablePrefix": {
            "type": "string"
          },
          "wsTrustNamespace": {
            "type": "string",
            "enum": [
              "http://docs.oasis-open.org/ws-sx/ws-trust/200512",
              "http://schemas.xmlsoap.org/ws/2005/02/trust",
              "http://schemas.xmlsoap.org/ws/2004/04/trust"
            ]
          },
          "__tokenLifetime": {
            "type": "boolean",
            "default": false
          },
          "__useSystemDefault": {
            "type": "boolean",
            "default": true
          }
        }
      },
      {
        "type": "string",
        "$id": "https://l7tech.com/2025/json-schema/assertions/sub-types/timeUnit",
        "enum": [
          "ms",
          "s",
          "m",
          "h",
          "d"
        ]
      },
      {
        "type": "string",
        "$id": "https://l7tech.com/2025/json-schema/assertions/sub-types/wsTrustRequestType",
        "enum": [
          "http://schemas.xmlsoap.org/ws/2005/02/trust/Issue",
          "http://schemas.xmlsoap.org/ws/2005/02/trust/Validate",
          "http://schemas.xmlsoap.org/ws/2005/02/trust/Renew",
          "http://schemas.xmlsoap.org/ws/2005/02/trust/Cancel"
        ]
      },
      {
        "type": "string",
        "$id": "https://l7tech.com/2025/json-schema/assertions/sub-types/securityTokenType"
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Build RST SOAP Request",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/soapVersion",
            "i18n": "soapVersion"
          },
          {
            "type": "Control",
            "scope": "#/properties/wsTrustNamespace",
            "i18n": "wsTrustNamespace"
          },
          {
            "type": "Control",
            "scope": "#/properties/tokenType",
            "i18n": "tokenType"
          },
          {
            "type": "Control",
            "scope": "#/properties/requestType",
            "i18n": "requestType"
          },
          {
            "type": "Group",
            "i18n": "destination",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "request-details-group-style"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/targetTokenVariable",
                "i18n": "targetTokenVariable",
                "options": {
                  "contextVariable": true,
                  "variableType": "input",
                  "allowedDataTypes": []
                },
                "rule": {
                  "effect": "HIDE",
                  "condition": {
                    "scope": "#/properties/requestType",
                    "schema": {
                      "const": "http://schemas.xmlsoap.org/ws/2005/02/trust/Issue"
                    }
                  }
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/issuerAddress",
                "i18n": "issuerAddress"
              },
              {
                "type": "Control",
                "scope": "#/properties/appliesToAddress",
                "i18n": "appliesToAddress"
              },
              {
                "type": "Control",
                "scope": "#/properties/keySize",
                "i18n": "keySize"
              },
              {
                "type": "Control",
                "scope": "#/properties/__tokenLifetime",
                "i18n": "lifetime",
                "options": {
                  "subUiSchema": {
                    "type": "VerticalLayout",
                    "elements": [
                      {
                        "type": "Control",
                        "i18n": "__useSystemDefault",
                        "scope": "#/properties/__useSystemDefault"
                      },
                      {
                        "type": "Group",
                        "options": {
                          "groupType": "wrapCustomClass",
                          "customClass": "time-unit-group-style"
                        },
                        "rule": {
                          "effect": "HIDE",
                          "condition": {
                            "scope": "#/properties/__useSystemDefault",
                            "schema": {
                              "const": true
                            }
                          }
                        },
                        "elements": [
                          {
                            "type": "Control",
                            "scope": "#/properties/lifetime",
                            "i18n": "tokenLifetime",
                            "options": {
                              "markAsRequired": true
                            }
                          },
                          {
                            "type": "Control",
                            "scope": "#/properties/lifetimeTimeUnit",
                            "i18n": "lifetimeTimeUnit"
                          }
                        ]
                      }
                    ]
                  }
                }
              },
              {
                "type": "Control",
                "i18n": "includeClientEntropy",
                "scope": "#/properties/includeClientEntropy"
              }
            ]
          },
          {
            "type": "Control",
            "i18n": "variablePrefix",
            "scope": "#/properties/variablePrefix",
            "options": {
              "markAsRequired": true,
              "contextVariable": true,
              "variableType": "output",
              "allowedDataTypes": []
            }
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/BuildRstSoapRequest",
        "locale": "en",
        "content": {
          "soapVersion.label": "SOAP Version",
          "soapVersion.SOAP_1_1": "1.1",
          "soapVersion.SOAP_1_2": "1.2",
          "wsTrustNamespace.label": "WS-Trust Namespace",
          "tokenType.label": "Token Type",
          "tokenType.NOT_INCLUDED": "<Not Included>",
          "tokenType.SAML2 Assertion": "SAML2 Assertion",
          "tokenType.SAML Assertion": "SAML Assertion",
          "tokenType.WS-SC SecurityContextToken": "WS-SC SecurityContextToken",
          "requestType.label": "Request Type",
          "requestType.http://schemas.xmlsoap.org/ws/2005/02/trust/Cancel": "Cancel",
          "requestType.http://schemas.xmlsoap.org/ws/2005/02/trust/Issue": "Issue",
          "requestType.http://schemas.xmlsoap.org/ws/2005/02/trust/Validate": "Validate",
          "issuerAddress.label": "<wst:Issuer> Address",
          "appliesToAddress.label": "<wsp:Applies To> Address",
          "targetTokenVariable.label": "Target Token Variable",
          "keySize.label": "Key Size (bits)",
          "keySize.NOT_INCLUDED": "<Not Included>",
          "keySize.128": "128",
          "keySize.256": "256",
          "keySize.512": "512",
          "keySize.1024": "1024",
          "lifetime.label": "Specify token lifetime",
          "destination": "Request Details",
          "__useSystemDefault.label": "Use system default",
          "tokenLifetime.label": "Token Lifetime",
          "includeClientEntropy.label": "Generate and include client entropy",
          "variablePrefix.label": "Variable Prefix",
          "expirePeriod.error": "Time must be greater than or equal to 0 and not more than 36,500 days",
          "lifetimeTimeUnit.label": "Lifetime Time Unit",
          "lifetimeTimeUnit.ms": "milliseconds",
          "lifetimeTimeUnit.s": "seconds",
          "lifetimeTimeUnit.m": "minutes",
          "lifetimeTimeUnit.h": "hours",
          "lifetimeTimeUnit.d": "days"
        }
      }
    ]
  },
  {
    "configName": "BuildRstrSoapResponse",
    "displayNameFormats": [
      {
        "format": "Build RSTR SOAP Response",
        "condition": "true"
      }
    ],
    "refVariables": [
      {
        "fieldPath": ".variablePrefix",
        "refType": "OUT",
        "dataType": "other",
        "prefixed": true
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".rstrResponse",
        "refType": "OUT",
        "dataType": "message"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".wsaNamespace",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".rstrWsaAction",
        "refType": "OUT",
        "dataType": "string"
      }
    ],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/BuildRstrSoapResponse",
        "title": "Build RSTR SOAP Response",
        "properties": {
          "__type": {
            "type": "string",
            "enum": [
              "ISSUE",
              "CANCEL"
            ],
            "default": "ISSUE"
          },
          "addressOfEPR": {
            "type": "string"
          },
          "identityTarget": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/sub-types/identityTarget"
          },
          "includeAppliesTo": {
            "type": "boolean",
            "default": false
          },
          "includeAttachedRef": {
            "type": "boolean",
            "default": false
          },
          "includeKeySize": {
            "type": "boolean",
            "default": false
          },
          "includeLifetime": {
            "type": "boolean",
            "default": false
          },
          "includeUnattachedRef": {
            "type": "boolean",
            "default": false
          },
          "lifetime": {
            "type": "number"
          },
          "otherTargetMessagevariablePrefix": {
            "type": "string"
          },
          "recipientContext": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/sub-types/xmlSecurityRecipientContext"
          },
          "responseForIssuance": {
            "type": "boolean",
            "default": true
          },
          "target": {
            "type": "string",
            "enum": [
              "REQUEST",
              "RESPONSE",
              "OTHER"
            ],
            "default": "REQUEST"
          },
          "timeUnit": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/sub-types/timeUnit",
            "default": "m"
          },
          "tokenIssued": {
            "type": "string"
          },
          "variablePrefix": {
            "type": "string"
          }
        }
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/sub-types/identityTarget",
        "properties": {
          "identityId": {
            "type": "string"
          },
          "identityInfo": {
            "type": "string"
          },
          "identityProviderOid": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/sub-types/goid"
          },
          "targetIdentityType": {
            "type": "string",
            "enum": [
              "USER",
              "GROUP",
              "PROVIDER",
              "TAG"
            ]
          }
        }
      },
      {
        "type": "string",
        "$id": "https://l7tech.com/2025/json-schema/assertions/sub-types/goid"
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/sub-types/xmlSecurityRecipientContext",
        "properties": {
          "actor": {
            "type": "string"
          },
          "base64edX509Certificate": {
            "type": "string"
          }
        }
      },
      {
        "type": "string",
        "$id": "https://l7tech.com/2025/json-schema/assertions/sub-types/timeUnit",
        "enum": [
          "ms",
          "s",
          "m",
          "h",
          "d"
        ]
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/BuildRstrSoapResponse/Main",
        "title": "Build RSTR SOAP Response",
        "properties": {
          "BuildRstrSoapResponse": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/BuildRstrSoapResponse"
          },
          ".properties": {
            "type": "object",
            "properties": {
              ".enabled": {
                "type": "boolean",
                "default": true
              },
              ".left.comment": {
                "type": "string"
              },
              ".right.comment": {
                "type": "string"
              }
            }
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Build RSTR SOAP Response",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/target",
            "options": {
              "messageTarget": true,
              "otherTargetMessageVariableLabel": "assertion.common.target.otherTargetContextVariable"
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/__type",
            "i18n": "__type"
          },
          {
            "type": "Control",
            "scope": "#/properties/tokenIssued",
            "i18n": "tokenIssued",
            "options": {
              "markAsRequired": true
            },
            "rule": {
              "effect": "SHOW",
              "condition": {
                "scope": "#/properties/__type",
                "schema": {
                  "const": "ISSUE"
                }
              }
            }
          },
          {
            "type": "Group",
            "options": {
              "groupType": "wrapCustomClass"
            },
            "elements": [
              {
                "type": "Group",
                "i18n": "subtitle",
                "options": {
                  "groupType": "wrapCustomClass",
                  "customClass": "request-details-group-style"
                },
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/includeAppliesTo",
                    "i18n": "includeAppliesTo"
                  },
                  {
                    "type": "Group",
                    "options": {
                      "groupType": "wrapCustomClass",
                      "customClass": "address-of-epr-group-style"
                    },
                    "elements": [
                      {
                        "type": "Control",
                        "scope": "#/properties/addressOfEPR",
                        "i18n": "addressOfEPR",
                        "options": {
                          "markAsRequired": "true"
                        },
                        "rule": {
                          "effect": "SHOW",
                          "condition": {
                            "scope": "#/properties/includeAppliesTo",
                            "schema": {
                              "const": true
                            }
                          }
                        }
                      }
                    ]
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/includeAttachedRef",
                    "i18n": "includeAttachedRef"
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/includeUnattachedRef",
                    "i18n": "includeUnattachedRef"
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/includeKeySize",
                    "i18n": "includeKeySize"
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/includeLifetime",
                    "i18n": "includeLifetime"
                  },
                  {
                    "type": "Group",
                    "options": {
                      "groupType": "wrapCustomClass",
                      "i18n": "includeLifetime",
                      "customClass": "time-unit-group-style"
                    },
                    "rule": {
                      "effect": "SHOW",
                      "condition": {
                        "scope": "#/properties/includeLifetime",
                        "schema": {
                          "const": true
                        }
                      }
                    },
                    "elements": [
                      {
                        "type": "Control",
                        "scope": "#/properties/lifetime",
                        "options": {
                          "markAsRequired": true
                        }
                      },
                      {
                        "type": "Control",
                        "label": false,
                        "scope": "#/properties/timeUnit"
                      }
                    ]
                  }
                ]
              }
            ],
            "rule": {
              "effect": "SHOW",
              "condition": {
                "scope": "#/properties/__type",
                "schema": {
                  "const": "ISSUE"
                }
              }
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/variablePrefix",
            "i18n": "variablePrefix",
            "options": {
              "markAsRequired": true,
              "contextVariable": true,
              "variableType": "output",
              "allowedDataTypes": []
            }
          },
          {
            "type": "Group",
            "label": "WS-Security Recipient",
            "options": {
              "groupType": "ShowHide"
            },
            "elements": [
              {
                "type": "Control",
                "options": {
                  "wssRecipient": true
                }
              }
            ]
          },
          {
            "type": "Group",
            "label": "Target Identity",
            "options": {
              "groupType": "ShowHide"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/identityTarget",
                "i18n": "identityTarget",
                "options": {
                  "identityTags": true
                }
              }
            ]
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/BuildRstrSoapResponse",
        "locale": "en",
        "content": {
          "subtitle": "RSTR Configuration",
          "__type.label": "Response Message Type",
          "__type.ISSUE": "Includes an issued security token",
          "__type.CANCEL": "Includes the result of a token cancellation",
          "tokenIssued.label": "Variable Containing Token",
          "addressOfEPR.label": "WS-Addressing Address",
          "includeAttachedRef.label": "Include a <RequestedAttachedReference> element",
          "includeUnattachedRef.label": "Include a <RequestedUnattachedReference> element",
          "includeLifetime.label": "Set a lifetime for the returned security token",
          "includeAppliesTo.label": "Include an <AppliesTo> element",
          "includeKeySize.label": "Include a <KeySize> element (when applicable)",
          "lifetime.label": "Expiry Time",
          "timeUnit.ms": "Milliseconds",
          "timeUnit.s": "Seconds",
          "timeUnit.m": "Minutes",
          "timeUnit.h": "Hours",
          "timeUnit.d": "Days",
          "variablePrefix.label": "Variable Prefix",
          "identityTarget.label": "Select Identity",
          "lifetime.error": "Expiry time must be greater than zero and less than or equal to 36500 days"
        }
      }
    ]
  },
  {
    "configName": "BulkJdbcInsert",
    "displayNameFormats": [
      {
        "format": "Insert JDBC Data in Bulk into {{.tableName}} Table via {{.connectionName}}",
        "condition": "not(isNull({{.tableName}}))"
      },
      {
        "format": "Insert JDBC Data in Bulk",
        "condition": "true"
      }
    ],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/BulkJdbcInsert",
        "title": "Insert JDBC Data in Bulk",
        "properties": {
          "batchSize": {
            "type": "integer",
            "default": 100
          },
          "columnMapperList": {
            "type": "array",
            "items": {
              "$ref": "https://l7tech.com/2025/json-schema/assertions/BulkJdbcInsert:columnMapper"
            }
          },
          "compression": {
            "type": "string",
            "enum": [
              "NONE",
              "GZIP",
              "DEFLATE"
            ],
            "default": "GZIP"
          },
          "connectionName": {
            "type": "string"
          },
          "escapeQuote": {
            "type": "string"
          },
          "fieldDelimiter": {
            "type": "string"
          },
          "otherTargetMessageVariable": {
            "type": "string"
          },
          "quoteChar": {
            "type": "string"
          },
          "quoted": {
            "type": "boolean"
          },
          "recordDelimiter": {
            "type": "string",
            "enum": [
              "CRLF",
              "LF",
              "CR"
            ],
            "default": "CRLF"
          },
          "schema": {
            "type": "string"
          },
          "tableName": {
            "type": "string"
          },
          "target": {
            "type": "string",
            "enum": [
              "REQUEST",
              "RESPONSE",
              "OTHER"
            ],
            "default": "REQUEST"
          }
        }
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/BulkJdbcInsert:columnMapper",
        "properties": {
          "name": {
            "type": "string"
          },
          "order": {
            "type": "integer",
            "default": 0
          },
          "transformation": {
            "type": "string",
            "enum": [
              "Add",
              "ConstantInt",
              "ConstantString",
              "Regex2Bool",
              "Regex2Int",
              "String",
              "Subtract",
              "UUID"
            ],
            "default": "Add"
          },
          "transformParam": {
            "type": "string",
            "title": "Parameter"
          }
        }
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/BulkJdbcInsert/Main",
        "title": "Insert JDBC Data in Bulk",
        "properties": {
          "BulkJdbcInsert": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/BulkJdbcInsert"
          },
          ".properties": {
            "type": "object",
            "properties": {
              ".enabled": {
                "type": "boolean",
                "default": true
              },
              ".left.comment": {
                "type": "string"
              },
              ".right.comment": {
                "type": "string"
              }
            }
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Insert JDBC Data in Bulk",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/target",
            "options": {
              "messageTarget": true,
              "otherTargetMessageVariableLabel": "assertion.common.target.otherTargetContextVariable"
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/connectionName",
            "i18n": "connectionName",
            "options": {
              "markAsRequired": true,
              "autocomplete": true,
              "allowUserProvidedInput": true,
              "defaultOptions": []
            }
          },
          {
            "type": "Group",
            "i18n": "DataMapping",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "data-mapping"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/tableName",
                "i18n": "tableName",
                "options": {
                  "markAsRequired": true
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/recordDelimiter",
                "i18n": "recordDelimiter",
                "options": {
                  "markAsRequired": true
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/fieldDelimiter",
                "i18n": "fieldDelimiter",
                "options": {
                  "markAsRequired": true
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/quoted",
                "i18n": "quoted"
              },
              {
                "type": "Control",
                "scope": "#/properties/quoteChar",
                "i18n": "quoteChar",
                "options": {
                  "markAsRequired": true
                },
                "rule": {
                  "effect": "SHOW",
                  "condition": {
                    "scope": "#/properties/quoted",
                    "schema": {
                      "const": true
                    }
                  }
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/escapeQuote",
                "i18n": "escapeQuote"
              },
              {
                "type": "Group",
                "i18n": "columnMappingTransformation.label",
                "options": {
                  "groupType": "wrapCustomClass",
                  "customClass": "label-heading-style"
                },
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/columnMapperList",
                    "i18n": "columnMappingTransformation.label",
                    "options": {
                      "fieldGroup": true,
                      "buttonLabel": "columnMapperList.btn",
                      "detail": {
                        "type": "VerticalLayout",
                        "elements": [
                          {
                            "type": "Control",
                            "scope": "#/properties/name",
                            "i18n": "name",
                            "options": {
                              "markAsRequired": true
                            }
                          },
                          {
                            "type": "Control",
                            "scope": "#/properties/order",
                            "i18n": "order",
                            "options": {
                              "markAsRequired": true,
                              "hideColumn": true
                            },
                            "rule": {
                              "effect": "HIDE",
                              "condition": {
                                "scope": "#/properties/transformation",
                                "schema": {
                                  "enum": [
                                    "UUID"
                                  ]
                                }
                              }
                            }
                          },
                          {
                            "type": "Control",
                            "scope": "#/properties/transformation",
                            "i18n": "transformation"
                          },
                          {
                            "type": "Control",
                            "scope": "#/properties/transformParam",
                            "i18n": "transformParam",
                            "options": {
                              "hideColumn": true
                            },
                            "rule": {
                              "effect": "HIDE",
                              "condition": {
                                "scope": "#/properties/transformation",
                                "schema": {
                                  "enum": [
                                    "String",
                                    "UUID"
                                  ]
                                }
                              }
                            }
                          }
                        ]
                      }
                    }
                  }
                ]
              },
              {
                "type": "Control",
                "scope": "#/properties/compression",
                "i18n": "compression",
                "options": {
                  "markAsRequired": true
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/batchSize",
                "i18n": "batchSize",
                "options": {
                  "markAsRequired": true
                }
              }
            ]
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/BulkJdbcInsert",
        "locale": "en",
        "content": {
          "connectionName.label": "Choose JDBC Connection",
          "DataMapping": "Data Mapping",
          "tableName.label": "Table Name",
          "recordDelimiter.label": "Record Delimiter",
          "fieldDelimiter.label": "Field Delimiter",
          "quoted.label": "Quoted",
          "quoteChar.label": "Quote Char",
          "escapeQuote.label": "Escape Char",
          "mappings": "Mappings",
          "name.label": "Table Column",
          "order.label": "CSV Field",
          "transformParam": "Parameter",
          "transformation": "Transformation",
          "compression.label": "Decompression",
          "batchSize.label": "Batch Size",
          "target": "Message Target",
          "ERROR": "Field must have maximum of 1 character",
          "parameter.ERROR": "Parameter field must valid integer",
          "columnMapperList.btn": "Add Column Mapping",
          "columnMappingTransformation.label": "Column Mapping"
        }
      }
    ]
  },
  {
    "configName": "CORS",
    "refVariables": [
      {
        "fieldPath": ".variablePrefix",
        "refType": "OUT",
        "dataType": "other",
        "multivalued": false,
        "prefixed": true,
        "settable": false
      },
      {
        "fieldPath": ".variablePrefix",
        "refType": "OUT",
        "dataType": "boolean",
        "multivalued": false,
        "prefixed": false,
        "settable": false,
        "suffix": ".isPreflight"
      },
      {
        "fieldPath": ".variablePrefix",
        "refType": "OUT",
        "dataType": "boolean",
        "multivalued": false,
        "prefixed": false,
        "settable": false,
        "suffix": ".isCORS"
      }
    ],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/CORS",
        "title": "Process CORS Request",
        "properties": {
          "acceptSameOriginRequests": {
            "type": "boolean",
            "default": false
          },
          "__acceptedHeaders": {
            "type": "string",
            "enum": [
              "allowAll",
              "specifyHeaders"
            ],
            "default": "allowAll"
          },
          "acceptedHeaders": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string",
                  "title": "Header"
                }
              }
            }
          },
          "acceptedMethods": {
            "type": "array",
            "uniqueItems": true,
            "items": {
              "type": "string",
              "enum": [
                "GET",
                "PUT",
                "HEAD",
                "DELETE",
                "POST",
                "OPTIONS",
                "PATCH",
                "OTHER"
              ]
            }
          },
          "__acceptedOrigins": {
            "type": "string",
            "enum": [
              "allowAll",
              "specifyOrigins"
            ],
            "default": "allowAll"
          },
          "acceptedOrigins": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string",
                  "title": "Origin"
                }
              }
            }
          },
          "allowNonStandardMethods": {
            "type": "boolean",
            "default": false
          },
          "dynamicOrigins": {
            "type": "string"
          },
          "exposedHeaders": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string",
                  "title": "Header"
                }
              }
            }
          },
          "requireCors": {
            "type": "boolean",
            "default": true
          },
          "supportsCredentials": {
            "type": "boolean",
            "default": true
          },
          "__responseCacheTime": {
            "type": "boolean",
            "default": false
          },
          "responseCacheTime": {
            "type": "string"
          },
          "variablePrefix": {
            "type": "string"
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Process CORS Request",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/requireCors",
            "i18n": "requireCors"
          },
          {
            "type": "Control",
            "scope": "#/properties/supportsCredentials"
          },
          {
            "type": "Control",
            "scope": "#/properties/__responseCacheTime",
            "i18n": "responseCacheAge"
          },
          {
            "type": "Control",
            "scope": "#/properties/responseCacheTime",
            "i18n": "responseCacheTime",
            "options": {
              "markAsRequired": true,
              "customClass": "common-conditional-field"
            },
            "rule": {
              "effect": "SHOW",
              "condition": {
                "scope": "#/properties/__responseCacheTime",
                "schema": {
                  "const": true
                }
              }
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/variablePrefix",
            "options": {
              "markAsRequired": true,
              "contextVariable": true,
              "variableType": "output",
              "allowedDataTypes": []
            }
          },
          {
            "type": "Group",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "method-group",
              "markAsRequired": true
            },
            "i18n": "acceptedMethods.heading",
            "elements": [
              {
                "type": "Control",
                "i18n": "acceptedMethods",
                "scope": "#/properties/acceptedMethods",
                "options": {
                  "format": "checkbox"
                }
              }
            ]
          },
          {
            "type": "Group",
            "label": "Accepted Origins",
            "options": {
              "groupType": "Accordion"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/__acceptedOrigins",
                "i18n": "acceptedOrigins",
                "label": false,
                "options": {
                  "format": "radio",
                  "direction": "column",
                  "useRowLayout": false
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/acceptedOrigins",
                "options": {
                  "nameValueList": true,
                  "detail": {
                    "type": "HorizontalLayout",
                    "elements": [
                      {
                        "type": "Control",
                        "scope": "#/properties/name",
                        "options": {
                          "markAsRequired": true
                        }
                      }
                    ]
                  }
                },
                "rule": {
                  "effect": "SHOW",
                  "condition": {
                    "scope": "#/properties/__acceptedOrigins",
                    "schema": {
                      "const": "specifyOrigins"
                    }
                  }
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/acceptSameOriginRequests",
                "rule": {
                  "effect": "SHOW",
                  "condition": {
                    "scope": "#/properties/__acceptedOrigins",
                    "schema": {
                      "const": "specifyOrigins"
                    }
                  }
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/dynamicOrigins",
                "rule": {
                  "effect": "SHOW",
                  "condition": {
                    "scope": "#/properties/__acceptedOrigins",
                    "schema": {
                      "const": "specifyOrigins"
                    }
                  }
                }
              }
            ]
          },
          {
            "type": "Group",
            "label": "Accepted Headers",
            "options": {
              "groupType": "Accordion"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/__acceptedHeaders",
                "i18n": "acceptedHeaders",
                "label": false,
                "options": {
                  "format": "radio",
                  "direction": "column",
                  "useRowLayout": false
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/acceptedHeaders",
                "options": {
                  "nameValueList": true,
                  "detail": {
                    "type": "HorizontalLayout",
                    "elements": [
                      {
                        "type": "Control",
                        "scope": "#/properties/name",
                        "options": {
                          "markAsRequired": true
                        }
                      }
                    ]
                  }
                },
                "rule": {
                  "effect": "SHOW",
                  "condition": {
                    "scope": "#/properties/__acceptedHeaders",
                    "schema": {
                      "const": "specifyHeaders"
                    }
                  }
                }
              }
            ]
          },
          {
            "type": "Group",
            "label": "Exposed Headers",
            "options": {
              "groupType": "Accordion"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/exposedHeaders",
                "options": {
                  "nameValueList": true,
                  "detail": {
                    "type": "HorizontalLayout",
                    "elements": [
                      {
                        "type": "Control",
                        "scope": "#/properties/name",
                        "options": {
                          "markAsRequired": true
                        }
                      }
                    ]
                  }
                }
              }
            ]
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/CORS",
        "locale": "en",
        "content": {
          "acceptedHeaders": "Accepted Headers",
          "acceptedHeaders.allowAll": "Allow All",
          "acceptedHeaders.specifyHeaders": "Specify Headers",
          "acceptedOrigins": "Accepted Headers",
          "acceptedOrigins.allowAll": "Allow All",
          "acceptedOrigins.specifyOrigins": "Specify Origins",
          "allowCredHeader.label": "Return Allow-Credentials header",
          "responseCacheAge.label": "Return Access-Control-Max-Age header",
          "responseCacheTime.label": "Max Age (seconds)",
          "requireCors.label": "Require CORS",
          "allowNonStandardMethods.label": "OTHER",
          "responseCacheTime.error": "The Response Cache Age must be a number between 0 and 2147483647 or a single context variable.",
          "headerRequired.error": "Either at least one Header must be specified or Same Header requests must be enabled",
          "headerEmpty.error": "Header name should not be empty",
          "originRequired.error": "Either at least one Origin must be specified or Same Origin requests must be enabled",
          "originEmpty.error": "Origin name should not be empty",
          "exposedHeaderEmpty.error": "Header name should not be empty",
          "acceptedMethods.heading": "Allowed Methods",
          "acceptedMethods.label": "At least one method must be allowed.",
          "acceptedMethodsEmpty.error": "One method should be selected",
          "variablePrefix.error": "Invalid syntax",
          "acceptSameOriginRequests.error": "Either at least one origin must be specified, or same origin request must be enabled"
        }
      }
    ]
  },
  {
    "configName": "CacheLookup",
    "displayNameFormats": [
      {
        "format": "Look Up in Cache [defaultCache]",
        "condition": "isNull({{.cacheId}})"
      },
      {
        "format": "Look Up in Cache [{{.cacheId}}]",
        "condition": "true"
      }
    ],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/CacheLookup",
        "title": "Look Up in Cache",
        "properties": {
          "cacheEntryKey": {
            "type": "string"
          },
          "cacheId": {
            "type": "string"
          },
          "contentTypeOverride": {
            "type": "string"
          },
          "maxEntryAgeSeconds": {
            "type": "string"
          },
          "otherTargetMessageVariable": {
            "type": "string"
          },
          "target": {
            "type": "string",
            "enum": [
              "REQUEST",
              "RESPONSE",
              "OTHER"
            ]
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Look Up in Cache",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/target",
            "options": {
              "messageTarget": true,
              "otherTargetMessageVariableLabel": "assertion.common.target.otherTargetContextVariable"
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/cacheId",
            "i18n": "cacheId",
            "options": {
              "markAsRequired": true
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/cacheEntryKey",
            "i18n": "cacheEntryKey",
            "options": {
              "markAsRequired": true
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/maxEntryAgeSeconds",
            "i18n": "maximumAcceptableAge",
            "options": {
              "markAsRequired": true
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/contentTypeOverride",
            "i18n": "contentTypeOverride"
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/CacheLookup",
        "locale": "en",
        "content": {
          "cacheId.label": "Cache ID",
          "cacheEntryKey.label": "Cache Entry Key",
          "maximumAcceptableAge.label": "Maximum Acceptable Age (Seconds)",
          "contentTypeOverride.label": "Content-type Override",
          "contentTypeOverride.error_text": "Content type is invalid",
          "cacheEntryKey.error": "The cache entry key must contain atleast one interpolated context variable",
          "maximumAcceptableAge.error": "The Maximum age field must be a number between 0 and 9223372036854775."
        }
      }
    ]
  },
  {
    "configName": "CacheStorage",
    "displayNameFormats": [
      {
        "format": "Store to Cache [{{.cacheId}}]",
        "condition": "not(isNull({{.cacheId}}))"
      },
      {
        "format": "Store to Cache",
        "condition": "true"
      }
    ],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/CacheStorage",
        "title": "Store to Cache",
        "properties": {
          "cacheEntryKey": {
            "type": "string"
          },
          "cacheId": {
            "type": "string"
          },
          "maxEntries": {
            "type": "string"
          },
          "maxEntryAgeSeconds": {
            "type": "string"
          },
          "maxEntrySizeBytes": {
            "type": "string"
          },
          "otherTargetMessageVariable": {
            "type": "string"
          },
          "storeSoapFaults": {
            "type": "boolean",
            "default": true
          },
          "target": {
            "type": "string"
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Store to Cache",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/target",
            "options": {
              "messageTarget": true,
              "otherTargetMessageVariableLabel": "assertion.common.target.otherTargetContextVariable"
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/cacheId",
            "i18n": "cacheId",
            "options": {
              "markAsRequired": true
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/cacheEntryKey",
            "options": {
              "markAsRequired": true
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/maxEntries",
            "i18n": "maxEntries",
            "options": {
              "markAsRequired": true
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/maxEntryAgeSeconds",
            "i18n": "maxEntryAgeSeconds",
            "options": {
              "markAsRequired": true
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/maxEntrySizeBytes",
            "i18n": "maxEntrySizeBytes",
            "options": {
              "markAsRequired": true
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/storeSoapFaults",
            "i18n": "storeSoapFaults"
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/CacheStorage",
        "locale": "en",
        "content": {
          "cacheId.label": "Cache ID",
          "maxEntries.error": "The maximum entries field must be a number between 0 and 1000000.",
          "maxEntryAgeSeconds.error": "The maximum entry age field must be a number between 0 and 100000000.",
          "maxEntrySizeBytes.error": "The maximum entry size field must be a number between 0 and 1000000000.",
          "maxEntryAgeSeconds.label": "Maximum Entry Age (Seconds)",
          "maxEntrySizeBytes.label": "Maximum Entry Size (Bytes)",
          "storeSoapFaults.label": "Do Not Cache SOAP Faults",
          "maxEntries.label": "Maximum Entries",
          "cacheEntryKey.error": "The cache entry key must contain at least one interpolated context variable."
        }
      }
    ]
  },
  {
    "configName": "CancelSecurityContext",
    "displayNameFormats": [
      {
        "format": "Cancel Security Context to {{.outboundServiceUrl}}",
        "condition": "not(isNull({{.outboundServiceUrl}}))"
      },
      {
        "format": "Cancel Security Context",
        "condition": "true"
      }
    ],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/CancelSecurityContext",
        "title": "Cancel Security Context",
        "properties": {
          "requiredAuthorization": {
            "type": "string",
            "enum": [
              "NONE",
              "USER",
              "TOKEN"
            ],
            "default": "TOKEN"
          },
          "cancelInbound": {
            "type": "string",
            "enum": [
              "1",
              "2"
            ],
            "default": "1"
          },
          "failIfNotExist": {
            "type": "boolean",
            "default": true
          },
          "otherTargetMessageVariable": {
            "type": "string"
          },
          "outboundServiceUrl": {
            "type": "string"
          },
          "target": {
            "type": "string",
            "enum": [
              "REQUEST",
              "RESPONSE",
              "OTHER"
            ],
            "default": "REQUEST"
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Cancel Security Context",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/target",
            "options": {
              "messageTarget": true,
              "otherTargetMessageVariableLabel": "target.otherTargetMessageVariable"
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/cancelInbound",
            "i18n": "cancelInbound"
          },
          {
            "type": "Control",
            "i18n": "requiredAuthorization",
            "scope": "#/properties/requiredAuthorization",
            "rule": {
              "effect": "SHOW",
              "condition": {
                "scope": "#/properties/cancelInbound",
                "schema": {
                  "const": "1"
                }
              }
            }
          },
          {
            "type": "Control",
            "i18n": "outboundServiceUrl",
            "scope": "#/properties/outboundServiceUrl",
            "rule": {
              "effect": "SHOW",
              "condition": {
                "scope": "#/properties/cancelInbound",
                "schema": {
                  "const": "2"
                }
              }
            },
            "options": {
              "markAsRequired": true
            }
          },
          {
            "type": "Control",
            "i18n": "failIfNotExist",
            "scope": "#/properties/failIfNotExist"
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/CancelSecurityContext",
        "locale": "en",
        "content": {
          "requiredAuthorization.label": "Permit Cancellation",
          "requiredAuthorization.NONE": "always",
          "requiredAuthorization.USER": "when the token is owned by an authenticated user",
          "requiredAuthorization.TOKEN": "when the token was used to authenticate",
          "outboundServiceUrl.label": "Service URL",
          "failIfNotExist.label": "Fail if the context is not found or has expired.",
          "cancelInbound.label": "Secure Conversation Session",
          "cancelInbound.1": "Inbound",
          "cancelInbound.2": "Outbound",
          "target.otherTargetMessageVariable": "Context Variable"
        }
      }
    ]
  },
  {
    "configName": "CassandraQuery",
    "displayNameFormats": [
      {
        "format": "Perform Cassandra Query: {{.queryDocument}} via {{.connectionName}}",
        "condition": "true"
      }
    ],
    "refVariables": [
      {
        "fieldPath": ".variableName",
        "refType": "IN",
        "dataType": "cert",
        "multivalued": true,
        "settable": true
      },
      {
        "fieldPath": ".prefix",
        "refType": "OUT",
        "dataType": "other",
        "prefixed": true
      },
      {
        "fieldPath": ".prefix",
        "suffix": ".queryresult.count",
        "refType": "OUT",
        "dataType": "int"
      },
      {
        "fieldPath": ".prefix",
        "suffix": ".xmlResult",
        "refType": "OUT",
        "dataType": "string",
        "condition": "{{.generateXmlResult}}"
      },
      {
        "fieldPath": ".prefix",
        "secondaryFieldPath": ".namingMap",
        "refType": "OUT",
        "dataType": "string",
        "multivalued": true
      }
    ],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/CassandraQuery",
        "title": "Perform Cassandra Query",
        "properties": {
          "connectionName": {
            "type": "string"
          },
          "consistencyLevel": {
            "type": "string"
          },
          "failIfNoResults": {
            "type": "boolean",
            "default": false
          },
          "fetchSize": {
            "type": "integer"
          },
          "generateXmlResult": {
            "type": "boolean",
            "default": false
          },
          "maxRecords": {
            "type": "integer"
          },
          "namingMap": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "columnLabel": {
                  "type": "string"
                },
                "variableName": {
                  "type": "string"
                }
              }
            }
          },
          "overrideConsistencyLevel": {
            "type": "boolean"
          },
          "prefix": {
            "type": "string"
          },
          "queryDocument": {
            "type": "string"
          },
          "queryTimeout": {
            "type": "string"
          },
          "__test": {
            "type": "string"
          }
        }
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/CassandraQuery/Main",
        "title": "Perform Cassandra Query",
        "properties": {
          "CassandraQuery": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/CassandraQuery"
          },
          ".properties": {
            "type": "object",
            "properties": {
              ".enabled": {
                "type": "boolean",
                "default": true
              },
              ".left.comment": {
                "type": "string"
              },
              ".right.comment": {
                "type": "string"
              }
            }
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Perform Cassandra Query",
        "elements": [
          {
            "type": "Group",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "connection-spacing"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/connectionName",
                "i18n": "connectionName"
              }
            ]
          },
          {
            "type": "Group",
            "label": "Query",
            "isExpanded": true,
            "options": {
              "groupType": "Accordion"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/queryTimeout",
                "i18n": "query.queryTimeout",
                "options": {
                  "markAsRequired": true
                }
              },
              {
                "type": "Group",
                "options": {
                  "groupType": "wrapCustomClass",
                  "customClass": "consistency-level-spacing"
                },
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/overrideConsistencyLevel",
                    "i18n": "query.overrideConsistencyLevel"
                  }
                ]
              },
              {
                "type": "Group",
                "options": {
                  "groupType": "wrapCustomClass",
                  "customClass": "consistency-group"
                },
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/consistencyLevel",
                    "i18n": "query.consistencyLevel",
                    "options": {
                      "autocomplete": true,
                      "allowUserProvidedInput": true,
                      "defaultOptions": [
                        {
                          "label": "ANY",
                          "value": "ANY"
                        },
                        {
                          "label": "ONE",
                          "value": "ONE"
                        },
                        {
                          "label": "TWO",
                          "value": "TWO"
                        },
                        {
                          "label": "THREE",
                          "value": "THREE"
                        },
                        {
                          "label": "QUORUM",
                          "value": "QUORUM"
                        },
                        {
                          "label": "ALL",
                          "value": "ALL"
                        },
                        {
                          "label": "LOCAL_ONE",
                          "value": "LOCAL_ONE"
                        },
                        {
                          "label": "LOCAL_QUORUM",
                          "value": "LOCAL_QUORUM"
                        },
                        {
                          "label": "EACH_QUORUM",
                          "value": "EACH_QUORUM"
                        },
                        {
                          "label": "SERIAL",
                          "value": "SERIAL"
                        },
                        {
                          "label": "LOCAL_SERIAL",
                          "value": "LOCAL_SERIAL"
                        }
                      ]
                    },
                    "rule": {
                      "effect": "SHOW",
                      "condition": {
                        "scope": "#/properties/overrideConsistencyLevel",
                        "schema": {
                          "const": false
                        }
                      }
                    }
                  }
                ]
              },
              {
                "type": "Control",
                "scope": "#/properties/queryDocument",
                "i18n": "query.queryDocument",
                "options": {
                  "multiline": true,
                  "rows": 5,
                  "markAsRequired": true
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/__test",
                "i18n": "query.__test",
                "options": {
                  "controlType": "Button",
                  "variant": "outlined"
                },
                "rule": {
                  "effect": "DISABLE",
                  "condition": {
                    "scope": "#/properties/queryDocument",
                    "schema": {
                      "maxLength": 0
                    }
                  }
                }
              }
            ]
          },
          {
            "type": "Group",
            "label": "Context Variable Naming",
            "isExpanded": true,
            "options": {
              "groupType": "Accordion"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/namingMap",
                "i18n": "contextVariableNaming.namingMap",
                "options": {
                  "nameValueList": true,
                  "detail": {
                    "type": "VerticalLayout",
                    "elements": [
                      {
                        "type": "Control",
                        "scope": "#/properties/columnLabel",
                        "i18n": "contextVariableNaming.namingMap.columnLabel",
                        "options": {
                          "markAsRequired": true
                        }
                      },
                      {
                        "type": "Control",
                        "scope": "#/properties/variableName",
                        "i18n": "contextVariableNaming.namingMap.variableName",
                        "options": {
                          "markAsRequired": true,
                          "prefixInputText": "",
                          "contextVariable": true,
                          "variableType": "input",
                          "allowedDataTypes": []
                        }
                      }
                    ]
                  }
                }
              },
              {
                "type": "Group",
                "options": {
                  "groupType": "wrapCustomClass",
                  "customClass": "prefix-spacing"
                },
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/prefix",
                    "i18n": "contextVariableNaming.prefix",
                    "options": {
                      "markAsRequired": true,
                      "contextVariable": true,
                      "variableType": "input",
                      "allowedDataTypes": []
                    }
                  }
                ]
              }
            ]
          },
          {
            "type": "Group",
            "label": "Settings",
            "isExpanded": true,
            "options": {
              "groupType": "Accordion"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/maxRecords",
                "i18n": "settings.maxRecords",
                "options": {
                  "markAsRequired": true
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/fetchSize",
                "i18n": "settings.fetchSize",
                "options": {
                  "markAsRequired": true
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/failIfNoResults",
                "i18n": "settings.failIfNoResults"
              },
              {
                "type": "Control",
                "scope": "#/properties/generateXmlResult",
                "i18n": "settings.generateXmlResult"
              }
            ]
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/CassandraQuery",
        "locale": "en",
        "content": {
          "connectionName": "Choose Connection",
          "query.queryTimeout.label": "Query Timeout (seconds)",
          "query.consistencyLevel.label": "Query Consistency",
          "query.overrideConsistencyLevel.label": "Use default query consistency",
          "query.__test": "Test",
          "queryTimeout.error": "Query Timeout must be a single variable reference or a valid integer >= 0",
          "contextVariableNaming.namingMap.label": "Context Variables Naming",
          "contextVariableNaming.namingMap.columnLabel.label": "Column Label",
          "contextVariableNaming.namingMap.variableName.label": "Variable Name",
          "contextVariableNaming.prefix.label": "Variable Prefix",
          "contextVariableNaming.namingMap.columnLabel.error": "Column Label should not be duplicate",
          "settings.maxRecords.label": "Maximum Number Of Records Returned",
          "settings.fetchSize.label": "Query Fetch Size",
          "settings.failIfNoResults.label": "Fail assertion if there are no results returned by the query",
          "settings.generateXmlResult.label": "Generate XML result",
          "settings.maxRecords.error": "Must be a valid number between 1 and 10000.",
          "settings.fetchSize.error": "Fetch Size must be a number between 1 and 2147483647.",
          "test-query-modal.title": "Warning",
          "test-query-modal.non-select-query": "A non-select query could irrevocably destroy data or the database.",
          "test-query-modal.cannot-undone": "This cannot be undone.",
          "test-query-modal.checkbox-label": "Check this box to continue with the test",
          "test-query-modal.cancel-button": "Cancel",
          "test-query-modal.test-button": "Test",
          "query-testing-passed": "Query testing passed!",
          "query-testing-failed": "Query testing failed"
        }
      }
    ]
  },
  {
    "configName": "CertificateAttributes",
    "refVariables": [
      {
        "fieldPath": ".variablePrefix",
        "refType": "OUT",
        "dataType": "string",
        "settable": true
      },
      {
        "fieldPath": ".sourceVariable",
        "refType": "OUT",
        "dataType": "other",
        "prefixed": true
      }
    ],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/CertificateAttributes",
        "title": "Extract Attributes from Certificate",
        "properties": {
          "extensionOids": {
            "type": "string"
          },
          "extensionOidsEnabled": {
            "type": "boolean"
          },
          "sourceVariable": {
            "type": "string"
          },
          "sourceVariableEnabled": {
            "type": "boolean"
          },
          "variablePrefix": {
            "type": "string"
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Extract Attributes from Certificate",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/sourceVariableEnabled",
            "i18n": "sourceVariableEnabled",
            "options": {
              "subUiSchema": {
                "type": "Control",
                "scope": "#/properties/sourceVariable",
                "label": false,
                "options": {
                  "markAsRequired": true,
                  "contextVariable": true,
                  "variableType": "output",
                  "allowedDataTypes": []
                }
              }
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/extensionOidsEnabled",
            "i18n": "extensionOidsEnabled",
            "options": {
              "subUiSchema": {
                "type": "Control",
                "scope": "#/properties/extensionOids",
                "label": false
              }
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/variablePrefix",
            "i18n": "variablePrefix",
            "options": {
              "markAsRequired": true,
              "contextVariable": true,
              "variableType": "output",
              "allowedDataTypes": []
            }
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/CertificateAttributes",
        "locale": "en",
        "content": {
          "error.invalidExtensionOids": "Extension OIDs must be comma separated OIDs or context variable expressions, e.g., 2.5.29.29, ${<context.variable>}",
          "sourceVariableEnabled.label": "Source variable",
          "extensionOidsEnabled.label": "Extension OIDs",
          "variablePrefix.label": "Output Variable Prefix"
        }
      }
    ]
  },
  {
    "configName": "CircuitBreaker",
    "displayNameFormats": [
      {
        "format": "Apply Circuit Breaker (No Circuits enabled)",
        "condition": "and(equals({{.policyFailureCircuitEnabled}}, false), or(equals({{.latencyCircuitEnabled}}, false), isNull({{.latencyCircuitEnabled}})))"
      },
      {
        "format": "Apply Circuit Breaker",
        "condition": "true"
      }
    ],
    "refVariables": [],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Apply Circuit Breaker",
        "elements": [
          {
            "type": "Group",
            "i18n": "policyFailureCircuit.heading",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "section-heading"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/policyFailureCircuitEnabled",
                "i18n": "policyFailureCircuitEnabled"
              },
              {
                "type": "Group",
                "options": {
                  "groupType": "wrapCustomClass",
                  "customClass": "section-spacing"
                },
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/policyFailureCircuitMaxFailures",
                    "i18n": "policyFailureCircuitMaxFailures",
                    "options": {
                      "markAsRequired": true
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/policyFailureCircuitSamplingWindow",
                    "i18n": "policyFailureCircuitSamplingWindow",
                    "options": {
                      "markAsRequired": true
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/policyFailureCircuitRecoveryPeriod",
                    "i18n": "policyFailureCircuitRecoveryPeriod",
                    "options": {
                      "markAsRequired": true
                    }
                  },
                  {
                    "type": "Group",
                    "options": {
                      "groupType": "wrapCustomClass",
                      "customClass": "custom-tracker-id-spacing"
                    },
                    "elements": [
                      {
                        "type": "Control",
                        "scope": "#/properties/policyFailureCircuitCustomTrackerIdEnabled",
                        "i18n": "policyFailureCircuitCustomTrackerIdEnabled"
                      }
                    ]
                  },
                  {
                    "type": "Group",
                    "options": {
                      "groupType": "wrapCustomClass",
                      "customClass": "section-spacing"
                    },
                    "elements": [
                      {
                        "type": "Control",
                        "scope": "#/properties/policyFailureCircuitTrackerId",
                        "i18n": "policyFailureCircuitTrackerId",
                        "options": {
                          "markAsRequired": true
                        }
                      }
                    ],
                    "rule": {
                      "effect": "SHOW",
                      "condition": {
                        "scope": "#/properties/policyFailureCircuitCustomTrackerIdEnabled",
                        "schema": {
                          "const": true
                        }
                      }
                    }
                  }
                ],
                "rule": {
                  "effect": "SHOW",
                  "condition": {
                    "scope": "#/properties/policyFailureCircuitEnabled",
                    "schema": {
                      "const": true
                    }
                  }
                }
              }
            ]
          },
          {
            "type": "Group",
            "i18n": "latencyCircuit.heading",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "section-heading latency-circuit-spacing"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/latencyCircuitEnabled",
                "i18n": "latencyCircuitEnabled"
              },
              {
                "type": "Group",
                "options": {
                  "groupType": "wrapCustomClass",
                  "customClass": "section-spacing"
                },
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/latencyCircuitMaxFailures",
                    "i18n": "latencyCircuitMaxFailures",
                    "options": {
                      "markAsRequired": true
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/latencyCircuitSamplingWindow",
                    "i18n": "latencyCircuitSamplingWindow",
                    "options": {
                      "markAsRequired": true
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/latencyCircuitRecoveryPeriod",
                    "i18n": "latencyCircuitRecoveryPeriod",
                    "options": {
                      "markAsRequired": true
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/latencyCircuitMaxLatency",
                    "i18n": "latencyCircuitMaxLatency",
                    "options": {
                      "markAsRequired": true
                    }
                  },
                  {
                    "type": "Group",
                    "options": {
                      "groupType": "wrapCustomClass",
                      "customClass": "custom-tracker-id-spacing"
                    },
                    "elements": [
                      {
                        "type": "Control",
                        "scope": "#/properties/latencyCircuitCustomTrackerIdEnabled",
                        "i18n": "latencyCircuitCustomTrackerIdEnabled"
                      }
                    ]
                  },
                  {
                    "type": "Group",
                    "options": {
                      "groupType": "wrapCustomClass",
                      "customClass": "section-spacing"
                    },
                    "elements": [
                      {
                        "type": "Control",
                        "scope": "#/properties/latencyCircuitTrackerId",
                        "i18n": "latencyCircuitTrackerId",
                        "options": {
                          "markAsRequired": true
                        }
                      }
                    ],
                    "rule": {
                      "effect": "SHOW",
                      "condition": {
                        "scope": "#/properties/latencyCircuitCustomTrackerIdEnabled",
                        "schema": {
                          "const": true
                        }
                      }
                    }
                  }
                ],
                "rule": {
                  "effect": "SHOW",
                  "condition": {
                    "scope": "#/properties/latencyCircuitEnabled",
                    "schema": {
                      "const": true
                    }
                  }
                }
              }
            ]
          }
        ]
      }
    ],
    "configDataPatches": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/CircuitBreaker/Main#AfterEdit",
        "patches": [
          {
            "op": "test",
            "path": "/policyFailureCircuitEnabled",
            "value": false
          },
          {
            "op": "add",
            "path": "/policyFailureCircuitEnabled",
            "value": false
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/CircuitBreaker/Main",
        "locale": "en",
        "content": {
          "policyFailureCircuit.heading": "Policy Failure Circuit",
          "policyFailureCircuitEnabled.label": "Enabled",
          "policyFailureCircuitMaxFailures.label": "Max Failures",
          "policyFailureCircuitSamplingWindow.label": "Sampling Window (ms)",
          "policyFailureCircuitRecoveryPeriod.label": "Recovery Period (ms)",
          "policyFailureCircuitCustomTrackerIdEnabled.label": "Custom event tracker ID",
          "policyFailureCircuitTrackerId.label": "Tracker ID",
          "latencyCircuit.heading": "Latency Circuit",
          "latencyCircuitEnabled.label": "Enabled",
          "latencyCircuitMaxFailures.label": "Max Failures",
          "latencyCircuitSamplingWindow.label": "Sampling Window (ms)",
          "latencyCircuitRecoveryPeriod.label": "Recovery Period (ms)",
          "latencyCircuitMaxLatency.label": "Max Latency (ms)",
          "latencyCircuitCustomTrackerIdEnabled.label": "Custom event tracker ID",
          "latencyCircuitTrackerId.label": "Tracker ID",
          "policyFailureCircuitMaxFailures.range.error": "The Max Failures field must be a number between 1 and 2147483647.",
          "policyFailureCircuitMaxFailures.cv.error": "The Max Failures field can have only one reference to context variable.",
          "policyFailureCircuitSamplingWindow.range.error": "The Sampling Window (ms) field must be a number between 1 and 2147483647.",
          "policyFailureCircuitSamplingWindow.cv.error": "The Sampling Window (ms) field can have only one reference to context variable.",
          "policyFailureCircuitRecoveryPeriod.range.error": "The Recovery Period (ms) field must be a number between 1 and 2147483647.",
          "policyFailureCircuitRecoveryPeriod.cv.error": "The Recovery Period (ms) field can have only one reference to context variable.",
          "latencyCircuitMaxFailures.range.error": "The Max Failures field must be a number between 1 and 2147483647.",
          "latencyCircuitMaxFailures.cv.error": "The Max Failures field can have only one reference to context variable.",
          "latencyCircuitSamplingWindow.range.error": "The Sampling Window (ms) field must be a number between 1 and 2147483647.",
          "latencyCircuitSamplingWindow.cv.error": "The Sampling Window (ms) field can have only one reference to context variable.",
          "latencyCircuitRecoveryPeriod.range.error": "The Recovery Period (ms) field must be a number between 1 and 2147483647.",
          "latencyCircuitRecoveryPeriod.cv.error": "The Recovery Period (ms) field can have only one reference to context variable.",
          "latencyCircuitMaxLatency.range.error": "The Max Latency field must be a number between 1 and 2147483647.",
          "latencyCircuitMaxLatency.cv.error": "The Max Latency field can have only one reference to context variable."
        }
      }
    ]
  },
  {
    "configName": "CodeInjectionProtection",
    "displayNameFormats": [
      {
        "format": "Protect Against Code Injection [URL Path + URL Query String + Body]",
        "condition": "and(equals({{.includeUrlPath}}, true), equals({{.includeUrlQueryString}}, true), equals({{.includeBody}}, true))"
      },
      {
        "format": "Protect Against Code Injection [URL Path + URL Query String]",
        "condition": "and(equals({{.includeUrlPath}}, true), equals({{.includeUrlQueryString}}, true))"
      },
      {
        "format": "Protect Against Code Injection [URL Path + Body]",
        "condition": "and(equals({{.includeUrlPath}}, true), equals({{.includeBody}}, true))"
      },
      {
        "format": "Protect Against Code Injection [URL Query String + Body]",
        "condition": "and(equals({{.includeUrlQueryString}}, true), equals({{.includeBody}}, true))"
      },
      {
        "format": "Protect Against Code Injection [URL Path]",
        "condition": "equals({{.includeUrlPath}}, true)"
      },
      {
        "format": "Protect Against Code Injection [URL Query String]",
        "condition": "equals({{.includeUrlQueryString}}, true)"
      },
      {
        "format": "Protect Against Code Injection [Body]",
        "condition": "equals({{.includeBody}}, true)"
      }
    ],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/CodeInjectionProtection",
        "title": "Protect Against Code Injection",
        "properties": {
          "includeBody": {
            "type": "boolean",
            "default": false
          },
          "includeUrlPath": {
            "type": "boolean",
            "default": false
          },
          "includeUrlQueryString": {
            "type": "boolean",
            "default": false
          },
          "otherTargetMessageVariable": {
            "type": "string"
          },
          "protections": {
            "type": "array",
            "items": {
              "$ref": "https://l7tech.com/2025/json-schema/assertions/sub-types/codeInjectionProtectionType"
            }
          },
          "target": {
            "type": "string",
            "enum": [
              "REQUEST",
              "RESPONSE",
              "OTHER"
            ],
            "default": "REQUEST"
          },
          "__htmlJavaScriptInjection": {
            "type": "boolean",
            "default": false
          },
          "__hexEncodedInjection": {
            "type": "boolean",
            "default": false
          },
          "__phpEvalInjection": {
            "type": "boolean",
            "default": false
          },
          "__shellInjection": {
            "type": "boolean",
            "default": false
          },
          "__ldapDnInjection": {
            "type": "boolean",
            "default": false
          },
          "__ldapSearchInjection": {
            "type": "boolean",
            "default": false
          },
          "__xpathInjection": {
            "type": "boolean",
            "default": false
          }
        }
      },
      {
        "type": "string",
        "$id": "https://l7tech.com/2025/json-schema/assertions/sub-types/codeInjectionProtectionType",
        "enum": [
          "htmlJavaScriptInjection",
          "hexEncodedInjection",
          "phpEvalInjection",
          "shellInjection",
          "ldapDnInjection",
          "ldapSearchInjection",
          "xpathInjection"
        ]
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Protect Against Code Injection",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/target",
            "options": {
              "messageTarget": true,
              "otherTargetMessageVariableLabel": "assertion.common.target.otherTargetContextVariable"
            }
          },
          {
            "type": "Group",
            "i18n": "apply-protection-to",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "checkbox-group"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/includeUrlPath",
                "options": {
                  "format": "checkbox",
                  "helpText": "url-path.help-text"
                },
                "i18n": "url-path"
              },
              {
                "type": "Control",
                "scope": "#/properties/includeUrlQueryString",
                "options": {
                  "format": "checkbox",
                  "helpText": "url-query-string.help-text"
                },
                "i18n": "url-query-string"
              },
              {
                "type": "Control",
                "scope": "#/properties/includeBody",
                "options": {
                  "format": "checkbox",
                  "helpText": "body.help-text"
                },
                "i18n": "body"
              }
            ]
          },
          {
            "type": "Group",
            "i18n": "select-code-injection",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "checkbox-group"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/__htmlJavaScriptInjection",
                "options": {
                  "format": "checkbox",
                  "helpText": "html-js-injection.help-text",
                  "helpTextVariables": "<applet>, <body>, <embed>, <frame>, <frameset>, <html>, <iframe>, <ilayer>, <img>, <layer>, <link>, <meta>, <object>, <script>, <style>, <svg>"
                },
                "i18n": "html-js-injection"
              },
              {
                "type": "Control",
                "scope": "#/properties/__hexEncodedInjection",
                "options": {
                  "format": "checkbox",
                  "helpText": "hex-octal-injection.help-text",
                  "helpTextVariables": "<applet>, <body>, <embed>, <frame>, <frameset>, <html>, <iframe>, <ilayer>, <img>, <layer>, <link>, <meta>, <object>, <script>, <style>, <svg>"
                },
                "i18n": "hex-octal-injection"
              },
              {
                "type": "Control",
                "scope": "#/properties/__phpEvalInjection",
                "options": {
                  "format": "checkbox",
                  "helpText": "php-injection.help-text"
                },
                "i18n": "php-injection"
              },
              {
                "type": "Control",
                "scope": "#/properties/__shellInjection",
                "options": {
                  "format": "checkbox",
                  "helpText": "shell-injection.help-text"
                },
                "i18n": "shell-injection"
              },
              {
                "type": "Control",
                "scope": "#/properties/__ldapDnInjection",
                "options": {
                  "format": "checkbox",
                  "helpText": "ldap-dn-injection.help-text"
                },
                "i18n": "ldap-dn-injection"
              },
              {
                "type": "Control",
                "scope": "#/properties/__ldapSearchInjection",
                "options": {
                  "format": "checkbox",
                  "helpText": "ldap-search-injection.help-text"
                },
                "i18n": "ldap-search-injection"
              },
              {
                "type": "Control",
                "scope": "#/properties/__xpathInjection",
                "options": {
                  "format": "checkbox",
                  "helpText": "xpath-injection.help-text"
                },
                "i18n": "xpath-injection"
              }
            ]
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/CodeInjectionProtection",
        "locale": "en",
        "content": {
          "apply-protection-to": "Apply Protection to",
          "url-path.label": "URL Path",
          "url-query-string.label": "URL Query String",
          "body.label": "Body",
          "select-code-injection": "Available Protections",
          "html-js-injection.label": "HTML/Javascript Injection (Cross Site Scripting)",
          "hex-octal-injection.label": "Hex/Octal Encoded HTML/Javascript Injection",
          "php-injection.label": "PHP eval Injection",
          "shell-injection.label": "Shell Injection",
          "ldap-dn-injection.label": "LDAP DN Injection",
          "ldap-search-injection.label": "LDAP Search Injection",
          "xpath-injection.label": "XPath Injection",
          "protection-selection.error": "At least one selection is required",
          "url-path.help-text": "Scan URL Path.",
          "url-query-string.help-text": "Scan parameter values in URL query string.",
          "body.help-text": "Scan message Body.",
          "html-js-injection.help-text": "Block messages which contain HTML tags that can be used to inject code (including {helpTextVariables}).",
          "hex-octal-injection.help-text": "Block messages which contain Hex/Octal encoded HTML tags that can be used to inject code (including {helpTextVariables}).",
          "php-injection.help-text": "Block messages which contain metacharacters that can be used to inject PHP code into a PHP eval statement. These metacharacters are ';\"\\",
          "shell-injection.help-text": "Block messages which contain metacharacters that can be used to inject shell script into a system call statement. These metacharacters are `;|&>\\",
          "ldap-dn-injection.help-text": "Block messages which contain metacharacters that can be used to inject code into LDAP DN values. These metacharacters are \\,+\"<>;",
          "ldap-search-injection.help-text": "Block messages which contain metacharacters that can be used to inject codeinto LDAP search values. The metacharacters are \\*(\\u0000",
          "xpath-injection.help-text": "Block messages which contain metacharacters that can be used to inject code into XPath queries. The metacharacters are \"*^;&<>()"
        }
      }
    ]
  },
  {
    "configName": "Comment",
    "displayNameFormats": [
      {
        "format": "Comment: {{.comment}}",
        "condition": "true"
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Add Comment to Policy",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/comment",
            "options": {
              "markAsRequired": true
            },
            "i18n": "Comment"
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/Comment",
        "locale": "en",
        "content": {
          "Comment": "Comment"
        }
      }
    ]
  },
  {
    "configName": "ComparisonAssertion",
    "displayNameFormats": [
      {
        "format": "Compare Expression",
        "condition": "true"
      }
    ],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/ComparisonAssertion",
        "title": "Compare Expression",
        "properties": {
          "expression1": {
            "type": "string"
          },
          "expressionIsVariable": {
            "type": "boolean"
          },
          "multivaluedComparison": {
            "type": "string",
            "enum": [
              "ANY",
              "ALL",
              "FIRST",
              "LAST",
              "FAIL"
            ]
          },
          "negate": {
            "type": "boolean"
          },
          "predicates": {
            "type": "array",
            "items": {
              "type": "object",
              "$id": "https://l7tech.com/2025/json-schema/assertions/ComparisonAssertion:predicate",
              "properties": {
                "negated": {
                  "type": "boolean"
                }
              }
            }
          },
          "__variableOrExpression": {
            "type": "string",
            "enum": [
              "Variable",
              "Expression"
            ]
          },
          "__dataType": {
            "type": "string",
            "enum": [
              "unknowOrOther",
              "string",
              "int",
              "decimal",
              "boolean",
              "dateTime"
            ]
          },
          "__rules": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "rules": {
                  "type": "string"
                },
                "__ruleType": {
                  "type": "string",
                  "enum": [
                    "Simple Comparison",
                    "Number of Values",
                    "Regular Expression",
                    "String Length"
                  ],
                  "default": "Simple Comparison"
                },
                "__minimumNumberOfValues": {
                  "type": "number"
                },
                "__maximumNumberOfValues": {
                  "type": "number"
                },
                "__regularExpression": {
                  "type": "string"
                },
                "caseSensitive": {
                  "type": "boolean",
                  "default": true
                },
                "__unlimited": {
                  "type": "boolean"
                },
                "__expression1": {
                  "type": "string"
                },
                "expression2": {
                  "type": "string"
                },
                "operator": {
                  "type": "string",
                  "enum": [
                    "is less than",
                    "is not less than",
                    "is less than or equal to",
                    "is not less than or equal to",
                    "is equal to",
                    "is not equal to",
                    "is greater than",
                    "is not greater than",
                    "is greater than or equal to",
                    "is not greater than or equal to",
                    "is empty",
                    "is not empty",
                    "does contain",
                    "does not contain",
                    "is not not equal to",
                    "is always true",
                    "is not always true",
                    "is always false",
                    "is not always false"
                  ],
                  "default": "is equal to"
                },
                "__dataTypeValue": {
                  "type": "string"
                },
                "__booleanDataType": {
                  "type": "string",
                  "enum": [
                    "is True",
                    "is False"
                  ]
                }
              }
            }
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Compare Expression",
        "elements": [
          {
            "type": "HorizontalLayout",
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/__variableOrExpression",
                "label": "Variable Expression"
              },
              {
                "type": "Control",
                "scope": "#/properties/expression1",
                "label": "Expression Control",
                "options": {
                  "markAsRequired": true
                }
              }
            ]
          },
          {
            "type": "Control",
            "scope": "#/properties/__dataType",
            "i18n": "dataType"
          },
          {
            "type": "Control",
            "scope": "#/properties/multivaluedComparison",
            "i18n": "ifMultivalued",
            "rule": {
              "effect": "SHOW",
              "condition": {
                "scope": "#/properties/__variableOrExpression",
                "schema": {
                  "const": "Variable"
                }
              }
            }
          },
          {
            "type": "Group",
            "options": {
              "groupType": "wrapCustomClass"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/__rules",
                "options": {
                  "nameValueList": true,
                  "customModalMaxWidth": "675px",
                  "modalCallbackEvent": true,
                  "detail": {
                    "type": "VerticalLayout",
                    "elements": [
                      {
                        "type": "Group",
                        "options": {
                          "groupType": "wrapCustomClass",
                          "customClass": "comparison-rule-half-width"
                        },
                        "elements": [
                          {
                            "type": "Control",
                            "scope": "#/properties/__ruleType",
                            "i18n": "chooseRuleType",
                            "options": {
                              "hideColumn": true
                            }
                          }
                        ]
                      },
                      {
                        "type": "Group",
                        "options": {
                          "groupType": "wrapCustomClass",
                          "customClass": "comparison-rule-three-elements"
                        },
                        "elements": [
                          {
                            "type": "HorizontalLayout",
                            "elements": [
                              {
                                "type": "Control",
                                "scope": "#/properties/__expression1",
                                "label": false,
                                "options": {
                                  "markAsRequired": true,
                                  "readonly": true,
                                  "hideColumn": true
                                }
                              },
                              {
                                "type": "Control",
                                "scope": "#/properties/__booleanDataType",
                                "label": "",
                                "options": {
                                  "hideColumn": true
                                }
                              }
                            ],
                            "rule": {
                              "effect": "SHOW",
                              "condition": {
                                "scope": "#/properties/__dataTypeValue",
                                "schema": {
                                  "const": "boolean"
                                }
                              }
                            }
                          },
                          {
                            "type": "HorizontalLayout",
                            "elements": [
                              {
                                "type": "Control",
                                "scope": "#/properties/__expression1",
                                "label": false,
                                "options": {
                                  "markAsRequired": true,
                                  "readonly": true,
                                  "hideColumn": true
                                }
                              },
                              {
                                "type": "Control",
                                "scope": "#/properties/operator",
                                "label": false,
                                "options": {
                                  "hideColumn": true
                                }
                              },
                              {
                                "type": "VerticalLayout",
                                "elements": [
                                  {
                                    "type": "Control",
                                    "scope": "#/properties/expression2",
                                    "label": false,
                                    "options": {
                                      "markAsRequired": true,
                                      "hideColumn": true
                                    },
                                    "rule": {
                                      "effect": "DISABLE",
                                      "condition": {
                                        "scope": "#/properties/operator",
                                        "schema": {
                                          "enum": [
                                            "is empty",
                                            "is not empty",
                                            "is always true",
                                            "is not always true",
                                            "is always false",
                                            "is not always false"
                                          ]
                                        }
                                      }
                                    }
                                  },
                                  {
                                    "type": "Control",
                                    "scope": "#/properties/caseSensitive",
                                    "i18n": "caseSensitive",
                                    "options": {
                                      "hideColumn": true
                                    }
                                  }
                                ]
                              }
                            ],
                            "rule": {
                              "effect": "HIDE",
                              "condition": {
                                "scope": "#/properties/__dataTypeValue",
                                "schema": {
                                  "const": "boolean"
                                }
                              }
                            }
                          }
                        ],
                        "rule": {
                          "effect": "SHOW",
                          "condition": {
                            "scope": "#/properties/__ruleType",
                            "schema": {
                              "const": "Simple Comparison"
                            }
                          }
                        }
                      },
                      {
                        "type": "Group",
                        "options": {
                          "groupType": "wrapCustomClass",
                          "customClass": "comparison-rule-three-elements"
                        },
                        "elements": [
                          {
                            "type": "HorizontalLayout",
                            "elements": [
                              {
                                "type": "Control",
                                "scope": "#/properties/__minimumNumberOfValues",
                                "i18n": "minimumNumberOfValues",
                                "options": {
                                  "markAsRequired": true,
                                  "hideColumn": true
                                }
                              },
                              {
                                "type": "VerticalLayout",
                                "elements": [
                                  {
                                    "type": "Control",
                                    "scope": "#/properties/__maximumNumberOfValues",
                                    "i18n": "maximumNumberOfValues",
                                    "options": {
                                      "markAsRequired": true,
                                      "hideColumn": true
                                    },
                                    "rule": {
                                      "effect": "DISABLE",
                                      "condition": {
                                        "scope": "#/properties/__unlimited",
                                        "schema": {
                                          "const": true
                                        }
                                      }
                                    }
                                  },
                                  {
                                    "type": "Control",
                                    "scope": "#/properties/__unlimited",
                                    "i18n": "unlimited",
                                    "options": {
                                      "hideColumn": true
                                    }
                                  }
                                ]
                              }
                            ],
                            "rule": {
                              "effect": "SHOW",
                              "condition": {
                                "scope": "#/properties/__ruleType",
                                "schema": {
                                  "const": "Number of Values"
                                }
                              }
                            }
                          }
                        ]
                      },
                      {
                        "type": "Group",
                        "options": {
                          "groupType": "wrapCustomClass",
                          "customClass": "comparison-rule-three-elements"
                        },
                        "elements": [
                          {
                            "type": "HorizontalLayout",
                            "elements": [
                              {
                                "type": "Control",
                                "scope": "#/properties/__minimumNumberOfValues",
                                "i18n": "minimumLength",
                                "options": {
                                  "markAsRequired": true,
                                  "hideColumn": true
                                }
                              },
                              {
                                "type": "VerticalLayout",
                                "elements": [
                                  {
                                    "type": "Control",
                                    "scope": "#/properties/__maximumNumberOfValues",
                                    "i18n": "maximumLength",
                                    "options": {
                                      "markAsRequired": true,
                                      "hideColumn": true
                                    },
                                    "rule": {
                                      "effect": "DISABLE",
                                      "condition": {
                                        "scope": "#/properties/__unlimited",
                                        "schema": {
                                          "const": true
                                        }
                                      }
                                    }
                                  },
                                  {
                                    "type": "Control",
                                    "scope": "#/properties/__unlimited",
                                    "i18n": "unlimited",
                                    "options": {
                                      "hideColumn": true
                                    }
                                  }
                                ]
                              }
                            ],
                            "rule": {
                              "effect": "SHOW",
                              "condition": {
                                "scope": "#/properties/__ruleType",
                                "schema": {
                                  "const": "String Length"
                                }
                              }
                            }
                          }
                        ]
                      },
                      {
                        "type": "Group",
                        "options": {
                          "groupType": "wrapCustomClass",
                          "customClass": "comparison-rule-half-width"
                        },
                        "elements": [
                          {
                            "type": "HorizontalLayout",
                            "elements": [
                              {
                                "type": "Control",
                                "scope": "#/properties/__regularExpression",
                                "i18n": "regularExpression",
                                "options": {
                                  "markAsRequired": true,
                                  "hideColumn": true
                                }
                              }
                            ],
                            "rule": {
                              "effect": "SHOW",
                              "condition": {
                                "scope": "#/properties/__ruleType",
                                "schema": {
                                  "const": "Regular Expression"
                                }
                              }
                            }
                          }
                        ]
                      }
                    ]
                  }
                }
              }
            ]
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/ComparisonAssertion",
        "locale": "en",
        "content": {
          "dataType.label": "Data Type",
          "dataType.unknowOrOther": "Unknown/Other",
          "dataType.string": "String",
          "dataType.int": "Integer",
          "dataType.decimal": "Decimal Number",
          "dataType.boolean": "Boolean",
          "dataType.dateTime": "Date/Time",
          "ifMultivalued.label": "If Multivalued",
          "ifMultivalued.ALL": "All values must pass",
          "ifMultivalued.ANY": "Any value must pass",
          "ifMultivalued.FIRST": "Compare first value only",
          "ifMultivalued.LAST": "Compare last value only",
          "ifMultivalued.FAIL": "Fail assertion",
          "chooseRuleType.label": "Choose Rule",
          "caseSensitive.label": "Case Sensitive",
          "minimumNumberOfValues.label": "Minimum Number of Values",
          "maximumNumberOfValues.label": "Maximum Number of Values",
          "minimumLength.label": "Minimum Length",
          "maximumLength.label": "Maximum Length",
          "unlimited.label": "Unlimited",
          "regularExpression.label": "Regular Expression",
          "expression1.error": "This must be a context variable",
          "predicate.error": "Atleast one rule is required",
          "predicate.minmax.error": "Maximum must be >= Minimum",
          "predicate.regex.error": "Regular expression must be valid"
        }
      }
    ]
  },
  {
    "configName": "ConcurrentAll",
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Run All Assertions Concurrently"
      }
    ]
  },
  {
    "configName": "ConsumeOAuth1Resource",
    "refVariables": [
      {
        "fieldPath": ".variablePrefix",
        "refType": "OUT",
        "dataType": "string"
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Consume OAuth 1.0 Resource",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/target",
            "options": {
              "messageTarget": true,
              "otherTargetMessageVariableLabel": "assertion.common.target.otherTargetContextVariable"
            }
          },
          {
            "type": "Group",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "variable-prefix-spacing"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/variablePrefix",
                "i18n": "variablePrefix",
                "options": {
                  "contextVariable": true,
                  "markAsRequired": true,
                  "variableType": "output",
                  "allowedDataTypes": []
                }
              }
            ]
          },
          {
            "type": "Group",
            "label": "Authorization",
            "isExpanded": true,
            "options": {
              "groupType": "Accordion"
            },
            "elements": [
              {
                "type": "Group",
                "i18n": "resourceServer.heading",
                "options": {
                  "groupType": "wrapCustomClass",
                  "customClass": "section-heading"
                },
                "elements": [
                  {
                    "type": "Control",
                    "i18n": "resourceEndpoint",
                    "scope": "#/properties/resourceEndpoint",
                    "options": {
                      "markAsRequired": true
                    }
                  }
                ]
              },
              {
                "type": "Group",
                "i18n": "oAuthConfiguration.heading",
                "options": {
                  "groupType": "wrapCustomClass",
                  "customClass": "section-heading top-spacing"
                },
                "elements": [
                  {
                    "type": "Control",
                    "i18n": "oAuthToken",
                    "scope": "#/properties/oAuthToken"
                  },
                  {
                    "type": "Control",
                    "i18n": "oAuthTokenSecret",
                    "scope": "#/properties/oAuthTokenSecret"
                  }
                ]
              },
              {
                "type": "Group",
                "i18n": "clientAuthentication.heading",
                "options": {
                  "groupType": "wrapCustomClass",
                  "customClass": "section-heading top-spacing"
                },
                "elements": [
                  {
                    "type": "Control",
                    "i18n": "consumerKey",
                    "scope": "#/properties/consumerKey",
                    "options": {
                      "markAsRequired": true
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/isConsumerSecretPlainText",
                    "i18n": "isConsumerSecretPlainText",
                    "options": {
                      "format": "radio",
                      "useRowLayout": false,
                      "uiSchemasMap": {
                        "true": {
                          "type": "Group",
                          "options": {
                            "groupType": "wrapCustomClass",
                            "customClass": "consumer-secret-spacing"
                          },
                          "elements": [
                            {
                              "type": "Control",
                              "scope": "#/properties/consumerSecretPlainText",
                              "i18n": "consumerSecretPlainText",
                              "options": {
                                "markAsRequired": true,
                                "format": "password"
                              }
                            }
                          ]
                        },
                        "false": {
                          "type": "Group",
                          "options": {
                            "groupType": "wrapCustomClass",
                            "customClass": "consumer-secret-spacing"
                          },
                          "elements": [
                            {
                              "type": "Control",
                              "scope": "#/properties/__consumerSecretSecurePasswordGoid",
                              "i18n": "__consumerSecretSecurePasswordGoid",
                              "options": {
                                "markAsRequired": true,
                                "manageStoredPassword": true
                              }
                            }
                          ]
                        }
                      }
                    }
                  }
                ]
              }
            ]
          },
          {
            "type": "Group",
            "label": "Parameters",
            "options": {
              "groupType": "Accordion"
            },
            "elements": [
              {
                "type": "Control",
                "i18n": "resourceInputParams",
                "scope": "#/properties/resourceInputParams",
                "options": {
                  "nameValueList": true,
                  "detail": {
                    "type": "HorizontalLayout",
                    "elements": [
                      {
                        "type": "Control",
                        "scope": "#/properties/name",
                        "options": {
                          "markAsRequired": true
                        }
                      },
                      {
                        "type": "Control",
                        "scope": "#/properties/value",
                        "options": {
                          "markAsRequired": true
                        }
                      }
                    ]
                  }
                }
              },
              {
                "type": "Group",
                "options": {
                  "groupType": "wrapCustomClass",
                  "customClass": "query-params-spacing"
                },
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/allowCustomOAuthQueryParams",
                    "i18n": "allowCustomOAuthQueryParams"
                  }
                ]
              },
              {
                "type": "Control",
                "scope": "#/properties/httpMethod",
                "i18n": "httpMethod",
                "options": {
                  "autocomplete": true,
                  "allowUserProvidedInput": true,
                  "defaultOptions": [
                    {
                      "label": "${request.http.method}",
                      "value": "${request.http.method}"
                    },
                    {
                      "label": "GET",
                      "value": "GET"
                    },
                    {
                      "label": "POST",
                      "value": "POST"
                    }
                  ]
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/signatureMethod",
                "i18n": "signatureMethod"
              }
            ]
          }
        ]
      }
    ],
    "configSchemaPatches": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/ConsumeOAuth1Resource",
        "patches": [
          {
            "op": "add",
            "path": "/properties/__managePassword",
            "value": {
              "type": "string"
            }
          },
          {
            "op": "add",
            "path": "/properties/signatureMethod/enum",
            "value": [
              "HMAC-SHA1",
              "PLAINTEXT"
            ]
          },
          {
            "op": "add",
            "path": "/properties/isConsumerSecretPlainText/enum",
            "value": [
              true,
              false
            ]
          },
          {
            "op": "add",
            "path": "/properties/__consumerSecretSecurePasswordGoid",
            "value": {
              "type": "string"
            }
          },
          {
            "op": "replace",
            "path": "/properties/resourceInputParams",
            "value": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string"
                  },
                  "value": {
                    "type": "string"
                  }
                }
              }
            }
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/ConsumeOAuth1Resource",
        "locale": "en",
        "content": {
          "resourceServer": "Resource Server",
          "authConfiguration": "OAuth Configuration",
          "clientAuthentication": "Client Authentication",
          "resourceEndpoint.label": "Resource Endpoint",
          "variablePrefix.label": "Variable Prefix",
          "resourceServer.heading": "Resource Server",
          "authEndpoint.label": "Request Endpoint",
          "tokenEndpoint.label": "Token Endpoint",
          "oAuthConfiguration.heading": "OAuth Configuration",
          "callbackURL.label": "Callback URL",
          "oAuthToken.label": "Access Token",
          "oAuthTokenSecret.label": "Access Token Secret",
          "oAuthVerifier.label": "OAuth Verifier",
          "clientAuthentication.heading": "Client Authentication",
          "consumerKey.label": "Consumer Key",
          "isConsumerSecretPlainText.label": "Consumer Secret",
          "isConsumerSecretPlainText.true": "Text",
          "isConsumerSecretPlainText.false": "Password store",
          "__consumerSecretSecurePasswordGoid.label": "Password",
          "__consumerSecretSecurePasswordGoid.fallbackLabel": "Current Password (Password details are unavailable)",
          "__managePassword.label": "Manage Passwords",
          "inputParams.heading": "Request Token Parameters",
          "inputParams.label": "Parameter",
          "inputParams.name.label": "Name",
          "inputParams.value.label": "Value",
          "inputParams.includeType.label": "Include Parameter In",
          "inputParams.includeType.BOTH": "Both authorization request and access token request",
          "inputParams.includeType.AUTHORIZATION_REQUEST": "Authorization request",
          "inputParams.includeType.ACCESS_TOKEN_REQUEST": "Access token request",
          "allowCustomOAuthQueryParams.label": "Allow non-protocol query parameters with oauth_prefix",
          "httpMethod.label": "HTTP Method",
          "signatureMethod.label": "oauth_signature_method",
          "duplicate_attribute_name": "The Parameter already exist"
        }
      }
    ]
  },
  {
    "configName": "ContentType",
    "displayNameFormats": [
      {
        "format": "(Part {{.messagePartNum}}) Change Content Type to {{.newContentTypeValue}}",
        "condition": "and(equals({{.messagePart}}, true),equals({{.changeContentType}}, true))"
      },
      {
        "format": "(Part {{.messagePartNum}}) Validate Content Type",
        "condition": "and(equals({{.messagePart}}, true),equals({{.changeContentType}}, false))"
      },
      {
        "format": "Change Content Type to {{.newContentTypeValue}}",
        "condition": "and(equals({{.messagePart}}, false),equals({{.changeContentType}}, true))"
      },
      {
        "format": "Validate Content Type",
        "condition": "true"
      }
    ],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/ContentType",
        "title": "Validate or Change Content Type",
        "properties": {
          "changeContentType": {
            "type": "string",
            "enum": [
              "VALIDATE",
              "CHANGE"
            ],
            "default": "VALIDATE"
          },
          "messagePart": {
            "type": "boolean",
            "default": false
          },
          "messagePartNum": {
            "type": "string"
          },
          "newContentTypeValue": {
            "type": "string"
          },
          "otherTargetMessageVariable": {
            "type": "string"
          },
          "reinitializeMessage": {
            "type": "boolean",
            "default": false
          },
          "target": {
            "type": "string",
            "enum": [
              "REQUEST",
              "RESPONSE",
              "OTHER"
            ],
            "default": "REQUEST"
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Validate or Change Content Type",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/target",
            "options": {
              "messageTarget": true,
              "otherTargetMessageVariableLabel": "assertion.common.target.otherTargetContextVariable"
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/messagePart",
            "i18n": "messagePart",
            "options": {
              "subUiSchema": {
                "type": "Control",
                "scope": "#/properties/messagePartNum",
                "label": "",
                "options": {
                  "markAsRequired": true
                }
              }
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/changeContentType",
            "i18n": "changeContentType",
            "options": {
              "format": "radio",
              "uiSchemasMap": {
                "CHANGE": {
                  "type": "Group",
                  "options": {
                    "groupType": "wrapCustomClass"
                  },
                  "elements": [
                    {
                      "type": "Control",
                      "scope": "#/properties/newContentTypeValue",
                      "i18n": "newValue",
                      "options": {
                        "markAsRequired": true
                      }
                    },
                    {
                      "type": "Control",
                      "scope": "#/properties/reinitializeMessage",
                      "i18n": "reinitialize"
                    }
                  ]
                }
              }
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/newContentTypeValue",
            "i18n": "newValue",
            "options": {
              "customClass": "common-conditional-field",
              "markAsRequired": true
            },
            "rule": {
              "effect": "SHOW",
              "condition": {
                "scope": "#/properties/changeContentType",
                "schema": {
                  "const": true
                }
              }
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/reinitializeMessage",
            "i18n": "reinitialize",
            "rule": {
              "effect": "SHOW",
              "condition": {
                "scope": "#/properties/changeContentType",
                "schema": {
                  "const": true
                }
              }
            }
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/ContentType",
        "locale": "en",
        "content": {
          "messagePart.label": "Message part index",
          "changeContentType.label": "Action",
          "changeContentType.VALIDATE": "Validate syntax of content type value",
          "changeContentType.CHANGE": "Change content type",
          "newValue.label": "New Value",
          "reinitialize.label": "Re-initialize message",
          "content_type.error_text": "Content type is invalid"
        }
      }
    ]
  },
  {
    "configName": "CookieCredentialSource",
    "displayNameFormats": [
      {
        "format": "Require HTTP Cookie (name={{.cookieName}})",
        "condition": "not(isNull({{.cookieName}}))"
      },
      {
        "format": "Require HTTP Cookie",
        "condition": "true"
      }
    ],
    "refVariables": [
      {
        "fieldPath": ".variablePrefix",
        "refType": "OUT",
        "dataType": "other",
        "prefixed": true
      },
      {
        "fieldPath": ".variablePrefix",
        "secondaryFieldPath": ".cookieName",
        "refType": "OUT",
        "dataType": "string"
      }
    ],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/CookieCredentialSource",
        "title": "Require HTTP Cookie",
        "properties": {
          "cookieName": {
            "type": "string"
          },
          "variablePrefix": {
            "type": "string"
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Require HTTP Cookie",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/cookieName",
            "i18n": "cookieName",
            "options": {
              "markAsRequired": true
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/variablePrefix",
            "i18n": "variablePrefix",
            "options": {
              "markAsRequired": true,
              "contextVariable": true,
              "variableType": "output",
              "allowedDataTypes": []
            }
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/CookieCredentialSource",
        "locale": "en",
        "content": {
          "cookieName.label": "Cookie Name",
          "variablePrefix.label": "Variable Prefix"
        }
      }
    ]
  },
  {
    "configName": "CreateJsonWebKey",
    "displayNameFormats": [
      {
        "format": "Create Json Web Key",
        "condition": "true"
      }
    ],
    "refVariables": [
      {
        "fieldPath": ".targetVariable",
        "refType": "OUT",
        "dataType": "string"
      }
    ],
    "refEntities": [
      {
        "fieldPath": ".keys.sourceKeyGoid",
        "refType": "GOID",
        "entityType": "Key"
      },
      {
        "fieldPath": ".keys.sourceKeyAlias",
        "refType": "NAME",
        "entityType": "Key"
      }
    ],
    "configSchemas": [
      {
        "$defs": {
          "CreateJsonWebKey:key": {
            "type": "object",
            "$id": "https://l7tech.com/2025/json-schema/assertions/CreateJsonWebKey:key",
            "properties": {
              "keyId": {
                "type": "string"
              },
              "publicKeyUse": {
                "type": "string"
              },
              "sourceKeyAlias": {
                "type": "string"
              },
              "sourceKeyGoid": {
                "$ref": "https://l7tech.com/2025/json-schema/assertions/sub-types/goid"
              }
            }
          }
        },
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/CreateJsonWebKey",
        "title": "Create Json Web Key",
        "properties": {
          "keys": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "keyId": {
                  "type": "string",
                  "title": "Key ID"
                },
                "publicKeyUse": {
                  "type": "string",
                  "default": "Encryption",
                  "title": "Usage",
                  "enum": [
                    "Encryption",
                    "Signature"
                  ]
                },
                "sourceKeyAlias": {
                  "type": "string"
                }
              }
            }
          },
          "targetVariable": {
            "type": "string"
          }
        }
      },
      {
        "type": "string",
        "$id": "https://l7tech.com/2025/json-schema/assertions/sub-types/goid"
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Create Json Web Key",
        "elements": [
          {
            "type": "Group",
            "i18n": "addKeys.heading",
            "options": {
              "groupType": "wrapCustomClass",
              "labelColor": "bodyText"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/keys",
                "i18n": "addKeys",
                "options": {
                  "nameValueList": true,
                  "detail": {
                    "type": "VerticalLayout",
                    "elements": [
                      {
                        "type": "Control",
                        "scope": "#/properties/sourceKeyAlias",
                        "i18n": "sourceKeyAlias",
                        "options": {
                          "markAsRequired": true,
                          "hideColumn": true
                        }
                      },
                      {
                        "type": "Control",
                        "scope": "#/properties/keyId",
                        "i18n": "keyId",
                        "options": {
                          "markAsRequired": true
                        }
                      },
                      {
                        "type": "Control",
                        "scope": "#/properties/publicKeyUse",
                        "i18n": "publicKeyUsuage"
                      }
                    ]
                  }
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/targetVariable",
                "i18n": "targetVariable",
                "options": {
                  "customClass": "output-variable",
                  "markAsRequired": true,
                  "contextVariable": true,
                  "variableType": "output",
                  "allowedDataTypes": []
                }
              }
            ]
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/CreateJsonWebKey",
        "locale": "en",
        "content": {
          "targetVariable.label": "Output Variable",
          "addKeys.heading": "JSON Web Keys",
          "addKeys.label": "Key",
          "keyId.label": "Key ID",
          "publicKeyUsuage.label": "Key Usage",
          "publicKeyUsuage.Encryption": "Encryption",
          "publicKeyUsuage.Signature": "Signature",
          "sourceKeyAlias.label": "Recipient Public Key",
          "error.duplicate.field": "Key ID is already exist"
        }
      }
    ]
  },
  {
    "configName": "CreateRoutingStrategy",
    "displayNameFormats": [
      {
        "format": "Create Routing Strategy Ordered Sticky with Failover as {{.strategy#variable#expression}}",
        "condition": "and(equals({{.strategyDescription}}, Ordered Sticky with Failover), not(isNull({{.strategy}})))"
      },
      {
        "format": "Create Routing Strategy Random Sticky with Failover as {{.strategy#variable#expression}}",
        "condition": "and(equals({{.strategyDescription}}, Random Sticky with Failover), not(isNull({{.strategy}})))"
      },
      {
        "format": "Create Routing Strategy Round-Robin as {{.strategy#variable#expression}}",
        "condition": "and(equals({{.strategyDescription}}, Round-Robin), not(isNull({{.strategy}})))"
      },
      {
        "format": "Create Routing Strategy",
        "condition": "true"
      }
    ],
    "refVariables": [
      {
        "fieldPath": ".strategy",
        "refType": "OUT",
        "dataType": "other"
      }
    ],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/CreateRoutingStrategy",
        "title": "Create Routing Strategy",
        "properties": {
          "routes": {
            "type": "array",
            "items": {
              "$ref": "https://l7tech.com/2025/json-schema/assertions/CreateRoutingStrategy:route"
            }
          },
          "strategy": {
            "type": "string"
          },
          "strategyDescription": {
            "type": "string",
            "enum": [
              "ORDERED_STICKY_FAILOVER",
              "RANDOM_STICKY_FAILOVER",
              "ROUND_ROBIN"
            ],
            "default": "ORDERED_STICKY_FAILOVER"
          },
          "strategyName": {
            "type": "string"
          },
          "strategyProperties": {
            "type": "object"
          }
        }
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/CreateRoutingStrategy:route",
        "properties": {
          "name": {
            "type": "string"
          },
          "routeProperties": {
            "type": "string",
            "title": "Properties"
          },
          "properties": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "__routeName": {
                  "type": "string"
                },
                "__routeProperty": {
                  "type": "string"
                }
              }
            }
          }
        }
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/CreateRoutingStrategy/Main",
        "title": "Create Routing Strategy",
        "properties": {
          "CreateRoutingStrategy": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/CreateRoutingStrategy"
          },
          ".properties": {
            "type": "object",
            "properties": {
              ".enabled": {
                "type": "boolean",
                "default": true
              },
              ".left.comment": {
                "type": "string"
              },
              ".right.comment": {
                "type": "string"
              }
            }
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Create Routing Strategy",
        "elements": [
          {
            "type": "Group",
            "i18n": "routes.routeList",
            "options": {
              "groupType": "wrapCustomClass"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/routes",
                "i18n": "routes",
                "options": {
                  "nameValueList": true,
                  "allowClone": true,
                  "allowReorder": true,
                  "modalCallbackEvent": true,
                  "detail": {
                    "type": "VerticalLayout",
                    "elements": [
                      {
                        "type": "Control",
                        "i18n": "routes.name",
                        "scope": "#/properties/name",
                        "options": {
                          "markAsRequired": true
                        }
                      },
                      {
                        "type": "Group",
                        "i18n": "routes.properties",
                        "options": {
                          "groupType": "wrapCustomClass",
                          "customClass": "routes-group-wrapper"
                        },
                        "elements": [
                          {
                            "type": "Control",
                            "scope": "#/properties/properties",
                            "options": {
                              "fieldGroup": true,
                              "buttonLabel": "properties.btn",
                              "detail": {
                                "type": "VerticalLayout",
                                "elements": [
                                  {
                                    "type": "Group",
                                    "label": "false",
                                    "options": {
                                      "groupType": "wrapCustomClass",
                                      "customClass": "routes-group"
                                    },
                                    "elements": [
                                      {
                                        "type": "Control",
                                        "i18n": "routes.propertyName",
                                        "scope": "#/properties/__routeName",
                                        "options": {
                                          "markAsRequired": true
                                        }
                                      },
                                      {
                                        "type": "Control",
                                        "i18n": "routes.propertyVal",
                                        "scope": "#/properties/__routeProperty",
                                        "options": {
                                          "markAsRequired": true
                                        }
                                      }
                                    ]
                                  }
                                ]
                              }
                            }
                          }
                        ]
                      }
                    ]
                  }
                }
              }
            ]
          },
          {
            "type": "Control",
            "scope": "#/properties/strategyDescription",
            "i18n": "strategyDescription",
            "options": {
              "markAsRequired": true
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/strategy",
            "i18n": "strategy",
            "options": {
              "contextVariable": true,
              "markAsRequired": true,
              "variableType": "output",
              "allowedDataTypes": []
            }
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/CreateRoutingStrategy",
        "locale": "en",
        "content": {
          "strategyDescription.label": "Failover",
          "strategyDescription.ORDERED_STICKY_FAILOVER": "Order sticky with failover",
          "strategyDescription.RANDOM_STICKY_FAILOVER": "Random sticky with failover",
          "strategyDescription.ROUND_ROBIN": "Round-Robin",
          "routes.label": "New Route",
          "routes.name.label": "Route",
          "routes.propertyName.label": "Name",
          "routes.routeList": "Route List",
          "routes.propertyVal.label": "Value",
          "routes.properties": "Route Properties",
          "configureFailoverButton": "Configure Failover",
          "strategy.label": "Routing Strategy Prefix",
          "routes.error": "Atleast one route is required",
          "properties.btn": "Add Property"
        }
      }
    ]
  },
  {
    "configName": "CreateSecurityContextToken",
    "refVariables": [
      {
        "fieldPath": ".variablePrefix",
        "refType": "OUT",
        "dataType": "other",
        "prefixed": true
      }
    ],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/CreateSecurityContextToken",
        "title": "Create Security Context Token",
        "properties": {
          "keySize": {
            "type": "string",
            "default": "0",
            "enum": [
              "0",
              "128",
              "256",
              "512",
              "1024"
            ]
          },
          "lifetime": {
            "type": "number"
          },
          "otherTargetMessageVariable": {
            "type": "string"
          },
          "target": {
            "type": "string",
            "enum": [
              "REQUEST",
              "RESPONSE",
              "OTHER"
            ],
            "default": "REQUEST"
          },
          "timeUnit": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/sub-types/timeUnit",
            "default": "m"
          },
          "useSystemDefaultSessionDuration": {
            "type": "boolean",
            "default": true
          },
          "variablePrefix": {
            "type": "string"
          }
        }
      },
      {
        "type": "string",
        "$id": "https://l7tech.com/2025/json-schema/assertions/sub-types/timeUnit",
        "enum": [
          "ms",
          "s",
          "m",
          "h",
          "d"
        ],
        "i18n": "timeUnit"
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/CreateSecurityContextToken/Main",
        "title": "Create Security Context Token",
        "properties": {
          "CreateSecurityContextToken": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/CreateSecurityContextToken"
          },
          ".properties": {
            "type": "object",
            "properties": {
              ".enabled": {
                "type": "boolean",
                "default": true
              },
              ".left.comment": {
                "type": "string"
              },
              ".right.comment": {
                "type": "string"
              }
            }
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Create Security Context Token",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/target",
            "i18n": "target",
            "options": {
              "messageTarget": true,
              "otherTargetMessageVariableLabel": "assertion.common.target.otherTargetContextVariable"
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/keySize",
            "i18n": "keySize"
          },
          {
            "type": "Group",
            "label": false,
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "expire-period-group-style"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/useSystemDefaultSessionDuration",
                "i18n": "useSystemDefaultSessionDuration"
              },
              {
                "type": "Group",
                "options": {
                  "groupType": "wrapCustomClass",
                  "customClass": "time-unit-group-style"
                },
                "rule": {
                  "effect": "HIDE",
                  "condition": {
                    "scope": "#/properties/useSystemDefaultSessionDuration",
                    "schema": {
                      "const": true
                    }
                  }
                },
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/lifetime",
                    "i18n": "lifetime",
                    "options": {
                      "markAsRequired": true
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/timeUnit",
                    "i18n": "timeUnit"
                  }
                ]
              }
            ]
          },
          {
            "type": "Control",
            "scope": "#/properties/variablePrefix",
            "i18n": "variablePrefix",
            "options": {
              "markAsRequired": true,
              "contextVariable": true,
              "variableType": "output",
              "allowedDataTypes": []
            }
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/CreateSecurityContextToken",
        "locale": "en",
        "content": {
          "timeUnit.ms": "Milliseconds",
          "timeUnit.s": "Seconds",
          "timeUnit.m": "Minutes",
          "timeUnit.h": "Hours",
          "timeUnit.d": "Days",
          "useSystemDefaultSessionDuration.label": "Use system default",
          "keySize.label": "Key Size (bits)",
          "keySize.0": "Automatic",
          "keySize.128": "128",
          "keySize.256": "256",
          "keySize.512": "512",
          "keySize.1024": "1024",
          "variablePrefix": "Variable Prefix",
          "target.label": "Message Target",
          "expirePeriod.error": "Time should not greater than 1 day",
          "lifetime.label": "Token Lifetime"
        }
      }
    ]
  },
  {
    "configName": "CsrSigner",
    "refVariables": [
      {
        "fieldPath": ".csrVariableName",
        "refType": "IN",
        "dataType": "other"
      },
      {
        "fieldPath": ".certDNVariableName",
        "refType": "IN",
        "dataType": "other"
      },
      {
        "fieldPath": ".outputPrefix",
        "suffix": ".certificate",
        "refType": "OUT",
        "dataType": "cert"
      },
      {
        "fieldPath": ".outputPrefix",
        "suffix": ".chain",
        "refType": "OUT",
        "dataType": "cert",
        "multivalued": true
      },
      {
        "fieldPath": ".",
        "suffix": "certificate",
        "refType": "OUT",
        "dataType": "cert",
        "condition": "isEmpty({{.outputPrefix}})"
      },
      {
        "fieldPath": ".",
        "suffix": "chain",
        "refType": "OUT",
        "dataType": "cert",
        "multivalued": true,
        "condition": "isEmpty({{.outputPrefix}})"
      }
    ],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/CsrSigner",
        "title": "Sign Certificate",
        "properties": {
          "certDNVariableName": {
            "type": "string"
          },
          "csrVariableName": {
            "type": "string"
          },
          "dynamicPrivateKeyVariable": {
            "type": "string",
            "default": ""
          },
          "expiryAgeDays": {
            "type": "string"
          },
          "keyAlias": {
            "type": "string"
          },
          "nonDefaultKeystoreId": {
            "type": "string"
          },
          "outputPrefix": {
            "type": "string"
          },
          "usesDefaultKeyStore": {
            "type": "boolean",
            "default": true
          },
          "usesDynamicPrivateKey": {
            "type": "boolean",
            "default": false
          },
          "__privateKey": {
            "type": "string"
          }
        }
      },
      {
        "type": "string",
        "$id": "https://l7tech.com/2025/json-schema/assertions/sub-types/goid"
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/CsrSigner/Main",
        "title": "Sign Certificate",
        "properties": {
          "CsrSigner": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/CsrSigner"
          },
          ".properties": {
            "type": "object",
            "properties": {
              ".enabled": {
                "type": "boolean",
                "default": true
              },
              ".left.comment": {
                "type": "string"
              },
              ".right.comment": {
                "type": "string"
              }
            }
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Sign Certificate",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/certDNVariableName",
            "i18n": "certDNVariableName",
            "options": {
              "contextVariable": true,
              "variableType": "output",
              "allowedDataTypes": []
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/csrVariableName",
            "i18n": "csrVariableName",
            "options": {
              "markAsRequired": true,
              "contextVariable": true,
              "variableType": "input",
              "allowedDataTypes": []
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/expiryAgeDays",
            "i18n": "expiryAgeDays",
            "options": {
              "markAsRequired": true
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/outputPrefix",
            "i18n": "outputPrefix"
          },
          {
            "type": "Group",
            "label": "Certificate Authority Private Key",
            "options": {
              "groupType": "ShowHide",
              "expanded": true
            },
            "elements": [
              {
                "type": "Group",
                "options": {
                  "groupType": "wrapCustomClass",
                  "customClass": "custom-private-key-group"
                },
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/__privateKey",
                    "options": {
                      "controlType": "privateKey",
                      "allowDefaultPrivateKey": true
                    }
                  }
                ]
              }
            ]
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/CsrSigner",
        "locale": "en",
        "content": {
          "certDNVariableName.label": "Override DN",
          "csrVariableName.label": "Certificate Request Variable",
          "expiryAgeDays.label": "Expiry Age (days)",
          "outputPrefix.label": "Output Prefix",
          "expiryAgeDays.error": "An Expiry Age must be between 1 and 3650"
        }
      }
    ]
  },
  {
    "configName": "CsrfProtection",
    "displayNameFormats": [
      {
        "format": "Protect Against CSRF Forgery",
        "condition": "true"
      }
    ],
    "refVariables": [
      {
        "fieldPath": ".",
        "suffix": "csrf.valid.token",
        "refType": "OUT",
        "dataType": "string",
        "condition": "{{.enableDoubleSubmitCookieChecking}}"
      }
    ],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/CsrfProtection",
        "title": "Protect Against Cross-Site Request Forgery",
        "properties": {
          "allowMissingOrEmptyReferer": {
            "type": "boolean",
            "default": false
          },
          "cookieName": {
            "type": "string"
          },
          "enableDoubleSubmitCookieChecking": {
            "type": "boolean",
            "default": true
          },
          "enableHttpRefererChecking": {
            "type": "boolean",
            "default": false
          },
          "onlyAllowCurrentDomain": {
            "type": "boolean",
            "default": true
          },
          "parameterName": {
            "type": "string"
          },
          "parameterType": {
            "type": "string",
            "enum": [
              "GET",
              "POST",
              "GET_AND_POST"
            ],
            "default": "POST"
          },
          "trustedDomains": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string",
                  "title": "Trusted Domain"
                }
              }
            }
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Protect Against Cross-Site Request Forgery",
        "elements": [
          {
            "type": "Group",
            "i18n": "title.label",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "cookie-title"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/enableDoubleSubmitCookieChecking",
                "i18n": "enableDoubleSubmitCookieChecking"
              },
              {
                "type": "Group",
                "options": {
                  "groupType": "wrapCustomClass"
                },
                "rule": {
                  "effect": "HIDE",
                  "condition": {
                    "scope": "#/properties/enableDoubleSubmitCookieChecking",
                    "schema": {
                      "const": false
                    }
                  }
                },
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/cookieName",
                    "i18n": "cookieName",
                    "options": {
                      "markAsRequired": true
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/parameterName",
                    "i18n": "parameterName",
                    "options": {
                      "markAsRequired": true
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/parameterType",
                    "i18n": "parameterType"
                  }
                ]
              },
              {
                "type": "Group",
                "i18n": "HttpValidation-group.label",
                "options": {
                  "groupType": "wrapCustomClass",
                  "customClass": "validation-group"
                },
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/enableHttpRefererChecking",
                    "i18n": "enableHttpRefererChecking"
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/allowMissingOrEmptyReferer",
                    "i18n": "allowMissingOrEmptyReferer",
                    "options": {
                      "markAsRequired": true
                    },
                    "rule": {
                      "effect": "HIDE",
                      "condition": {
                        "scope": "#/properties/enableHttpRefererChecking",
                        "schema": {
                          "const": false
                        }
                      }
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/onlyAllowCurrentDomain",
                    "i18n": "onlyAllowCurrentDomain",
                    "options": {
                      "format": "radio",
                      "useRowLayout": false,
                      "defaultOptions": [
                        {
                          "label": "Current Domain",
                          "value": "true"
                        },
                        {
                          "label": "Trusted Domain",
                          "value": "false"
                        }
                      ],
                      "uiSchemasMap": {
                        "false": {
                          "type": "VerticalLayout",
                          "elements": [
                            {
                              "type": "Control",
                              "i18n": "trustedDomains",
                              "scope": "#/properties/trustedDomains",
                              "options": {
                                "nameValueList": true,
                                "detail": {
                                  "type": "HorizontalLayout",
                                  "elements": [
                                    {
                                      "type": "Control",
                                      "scope": "#/properties/name",
                                      "options": {
                                        "markAsRequired": true
                                      }
                                    }
                                  ]
                                }
                              }
                            }
                          ]
                        }
                      }
                    },
                    "rule": {
                      "effect": "HIDE",
                      "condition": {
                        "scope": "#/properties/enableHttpRefererChecking",
                        "schema": {
                          "const": false
                        }
                      }
                    }
                  }
                ]
              }
            ]
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/CsrfProtection",
        "locale": "en",
        "content": {
          "enableDoubleSubmitCookieChecking.label": "Enable double submit cookie validation",
          "cookieName.label": "Cookie Name",
          "parameterName.label": "HTTP Parameter Name",
          "parameterType.label": "Allowed HTTP Methods",
          "parameterType.GET_AND_POST": "GET and POST",
          "parameterType.GET": "GET",
          "parameterType.POST": "POST",
          "HttpValidation-group.label": "HTTP-Referer Header Validation",
          "enableHttpRefererChecking.label": "Enable HTTP-Referer header validation",
          "allowMissingOrEmptyReferer.label": "Skip validation if header is missing or empty",
          "onlyAllowCurrentDomain.label": "Valid Domains",
          "title.label": "Double Submit Cookie Validation",
          "trustedDomains.name.ERROR": "Invalid Domain",
          "trustedDomains.label": "Trusted Domain"
        }
      }
    ]
  },
  {
    "configName": "CustomizeErrorResponse",
    "displayNameFormats": [
      {
        "format": "Customize Error Response",
        "condition": "true"
      }
    ],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/CustomizeErrorResponse",
        "title": "Customize Error Response",
        "properties": {
          "errorLevel": {
            "type": "string",
            "enum": [
              "DROP_CONNECTION",
              "TEMPLATE_RESPONSE"
            ],
            "default": "TEMPLATE_RESPONSE"
          },
          "content": {
            "type": "string"
          },
          "contentType": {
            "type": "string"
          },
          "extraHeaders": {
            "type": "array",
            "items": {
              "$ref": "https://l7tech.com/2025/json-schema/assertions/sub-types/nameValuePair"
            }
          },
          "httpStatus": {
            "type": "string"
          },
          "includePolicyDownloadURL": {
            "type": "boolean",
            "default": false
          }
        }
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/sub-types/nameValuePair",
        "properties": {
          "key": {
            "type": "string"
          },
          "value": {
            "type": "string"
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Customize Error Response",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/errorLevel",
            "i18n": "errorLevel"
          },
          {
            "type": "Control",
            "scope": "#/properties/httpStatus",
            "options": {
              "markAsRequired": true
            },
            "i18n": "httpStatus",
            "rule": {
              "effect": "HIDE",
              "condition": {
                "scope": "#/properties/errorLevel",
                "schema": {
                  "const": "DROP_CONNECTION"
                }
              }
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/contentType",
            "i18n": "contentType",
            "options": {
              "markAsRequired": true
            },
            "rule": {
              "effect": "HIDE",
              "condition": {
                "scope": "#/properties/errorLevel",
                "schema": {
                  "const": "DROP_CONNECTION"
                }
              }
            }
          },
          {
            "type": "Group",
            "i18n": "extraHeaders.title",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "extraHeaders-group"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/extraHeaders",
                "i18n": "extraHeaders",
                "options": {
                  "nameValueList": true,
                  "detail": {
                    "type": "HorizontalLayout",
                    "elements": [
                      {
                        "type": "Control",
                        "scope": "#/properties/key",
                        "i18n": "extraHeaders.key",
                        "options": {
                          "markAsRequired": true
                        }
                      },
                      {
                        "type": "Control",
                        "scope": "#/properties/value",
                        "i18n": "extraHeaders.value"
                      }
                    ]
                  }
                }
              }
            ],
            "rule": {
              "effect": "HIDE",
              "condition": {
                "scope": "#/properties/errorLevel",
                "schema": {
                  "const": "DROP_CONNECTION"
                }
              }
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/content",
            "options": {
              "multiline": true,
              "rows": 3,
              "markAsRequired": true
            },
            "i18n": "content",
            "rule": {
              "effect": "HIDE",
              "condition": {
                "scope": "#/properties/errorLevel",
                "schema": {
                  "const": "DROP_CONNECTION"
                }
              }
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/includePolicyDownloadURL",
            "i18n": "includePolicyDownloadURL",
            "rule": {
              "effect": "HIDE",
              "condition": {
                "scope": "#/properties/errorLevel",
                "schema": {
                  "const": "DROP_CONNECTION"
                }
              }
            }
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/CustomizeErrorResponse",
        "locale": "en",
        "content": {
          "content.label": "Response Body",
          "contentType.label": "Response Content Type",
          "errorLevel.label": "Error Level",
          "errorLevel.DROP_CONNECTION": "Drop Connection",
          "errorLevel.TEMPLATE_RESPONSE": "Template Response",
          "extraHeaders.label": "Item",
          "httpStatus.label": "Response HTTP Status",
          "includePolicyDownloadURL.label": "Include the policy download URL as an HTTP header",
          "extraHeaders.key.label": "Name",
          "extraHeaders.value.label": "Value",
          "extraHeaders.title": "Extra Response Headers",
          "error.httpStatus.field": "Invalid HTTP Status",
          "content_type.error_text": "Content type is invalid"
        }
      }
    ]
  },
  {
    "configName": "DecodeJsonWebToken",
    "displayNameFormats": [
      {
        "format": "Decode Json Web Token: validate using recipient key (Key: {{.keyAlias}})",
        "condition": "and(equals({{.validationType}}, Using Recipient Key From List), not(isNull({{.keyAlias}})))"
      },
      {
        "format": "Decode Json Web Token: validate using recipient key (Key: <Default Server SSL Key>)",
        "condition": "equals({{.validationType}}, Using Recipient Key From List)"
      },
      {
        "format": "Decode Json Web Token: validate using dynamic key (Key: {{.dynamicPrivateKeyVariable}})",
        "condition": "equals({{.validationType}}, Using Recipient Key Alias From Context Variable)"
      }
    ],
    "refVariables": [
      {
        "fieldPath": ".dynamicPrivateKeyVariable",
        "refType": "IN",
        "dataType": "string"
      },
      {
        "fieldPath": ".targetVariablePrefix",
        "refType": "OUT",
        "dataType": "other",
        "prefixed": true
      },
      {
        "fieldPath": ".targetVariablePrefix",
        "suffix": ".type",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".targetVariablePrefix",
        "suffix": ".header",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".targetVariablePrefix",
        "suffix": ".header.names",
        "refType": "OUT",
        "dataType": "string",
        "multivalued": true
      },
      {
        "fieldPath": ".targetVariablePrefix",
        "suffix": ".payload",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".targetVariablePrefix",
        "suffix": ".signature",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".targetVariablePrefix",
        "suffix": ".encrypted_key",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".targetVariablePrefix",
        "suffix": ".initialization_vector",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".targetVariablePrefix",
        "suffix": ".cipher_text",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".targetVariablePrefix",
        "suffix": ".authentication_tag",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".targetVariablePrefix",
        "suffix": ".plaintext",
        "refType": "OUT",
        "dataType": "string"
      }
    ],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/DecodeJsonWebToken",
        "title": "Decode Json Web Token",
        "properties": {
          "base64Encoded": {
            "type": "boolean",
            "default": false
          },
          "detachedJwsContent": {
            "type": "string"
          },
          "dynamicPrivateKeyVariable": {
            "type": "string"
          },
          "failUnverifiedSignature": {
            "type": "boolean",
            "default": true
          },
          "keyAlias": {
            "type": "string"
          },
          "keyGoid": {
            "type": "string"
          },
          "keyId": {
            "type": "string"
          },
          "keyType": {
            "type": "string",
            "enum": [
              "CERT",
              "JSON_WEB_KEY",
              "JSON_WEB_KEY_SET"
            ],
            "default": "CERT"
          },
          "__keyList": {
            "type": "string"
          },
          "privateKeyFromList": {
            "type": "boolean",
            "default": false
          },
          "privateKeySource": {
            "type": "string"
          },
          "signatureSecret": {
            "type": "string"
          },
          "sourcePayload": {
            "type": "string"
          },
          "targetVariablePrefix": {
            "type": "string"
          },
          "validationType": {
            "type": "string",
            "enum": [
              "NONE",
              "SECRET",
              "RECIPIENT_LIST",
              "RECIPIENT_ALIAS_VARIABLE",
              "RECIPIENT_VARIABLE"
            ],
            "default": "NONE"
          },
          "__inlineAlerts": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Decode Json Web Token",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/sourcePayload",
            "options": {
              "markAsRequired": true
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/detachedJwsContent",
            "i18n": "detachedJwsContent"
          },
          {
            "type": "Control",
            "scope": "#/properties/validationType",
            "i18n": "validationType",
            "options": {
              "markAsRequired": true
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/signatureSecret",
            "i18n": "signatureSecret",
            "options": {
              "format": "password",
              "markAsRequired": true
            },
            "rule": {
              "effect": "SHOW",
              "condition": {
                "scope": "#/properties/validationType",
                "schema": {
                  "const": "SECRET"
                }
              }
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/base64Encoded",
            "i18n": "base64Encoded",
            "rule": {
              "effect": "SHOW",
              "condition": {
                "scope": "#/properties/validationType",
                "schema": {
                  "const": "SECRET"
                }
              }
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/__keyList",
            "i18n": "keyList",
            "options": {
              "markAsRequired": true
            },
            "rule": {
              "effect": "SHOW",
              "condition": {
                "scope": "#/properties/validationType",
                "schema": {
                  "const": "RECIPIENT_LIST"
                }
              }
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/dynamicPrivateKeyVariable",
            "i18n": "dynamicPrivateKeyVariable",
            "options": {
              "markAsRequired": true,
              "contextVariable": true,
              "variableType": "input",
              "allowedDataTypes": []
            },
            "rule": {
              "effect": "SHOW",
              "condition": {
                "scope": "#/properties/validationType",
                "schema": {
                  "const": "RECIPIENT_ALIAS_VARIABLE"
                }
              }
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/privateKeySource",
            "i18n": "privateKeySource",
            "options": {
              "markAsRequired": true
            },
            "rule": {
              "effect": "SHOW",
              "condition": {
                "scope": "#/properties/validationType",
                "schema": {
                  "const": "RECIPIENT_VARIABLE"
                }
              }
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/keyType",
            "i18n": "keyType",
            "options": {
              "markAsRequired": true
            },
            "rule": {
              "effect": "SHOW",
              "condition": {
                "scope": "#/properties/validationType",
                "schema": {
                  "const": "RECIPIENT_VARIABLE"
                }
              }
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/keyId",
            "options": {
              "markAsRequired": true
            },
            "rule": {
              "effect": "SHOW",
              "condition": {
                "schema": {
                  "allOf": [
                    {
                      "properties": {
                        "validationType": {
                          "const": "RECIPIENT_VARIABLE"
                        }
                      },
                      "required": [
                        "validationType"
                      ]
                    },
                    {
                      "properties": {
                        "keyType": {
                          "const": "JSON_WEB_KEY_SET"
                        }
                      },
                      "required": [
                        "keyType"
                      ]
                    }
                  ]
                }
              }
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/failUnverifiedSignature",
            "i18n": "failUnverifiedSignature"
          },
          {
            "type": "Control",
            "scope": "#/properties/targetVariablePrefix",
            "i18n": "targetVariablePrefix",
            "options": {
              "markAsRequired": true,
              "contextVariable": true,
              "variableType": "output",
              "allowedDataTypes": []
            }
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/DecodeJsonWebToken",
        "locale": "en",
        "content": {
          "detachedJwsContent.label": "Detached JWS Content",
          "validationType.label": "Validation Method",
          "validationType.NONE": "None",
          "validationType.SECRET": "Using Secret",
          "validationType.RECIPIENT_LIST": "Using Recipient Key From List",
          "validationType.RECIPIENT_ALIAS_VARIABLE": "Using Recipient Key Alias From Context Variable",
          "validationType.RECIPIENT_VARIABLE": "Using Recipient Key From Context Variable",
          "privateKeySource.label": "Recipient Key Context Variable",
          "signatureSecret.label": "Secret",
          "keyType.label": "Key Type",
          "keyType.CERT": "Certificate",
          "keyType.JSON_WEB_KEY": "JSON Web Key",
          "keyType.JSON_WEB_KEY_SET": "JSON Web Key Set",
          "base64Encoded.label": "Is Base64 Encoded",
          "keyList.label": "Recipient Key",
          "dynamicPrivateKeyVariable.label": "Recipient Key Alias Context Variable",
          "failUnverifiedSignature.label": "Fail on invalid signature",
          "targetVariablePrefix.label": "Destination Variable Prefix"
        }
      }
    ]
  },
  {
    "configName": "DistributedRateLimit",
    "displayNameFormats": [
      {
        "format": "Apply Distributed Rate Limit: average {{.limitRequests}} msg/sec per {{.limitEachCounterType}}",
        "condition": "and(equals({{.rateLimitUnit}}, Second), not(equals({{.limitEachCounterType}}, Custom)))"
      },
      {
        "format": "Apply Distributed Rate Limit: average {{.limitRequests}} msg/min per {{.limitEachCounterType}}",
        "condition": "and(equals({{.rateLimitUnit}}, Minute), not(equals({{.limitEachCounterType}}, Custom)))"
      },
      {
        "format": "Apply Distributed Rate Limit: average {{.limitRequests}} msg/min per Custom \"{{.counterId}}\"",
        "condition": "and(equals({{.rateLimitUnit}}, Minute), equals({{.limitEachCounterType}}, Custom))"
      },
      {
        "format": "Apply Distributed Rate Limit: average {{.limitRequests}} msg/sec per Custom \"{{.counterId}}\"",
        "condition": "and(equals({{.rateLimitUnit}}, Second), equals({{.limitEachCounterType}}, Custom))"
      }
    ],
    "refVariables": [
      {
        "prefix": "distributedRateLimit",
        "fieldPath": ".variablePrefix",
        "refType": "OUT",
        "dataType": "int",
        "settable": true,
        "suffix": ".requests.remaining"
      },
      {
        "prefix": "distributedRateLimit",
        "fieldPath": ".variablePrefix",
        "refType": "OUT",
        "dataType": "int",
        "settable": true,
        "suffix": ".blackout.remaining.milliseconds"
      },
      {
        "prefix": "distributedRateLimit",
        "fieldPath": ".variablePrefix",
        "refType": "OUT",
        "dataType": "string",
        "settable": true,
        "suffix": ".counter.id"
      },
      {
        "prefix": "distributedRateLimit",
        "fieldPath": ".variablePrefix",
        "refType": "OUT",
        "dataType": "int",
        "settable": true,
        "suffix": ".reasonCode"
      }
    ],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/DistributedRateLimit",
        "title": "Apply Distributed Rate Limit",
        "properties": {
          "burstLimit": {
            "type": "string"
          },
          "counterId": {
            "type": "string"
          },
          "counterPrefix": {
            "type": "string"
          },
          "limitEachCounterType": {
            "type": "string",
            "enum": [
              "User or IP",
              "Authenticated user",
              "Client IP",
              "Custom"
            ]
          },
          "limitExceededOption": {
            "type": "string",
            "enum": [
              "Throttle",
              "Log Only"
            ]
          },
          "limitRequests": {
            "type": "string"
          },
          "rateLimitUnit": {
            "type": "string",
            "enum": [
              "Minute",
              "Second"
            ]
          },
          "rateLimitProvider": {
            "type": "string"
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Apply Distributed Rate Limit",
        "elements": [
          {
            "type": "Group",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "limitRate-group-style"
            },
            "elements": [
              {
                "type": "Control",
                "i18n": "limitRequest",
                "scope": "#/properties/limitRequests",
                "options": {
                  "markAsRequired": true
                }
              },
              {
                "type": "Label",
                "text": "per"
              },
              {
                "type": "Control",
                "scope": "#/properties/rateLimitUnit",
                "i18n": "rateLimitUnit"
              }
            ]
          },
          {
            "type": "VerticalLayout",
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/burstLimit",
                "options": {
                  "markAsRequired": true,
                  "customClass": "burstLimit-field"
                },
                "i18n": "burstLimit"
              },
              {
                "type": "Control",
                "scope": "#/properties/limitEachCounterType",
                "i18n": "limitEach"
              },
              {
                "type": "Control",
                "scope": "#/properties/counterId",
                "options": {
                  "markAsRequired": true
                },
                "rule": {
                  "effect": "DISABLE",
                  "condition": {
                    "scope": "#/properties/limitEachCounterType",
                    "schema": {
                      "enum": [
                        "Client IP",
                        "Authenticated user",
                        "User or IP"
                      ]
                    }
                  }
                },
                "i18n": "counterId"
              },
              {
                "type": "Control",
                "scope": "#/properties/limitExceededOption",
                "i18n": "limitExceeded",
                "options": {
                  "autocomplete": true,
                  "allowUserProvidedInput": true,
                  "defaultOptions": [
                    {
                      "label": "Throttle",
                      "value": "Throttle"
                    },
                    {
                      "label": "Log Only",
                      "value": "Log Only"
                    }
                  ]
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/rateLimitProvider",
                "options": {
                  "readonly": true,
                  "defaultValue": "NOT CONFIGURED"
                },
                "i18n": "rateLimitProvider"
              }
            ]
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/DistributedRateLimit",
        "locale": "en",
        "content": {
          "limitRequest": "Limit Requests",
          "rateUnit.label": "per",
          "burstLimit.label": "Burst Limit",
          "limitEach.label": "Limit Each",
          "limitEach.User or IP": "User or IP",
          "limitEach.Authenticated user": "Authenticated user",
          "limitEach.Client IP": "Client IP",
          "limitEach.Custom": "Custom",
          "counterId.label": "Counter ID",
          "rateLimitUnit.Minute": "Minute",
          "rateLimitUnit.Second": "Second",
          "limitExceeded.label": "When Limit Exceeded",
          "rateLimitProvider.label": "Rate Limit Provider",
          "rateLimitUnit.label": "Limit Requests Units"
        }
      }
    ]
  },
  {
    "configName": "EchoRoutingAssertion",
    "displayNameFormats": [
      {
        "format": "Copy Request Message to Response",
        "condition": true
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Copy Request Message to Response",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/currentSecurityHeaderHandling",
            "options": {
              "wssSecurityHeaderHandling": true
            }
          },
          {
            "type": "Group",
            "label": "WS-Security Recipient",
            "options": {
              "groupType": "ShowHide"
            },
            "elements": [
              {
                "type": "Control",
                "options": {
                  "wssRecipient": true
                }
              }
            ]
          }
        ]
      }
    ]
  },
  {
    "configName": "Email",
    "displayNameFormats": [
      {
        "format": "Send Email",
        "condition": "true"
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Send Email",
        "elements": [
          {
            "type": "Group",
            "i18n": "smtpProperties",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "section-header-group-style"
            },
            "elements": [
              {
                "type": "Group",
                "options": {
                  "groupType": "wrapCustomClass",
                  "customClass": "host-group-style"
                },
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/smtpHost",
                    "i18n": "smtpHost",
                    "options": {
                      "markAsRequired": true
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/smtpPort",
                    "i18n": "smtpPort",
                    "options": {
                      "markAsRequired": true
                    }
                  }
                ]
              },
              {
                "type": "Control",
                "scope": "#/properties/protocol",
                "i18n": "protocol"
              },
              {
                "type": "Control",
                "scope": "#/properties/authenticate",
                "i18n": "authenticate"
              },
              {
                "type": "Control",
                "i18n": "authUsername",
                "scope": "#/properties/authUsername",
                "options": {
                  "markAsRequired": true
                },
                "rule": {
                  "effect": "SHOW",
                  "condition": {
                    "scope": "#/properties/authenticate",
                    "schema": {
                      "const": true
                    }
                  }
                }
              },
              {
                "type": "Control",
                "i18n": "authPassword",
                "scope": "#/properties/authPassword",
                "options": {
                  "format": "password",
                  "markAsRequired": true
                },
                "rule": {
                  "effect": "SHOW",
                  "condition": {
                    "scope": "#/properties/authenticate",
                    "schema": {
                      "const": true
                    }
                  }
                }
              },
              {
                "type": "Control",
                "i18n": "contextVarPassword",
                "scope": "#/properties/contextVarPassword",
                "rule": {
                  "effect": "SHOW",
                  "condition": {
                    "scope": "#/properties/authenticate",
                    "schema": {
                      "const": true
                    }
                  }
                }
              }
            ]
          },
          {
            "type": "Group",
            "i18n": "emailProperties",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "section-header-group-style"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/sourceEmailAddress",
                "i18n": "sourceEmailAddress",
                "options": {
                  "markAsRequired": true
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/targetEmailAddress",
                "i18n": "targetEmailAddress",
                "options": {
                  "markAsRequired": true
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/targetCCEmailAddress",
                "i18n": "targetCCEmailAddress"
              },
              {
                "type": "Control",
                "scope": "#/properties/targetBCCEmailAddress",
                "i18n": "targetBCCEmailAddress"
              },
              {
                "type": "Control",
                "scope": "#/properties/subject",
                "i18n": "subject"
              },
              {
                "type": "Control",
                "scope": "#/properties/format",
                "i18n": "format",
                "options": {
                  "format": "radio"
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/base64message",
                "i18n": "base64message",
                "options": {
                  "multiline": true,
                  "rows": 6
                }
              },
              {
                "type": "Group",
                "label": "Attachments",
                "options": {
                  "groupType": "ShowHide"
                },
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/attachments",
                    "i18n": "addAttachments",
                    "options": {
                      "nameValueList": true,
                      "detail": {
                        "type": "VerticalLayout",
                        "elements": [
                          {
                            "type": "Control",
                            "scope": "#/properties/name",
                            "i18n": "mimePartVariable"
                          },
                          {
                            "type": "Control",
                            "scope": "#/properties/__name",
                            "i18n": "name",
                            "options": {
                              "markAsRequired": true
                            },
                            "rule": {
                              "effect": "SHOW",
                              "condition": {
                                "scope": "#/properties/__mimePartVariable",
                                "schema": {
                                  "const": false
                                }
                              }
                            }
                          },
                          {
                            "type": "Control",
                            "scope": "#/properties/sourceVariable",
                            "i18n": "sourceVariable",
                            "options": {
                              "markAsRequired": true,
                              "autocomplete": true,
                              "allowUserProvidedInput": false,
                              "defaultOptions": []
                            }
                          },
                          {
                            "type": "Control",
                            "scope": "#/properties/mimePartVariable",
                            "i18n": "mimePartVariable"
                          },
                          {
                            "type": "Control",
                            "scope": "#/properties/__mimePartVariable",
                            "i18n": "mimePartVariable",
                            "options": {
                              "hideColumn": true
                            }
                          }
                        ]
                      }
                    }
                  }
                ]
              },
              {
                "type": "Control",
                "scope": "#/properties/__send",
                "i18n": "__send",
                "options": {
                  "controlType": "Button",
                  "variant": "outlined"
                }
              }
            ]
          }
        ]
      }
    ],
    "configSchemaPatches": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/Email",
        "patches": [
          {
            "op": "add",
            "path": "/properties/__send",
            "value": {
              "type": "string"
            }
          },
          {
            "op": "replace",
            "path": "/properties/attachments",
            "value": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "__name": {
                    "type": "string",
                    "title": "Name"
                  },
                  "name": {
                    "type": "string",
                    "title": "Name"
                  },
                  "sourceVariable": {
                    "type": "string",
                    "title": "Source Variable"
                  },
                  "mimePartVariable": {
                    "type": "string",
                    "default": false,
                    "title": "MIME Part(s)"
                  },
                  "__mimePartVariable": {
                    "type": "boolean",
                    "default": false
                  }
                }
              }
            }
          },
          {
            "op": "remove",
            "path": "/properties/smtpHost/default"
          },
          {
            "op": "remove",
            "path": "/properties/smtpPort/default"
          },
          {
            "op": "remove",
            "path": "/properties/sourceEmailAddress/default"
          },
          {
            "op": "remove",
            "path": "/properties/subject/default"
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/Email",
        "locale": "en",
        "content": {
          "smtpProperties": "SMTP Properties",
          "smtpHost.label": "Host",
          "smtpPort.label": "Port",
          "protocol.label": "Protocol",
          "protocol.PLAIN": "Plain SMTP",
          "protocol.SSL": "SMTP over SSL",
          "protocol.STARTTLS": "SMTP with STARTTLS",
          "authenticate.label": "Server requires authentication",
          "authUsername.label": "Username",
          "authPassword.label": "Password",
          "contextVarPassword.label": "Context variable in password",
          "emailProperties": "Email Properties",
          "sourceEmailAddress.label": "From",
          "targetEmailAddress.label": "To",
          "targetCCEmailAddress.label": "CC",
          "targetBCCEmailAddress.label": "BCC",
          "subject.label": "Subject",
          "format.label": "Format",
          "format.PLAIN_TEXT": "Plain Text",
          "format.HTML": "HTML",
          "base64message.label": "Message",
          "__send": "Send Test Email",
          "name.label": "Name",
          "sourceVariable.label": "Source Variable",
          "mimePartVariable.label": "Mime parts(s) variable",
          "addAttachments.label": "Attachments",
          "confirmTitle.label": "Confirm Email Test",
          "infoText.label": "This will send an email to the following recipients:",
          "note.label": "Note: Attachments will be ignored",
          "sendBtn.label": "Send",
          "failedTitle.label": "Failed to send email",
          "invalid_port.field": "Port number must be in range 1 to 65535 or valid context variable reference",
          "invalid.targetEmail.error": "Invalid source email",
          "error.duplicate.field": "Duplicate attachment names are not allowed",
          "sentTitle.label": "Email sent successfully."
        }
      }
    ]
  },
  {
    "configName": "Encapsulated",
    "displayNameFormats": [
      {
        "format": "{{.encassName}}",
        "condition": "true"
      }
    ],
    "refEntities": [
      {
        "fieldPath": ".encassName",
        "refType": "NAME",
        "entityType": "EncassConfig"
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Encapsulated",
        "elements": []
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/Encapsulated",
        "locale": "en",
        "content": {
          "addCertificate.button.label": "Add Cert",
          "inputType.string.message": "Input must be a string",
          "inputType.int.message": "Input must be an integer",
          "inputType.decimal.message": "Input must be a decimal",
          "inputType.float.message": "Input must be a float",
          "inputType.binary.message": "Input must be a binary",
          "inputType.binary.error": "Input must contains even number of character count and hexadecimal characters"
        }
      }
    ]
  },
  {
    "configName": "EncodeDecode",
    "displayNameFormats": [
      {
        "format": "Base64 Decode {{.sourceVariableName#variable#expression}} into {{.targetVariableName#variable#expression}} as X.509 Certificate",
        "condition": "and(equals({{.transformType}}, BASE64_DECODE), equals({{.targetDataType}}, cert))"
      },
      {
        "format": "Base32 Decode {{.sourceVariableName#variable#expression}} into {{.targetVariableName#variable#expression}} as X.509 Certificate",
        "condition": "and(equals({{.transformType}}, BASE32_DECODE), equals({{.targetDataType}}, cert))"
      },
      {
        "format": "Base16 Decode {{.sourceVariableName#variable#expression}} into {{.targetVariableName#variable#expression}} as X.509 Certificate",
        "condition": "and(equals({{.transformType}}, HEX_DECODE), equals({{.targetDataType}}, cert))"
      },
      {
        "format": "Zip Compress {{.sourceVariableName#variable#expression}} into {{.targetVariableName#variable#expression}} as X.509 Certificate",
        "condition": "and(equals({{.transformType}}, ZIP), equals({{.targetDataType}}, cert))"
      },
      {
        "format": "Zip Decompress {{.sourceVariableName#variable#expression}} into {{.targetVariableName#variable#expression}} as X.509 Certificate",
        "condition": "and(equals({{.transformType}}, UNZIP), equals({{.targetDataType}}, cert))"
      },
      {
        "format": "GZIP Compress {{.sourceVariableName#variable#expression}} into {{.targetVariableName#variable#expression}} as X.509 Certificate",
        "condition": "and(equals({{.transformType}}, GZIP), equals({{.targetDataType}}, cert))"
      },
      {
        "format": "GZIP Decompress {{.sourceVariableName#variable#expression}} into {{.targetVariableName#variable#expression}} as X.509 Certificate",
        "condition": "and(equals({{.transformType}}, GUNZIP), equals({{.targetDataType}}, cert))"
      },
      {
        "format": "Base64 Encode {{.sourceVariableName#variable#expression}} into {{.targetVariableName#variable#expression}} as Message '{{.targetContentType}}'",
        "condition": "and(equals({{.transformType}}, BASE64_ENCODE), equals({{.targetDataType}}, message))"
      },
      {
        "format": "Base32 Encode {{.sourceVariableName#variable#expression}} into {{.targetVariableName#variable#expression}} as Message '{{.targetContentType}}'",
        "condition": "and(equals({{.transformType}}, BASE32_ENCODE), equals({{.targetDataType}}, message))"
      },
      {
        "format": "Base16 Encode {{.sourceVariableName#variable#expression}} into {{.targetVariableName#variable#expression}} as Message '{{.targetContentType}}'",
        "condition": "and(equals({{.transformType}}, HEX_ENCODE), equals({{.targetDataType}}, message))"
      },
      {
        "format": "URL Encode {{.sourceVariableName#variable#expression}} into {{.targetVariableName#variable#expression}} as Message '{{.targetContentType}}'",
        "condition": "and(equals({{.transformType}}, URL_ENCODE), equals({{.targetDataType}}, message))"
      },
      {
        "format": "URL Decode {{.sourceVariableName#variable#expression}} into {{.targetVariableName#variable#expression}} as Message '{{.targetContentType}}'",
        "condition": "and(equals({{.transformType}}, URL_DECODE), equals({{.targetDataType}}, message))"
      },
      {
        "format": "Base64 Decode {{.sourceVariableName#variable#expression}} into {{.targetVariableName#variable#expression}} as Message '{{.targetContentType}}'",
        "condition": "and(equals({{.transformType}}, BASE64_DECODE), equals({{.targetDataType}}, message))"
      },
      {
        "format": "Base32 Decode {{.sourceVariableName#variable#expression}} into {{.targetVariableName#variable#expression}} as Message '{{.targetContentType}}'",
        "condition": "and(equals({{.transformType}}, BASE32_DECODE), equals({{.targetDataType}}, message))"
      },
      {
        "format": "Base16 Decode {{.sourceVariableName#variable#expression}} into {{.targetVariableName#variable#expression}} as Message '{{.targetContentType}}'",
        "condition": "and(equals({{.transformType}}, HEX_DECODE), equals({{.targetDataType}}, message))"
      },
      {
        "format": "Zip Compress {{.sourceVariableName#variable#expression}} into {{.targetVariableName#variable#expression}} as Message '{{.targetContentType}}'",
        "condition": "and(equals({{.transformType}}, ZIP), equals({{.targetDataType}}, message))"
      },
      {
        "format": "Zip Decompress {{.sourceVariableName#variable#expression}} into {{.targetVariableName#variable#expression}} as Message '{{.targetContentType}}'",
        "condition": "and(equals({{.transformType}}, UNZIP), equals({{.targetDataType}}, message))"
      },
      {
        "format": "GZIP Compress {{.sourceVariableName#variable#expression}} into {{.targetVariableName#variable#expression}} as Message '{{.targetContentType}}'",
        "condition": "and(equals({{.transformType}}, GZIP), equals({{.targetDataType}}, message))"
      },
      {
        "format": "GZIP Decompress {{.sourceVariableName#variable#expression}} into {{.targetVariableName#variable#expression}} as Message '{{.targetContentType}}'",
        "condition": "and(equals({{.transformType}}, GUNZIP), equals({{.targetDataType}}, message))"
      },
      {
        "format": "Base64 Encode {{.sourceVariableName#variable#expression}} into {{.targetVariableName#variable#expression}}",
        "condition": "equals({{.transformType}}, BASE64_ENCODE)"
      },
      {
        "format": "Base32 Encode {{.sourceVariableName#variable#expression}} into {{.targetVariableName#variable#expression}}",
        "condition": "and(equals({{.transformType}}, BASE32_ENCODE), not(isNull({{.sourceVariableName}})) , not(isNull({{.targetVariableName}})))"
      },
      {
        "format": "Base16 Encode {{.sourceVariableName#variable#expression}} into {{.targetVariableName#variable#expression}}",
        "condition": "and(equals({{.transformType}}, HEX_ENCODE), not(isNull(${ {{.sourceVariableName}} })) , not(isNull({{.targetVariableName}})))"
      },
      {
        "format": "URL Encode {{.sourceVariableName#variable#expression}} into {{.targetVariableName#variable#expression}}",
        "condition": "and(equals({{.transformType}}, URL_ENCODE), not(isNull(${ {{.sourceVariableName}} })), not(isNull({{.targetVariableName}})))"
      },
      {
        "format": "URL Decode  {{.sourceVariableName#variable#expression}} into {{.targetVariableName#variable#expression}}",
        "condition": "and(equals({{.transformType}}, URL_DECODE), not(isNull(${ {{.sourceVariableName}} })), not(isNull({{.targetVariableName}})))"
      },
      {
        "format": "Base64 Decode {{.sourceVariableName#variable#expression}} into {{.targetVariableName#variable#expression}}",
        "condition": "and(equals({{.transformType}}, BASE64_DECODE), not(isNull(${ {{.sourceVariableName}} })), not(isNull({{.targetVariableName}})))"
      },
      {
        "format": "Base32 Decode {{.sourceVariableName#variable#expression}} into {{.targetVariableName#variable#expression}}",
        "condition": "and(equals({{.transformType}}, BASE32_DECODE), not(isNull(${ {{.sourceVariableName}} })), not(isNull({{.targetVariableName}})))"
      },
      {
        "format": "Base16 Decode {{.sourceVariableName#variable#expression}} into {{.targetVariableName#variable#expression}}",
        "condition": "and(equals({{.transformType}}, HEX_DECODE), not(isNull(${ {{.sourceVariableName}} })), not(isNull({{.targetVariableName}})))"
      },
      {
        "format": "Zip Compress {{.sourceVariableName#variable#expression}} into {{.targetVariableName#variable#expression}}",
        "condition": "and(equals({{.transformType}}, ZIP), not(isNull(${ {{.sourceVariableName}} })), not(isNull({{.targetVariableName}})))"
      },
      {
        "format": "Zip Decompress {{.sourceVariableName#variable#expression}} into {{.targetVariableName#variable#expression}}",
        "condition": "and(equals({{.transformType}}, UNZIP), not(isNull(${ {{.sourceVariableName}} })), not(isNull({{.targetVariableName}})))"
      },
      {
        "format": "GZIP Compress {{.sourceVariableName#variable#expression}} into {{.targetVariableName#variable#expression}}",
        "condition": "and(equals({{.transformType}}, GZIP), not(isNull(${ {{.sourceVariableName}} })), not(isNull({{.targetVariableName}})))"
      },
      {
        "format": "GZIP Decompress {{.sourceVariableName#variable#expression}} into {{.targetVariableName#variable#expression}}",
        "condition": "and(equals({{.transformType}}, GUNZIP), not(isNull(${ {{.sourceVariableName}} })), not(isNull({{.targetVariableName}})))"
      }
    ],
    "refVariables": [
      {
        "fieldPath": ".sourceVariableName",
        "refType": "IN",
        "dataType": "other"
      },
      {
        "fieldPath": ".targetVariableName",
        "refType": "OUT",
        "dataType": "message",
        "condition": "equals({{.targetDataType}}, message)"
      },
      {
        "fieldPath": ".targetVariableName",
        "refType": "OUT",
        "dataType": "string",
        "condition": "not(equals({{.targetDataType}}, message))"
      }
    ],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/EncodeDecode",
        "title": "Encode/Decode Data",
        "properties": {
          "transformType": {
            "type": "string"
          },
          "sourceVariableName": {
            "type": "string"
          },
          "targetVariableName": {
            "type": "string"
          },
          "targetDataType": {
            "type": "string"
          },
          "targetContentType": {
            "type": "string"
          },
          "characterEncoding": {
            "type": "string"
          },
          "strict": {
            "type": "boolean",
            "default": false
          },
          "lineBreakInterval": {
            "type": "integer"
          },
          "__multipleLines": {
            "type": "boolean",
            "default": false
          },
          "__inlineAlerts": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Encode/Decode Data",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/transformType",
            "i18n": "transformType",
            "options": {}
          },
          {
            "type": "Control",
            "scope": "#/properties/sourceVariableName",
            "i18n": "sourceVariableName",
            "options": {
              "markAsRequired": true
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/targetVariableName",
            "i18n": "targetVariableName",
            "options": {
              "markAsRequired": true,
              "contextVariable": true,
              "variableType": "output",
              "allowedDataTypes": []
            }
          },
          {
            "type": "Group",
            "i18n": "target-option",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "target-group"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/targetDataType",
                "i18n": "targetDataType",
                "options": {}
              },
              {
                "type": "Control",
                "scope": "#/properties/targetContentType",
                "i18n": "targetContentType",
                "options": {
                  "markAsRequired": true
                },
                "rule": {
                  "effect": "HIDE",
                  "condition": {
                    "scope": "#/properties/targetDataType",
                    "schema": {
                      "enum": [
                        "string",
                        "cert"
                      ]
                    }
                  }
                }
              }
            ]
          },
          {
            "type": "Group",
            "i18n": "encode-decode-options",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "target-group"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/characterEncoding",
                "i18n": "characterEncoding",
                "options": {
                  "markAsRequired": true
                },
                "rule": {
                  "effect": "DISABLE",
                  "condition": {
                    "scope": "#",
                    "schema": {
                      "anyOf": [
                        {
                          "allOf": [
                            {
                              "properties": {
                                "transformType": {
                                  "enum": [
                                    "BASE64_DECODE",
                                    "BASE32_DECODE",
                                    "HEX_DECODE"
                                  ]
                                },
                                "targetDataType": {
                                  "enum": [
                                    "message",
                                    "cert"
                                  ]
                                }
                              },
                              "required": [
                                "transformType",
                                "targetDataType"
                              ]
                            }
                          ]
                        }
                      ]
                    }
                  }
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/__inlineAlerts",
                "options": {
                  "inlineAlerts": "warning"
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/strict",
                "i18n": "strict",
                "rule": {
                  "effect": "DISABLE",
                  "condition": {
                    "scope": "#/properties/transformType",
                    "schema": {
                      "enum": [
                        "BASE64_ENCODE",
                        "BASE32_ENCODE",
                        "HEX_ENCODE",
                        "URL_ENCODE",
                        "URL_DECODE",
                        "ZIP",
                        "UNZIP",
                        "GZIP",
                        "GUNZIP"
                      ]
                    }
                  }
                }
              },
              {
                "type": "Group",
                "rule": {
                  "effect": "DISABLE",
                  "condition": {
                    "scope": "#/properties/transformType",
                    "schema": {
                      "enum": [
                        "BASE64_DECODE",
                        "BASE32_DECODE",
                        "HEX_DECODE",
                        "ZIP",
                        "UNZIP",
                        "GZIP",
                        "GUNZIP"
                      ]
                    }
                  }
                },
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/__multipleLines",
                    "i18n": "__multipleLines",
                    "options": {
                      "subUiSchema": {
                        "type": "Control",
                        "scope": "#/properties/lineBreakInterval",
                        "i18n": "lineBreakInterval",
                        "options": {
                          "markAsRequired": true
                        }
                      }
                    }
                  }
                ]
              }
            ]
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/EncodeDecode",
        "locale": "en",
        "content": {
          "sourceVariableName.label": "Source Variable",
          "targetVariableName.label": "Target Variable",
          "targetContentType.label": "Content Type",
          "characterEncoding.label": "Character Encoding",
          "targetDataType.label": "Data Type",
          "strict.label": "Fail assertion if illegal Base64 characters are found",
          "lineBreakInterval.label": "Line Length (characters)",
          "__multipleLines.label": "Break output into multiple lines",
          "target-option": "Target Options",
          "variable.ERROR": "Line length must be exactly 10 digits and contain only numbers",
          "transformType.BASE64_ENCODE": "Base64 Encode",
          "transformType.BASE32_ENCODE": "Base32 Encode",
          "transformType.HEX_ENCODE": "Base16 (hex) Encode",
          "transformType.URL_ENCODE": "URL Encode",
          "transformType.URL_DECODE": "URL Decode",
          "transformType.BASE64_DECODE": "Base64 Decode",
          "transformType.BASE32_DECODE": "Base32 Decode",
          "transformType.HEX_DECODE": "Base16 (hex) Decode",
          "transformType.ZIP": "Zip Compress",
          "transformType.UNZIP": "Zip Decompress",
          "transformType.GZIP": "GZIP Compress",
          "transformType.GUNZIP": "GZIP Decompress",
          "targetDataType.string": "String",
          "targetDataType.message": "Message",
          "transformType.label": "Encode/Decode",
          "targetDataType.cert": "X.509 Certificate",
          "encode-decode-options": "Encode/Decode Options",
          "set-variable.content_type.error_text": "Content type is invalid",
          "character-encoding.warning": "Invalid or unknown character encoding detected. Execution may fall back to UTF-8 on errors."
        }
      }
    ]
  },
  {
    "configName": "EncodeJsonWebToken",
    "displayNameFormats": [
      {
        "format": "Encode Json Web Token: unsecure",
        "condition": "and(or(isNull({{.signPayload}}), equals({{.signPayload}}, false)), or(isNull({{.encryptPayload}}), equals({{.encryptPayload}}, false)))"
      },
      {
        "format": "Encode Json Web Token: sign payload",
        "condition": "and(equals({{.signPayload}}, true), or(isNull({{.encryptPayload}}), equals({{.encryptPayload}}, false)))"
      },
      {
        "format": "Encode Json Web Token: encrypt payload",
        "condition": "and(equals({{.encryptPayload}}, true), or(isNull({{.signPayload}}), equals({{.signPayload}}, false)))"
      },
      {
        "format": "Encode Json Web Token: sign & encrypt payload",
        "condition": "true"
      }
    ],
    "refVariables": [
      {
        "fieldPath": ".targetVariable",
        "refType": "OUT",
        "dataType": "other",
        "prefixed": true
      },
      {
        "fieldPath": ".targetVariable",
        "suffix": ".compact",
        "refType": "OUT",
        "dataType": "string"
      }
    ],
    "refEntities": [
      {
        "fieldPath": ".keyGoid",
        "refType": "GOID",
        "entityType": "Key"
      },
      {
        "fieldPath": ".keyAlias",
        "refType": "NAME",
        "entityType": "Key"
      }
    ],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/EncodeJsonWebToken",
        "title": "Encode Json Web Token",
        "properties": {
          "contentEncryptionAlgorithm": {
            "type": "string"
          },
          "dynamicPrivateKeyAliasVariable": {
            "type": "string"
          },
          "emptyPayload": {
            "type": "boolean",
            "default": false
          },
          "encryptPayload": {
            "type": "boolean"
          },
          "encryptionKey": {
            "type": "string"
          },
          "encryptionKeyId": {
            "type": "string"
          },
          "encryptionKeyType": {
            "type": "string",
            "enum": [
              "Certificate",
              "JSON Web Key",
              "JSON Web Key Set"
            ]
          },
          "encryptionSecret": {
            "type": "string"
          },
          "encryptionSecretBase64Encoded": {
            "type": "boolean",
            "default": false
          },
          "encryptionSourceType": {
            "type": "string",
            "enum": [
              "2"
            ]
          },
          "headerAction": {
            "type": "string",
            "default": "Use Generated Header",
            "enum": [
              "Use Generated Header",
              "Merge to Generated Header",
              "Replace Generated Header"
            ]
          },
          "keyAlias": {
            "type": "string"
          },
          "keyGoid": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/sub-types/goid"
          },
          "keyManagementAlgorithm": {
            "type": "string"
          },
          "signPayload": {
            "type": "boolean"
          },
          "signatureAlgorithm": {
            "type": "string",
            "default": "HS256"
          },
          "signatureJwksKeyId": {
            "type": "string"
          },
          "signatureKeyType": {
            "type": "string",
            "enum": [
              "JSON Web Key",
              "JSON Web Key Set"
            ]
          },
          "signatureSecretBase64Encoded": {
            "type": "boolean",
            "default": false
          },
          "signatureSecretKey": {
            "type": "string"
          },
          "signatureSourceType": {
            "type": "string",
            "default": "0",
            "enum": [
              "0",
              "2"
            ]
          },
          "signatureSourceVariable": {
            "type": "string"
          },
          "sourceHeaders": {
            "type": "string"
          },
          "sourceVariable": {
            "type": "string",
            "default": ""
          },
          "targetVariable": {
            "type": "string"
          },
          "__signatureShowSecret": {
            "type": "boolean"
          },
          "__encryptShowSecret": {
            "type": "boolean"
          },
          "__inlineAlerts": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      {
        "type": "string",
        "enum": [
          "0000000000000000ffffffffffffffff"
        ],
        "$id": "https://l7tech.com/2025/json-schema/assertions/sub-types/goid"
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Encode Json Web Token",
        "elements": [
          {
            "type": "Group",
            "label": "General",
            "isExpanded": true,
            "options": {
              "groupType": "Accordion"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/sourceVariable",
                "i18n": "General.sourceVariable",
                "options": {
                  "markAsRequired": true
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/emptyPayload",
                "i18n": "General.emptyPayload"
              },
              {
                "type": "Control",
                "scope": "#/properties/headerAction",
                "i18n": "General.headerAction"
              },
              {
                "type": "Control",
                "scope": "#/properties/sourceHeaders",
                "i18n": "General.sourceHeaders",
                "options": {
                  "markAsRequired": true
                },
                "rule": {
                  "effect": "HIDE",
                  "condition": {
                    "scope": "#/properties/headerAction",
                    "schema": {
                      "const": "Use Generated Header"
                    }
                  }
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/targetVariable",
                "i18n": "General.targetVariable",
                "options": {
                  "markAsRequired": true,
                  "contextVariable": true,
                  "variableType": "output",
                  "allowedDataTypes": []
                }
              }
            ]
          },
          {
            "type": "Group",
            "label": "JWS",
            "isExpanded": false,
            "options": {
              "groupType": "Accordion"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/signPayload",
                "i18n": "JWS.signPayload"
              },
              {
                "type": "VerticalLayout",
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/signatureAlgorithm",
                    "i18n": "JWS.signatureAlgorithm"
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/__inlineAlerts",
                    "options": {
                      "inlineAlerts": "warning"
                    },
                    "rule": {
                      "effect": "SHOW",
                      "condition": {
                        "scope": "#/properties/signatureAlgorithm",
                        "schema": {
                          "enum": [
                            "RS256",
                            "RS384",
                            "RS512"
                          ]
                        }
                      }
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/signatureSourceType",
                    "i18n": "JWS.signatureSourceType",
                    "options": {
                      "format": "radio",
                      "useRowLayout": false,
                      "uiSchemasMap": {
                        "0": {
                          "type": "Group",
                          "options": {
                            "groupType": "wrapCustomClass",
                            "customClass": "hide-input-label"
                          },
                          "elements": [
                            {
                              "type": "Control",
                              "scope": "#/properties/signatureSecretKey",
                              "label": false,
                              "options": {
                                "format": "password",
                                "markAsRequired": true
                              }
                            },
                            {
                              "type": "Control",
                              "scope": "#/properties/signatureSecretBase64Encoded",
                              "i18n": "JWS.signatureSecretBase64Encoded"
                            }
                          ]
                        },
                        "1": {
                          "type": "Group",
                          "options": {
                            "groupType": "wrapCustomClass",
                            "customClass": "hide-input-label"
                          },
                          "elements": [
                            {
                              "type": "Control",
                              "scope": "#/properties/keyGoid",
                              "label": false
                            }
                          ]
                        },
                        "2": {
                          "type": "Group",
                          "options": {
                            "groupType": "wrapCustomClass",
                            "customClass": "hide-input-label"
                          },
                          "elements": [
                            {
                              "type": "Control",
                              "scope": "#/properties/signatureSourceVariable",
                              "label": false,
                              "options": {
                                "markAsRequired": true
                              }
                            },
                            {
                              "type": "Control",
                              "scope": "#/properties/signatureKeyType",
                              "i18n": "JWS.signatureKeyType"
                            },
                            {
                              "type": "Control",
                              "scope": "#/properties/signatureJwksKeyId",
                              "i18n": "JWS.signatureJwksKeyId",
                              "options": {
                                "markAsRequired": true
                              },
                              "rule": {
                                "effect": "SHOW",
                                "condition": {
                                  "scope": "#/properties/signatureKeyType",
                                  "schema": {
                                    "const": "JSON Web Key Set"
                                  }
                                }
                              }
                            }
                          ]
                        },
                        "3": {
                          "type": "Group",
                          "options": {
                            "groupType": "wrapCustomClass",
                            "customClass": "hide-input-label"
                          },
                          "elements": [
                            {
                              "type": "Control",
                              "scope": "#/properties/dynamicPrivateKeyAliasVariable",
                              "label": false,
                              "options": {
                                "markAsRequired": true
                              }
                            }
                          ]
                        }
                      }
                    }
                  }
                ],
                "rule": {
                  "effect": "SHOW",
                  "condition": {
                    "scope": "#/properties/signPayload",
                    "schema": {
                      "const": true
                    }
                  }
                }
              }
            ]
          },
          {
            "type": "Group",
            "label": "JWE",
            "isExpanded": false,
            "options": {
              "groupType": "Accordion"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/encryptPayload",
                "i18n": "JWE.encryptPayload"
              },
              {
                "type": "VerticalLayout",
                "elements": [
                  {
                    "type": "Group",
                    "i18n": "JWE.keyManagement",
                    "options": {
                      "groupType": "wrapCustomClass",
                      "customClass": "group-with-heading"
                    },
                    "elements": [
                      {
                        "type": "Control",
                        "scope": "#/properties/keyManagementAlgorithm",
                        "i18n": "JWE.keyManagementAlgorithm"
                      },
                      {
                        "type": "Control",
                        "scope": "#/properties/encryptionSourceType",
                        "i18n": "JWE.encryptionSourceType",
                        "options": {
                          "format": "radio",
                          "useRowLayout": false,
                          "uiSchemasMap": {
                            "0": {
                              "type": "Group",
                              "options": {
                                "groupType": "wrapCustomClass",
                                "customClass": "hide-input-label"
                              },
                              "elements": [
                                {
                                  "type": "Control",
                                  "scope": "#/properties/encryptionSecret",
                                  "label": false,
                                  "options": {
                                    "format": "password",
                                    "markAsRequired": true
                                  }
                                },
                                {
                                  "type": "Control",
                                  "scope": "#/properties/encryptionSecretBase64Encoded",
                                  "i18n": "JWE.encryptionSecretBase64Encoded"
                                }
                              ]
                            },
                            "2": {
                              "type": "Group",
                              "options": {
                                "groupType": "wrapCustomClass",
                                "customClass": "hide-input-label"
                              },
                              "elements": [
                                {
                                  "type": "Control",
                                  "scope": "#/properties/encryptionKey",
                                  "label": false,
                                  "options": {
                                    "markAsRequired": true
                                  }
                                },
                                {
                                  "type": "Control",
                                  "scope": "#/properties/encryptionKeyType",
                                  "i18n": "JWE.encryptionKeyType"
                                },
                                {
                                  "type": "Control",
                                  "scope": "#/properties/encryptionKeyId",
                                  "i18n": "JWE.encryptionKeyId",
                                  "options": {
                                    "markAsRequired": true
                                  },
                                  "rule": {
                                    "effect": "SHOW",
                                    "condition": {
                                      "scope": "#/properties/encryptionKeyType",
                                      "schema": {
                                        "const": "JSON Web Key Set"
                                      }
                                    }
                                  }
                                }
                              ]
                            }
                          }
                        }
                      }
                    ]
                  },
                  {
                    "type": "Group",
                    "i18n": "JWE.contentEncryption",
                    "options": {
                      "groupType": "wrapCustomClass",
                      "customClass": "group-with-heading"
                    },
                    "elements": [
                      {
                        "type": "Control",
                        "scope": "#/properties/contentEncryptionAlgorithm",
                        "i18n": "JWE.contentEncryptionAlgorithm"
                      }
                    ]
                  }
                ],
                "rule": {
                  "effect": "SHOW",
                  "condition": {
                    "scope": "#/properties/encryptPayload",
                    "schema": {
                      "const": true
                    }
                  }
                }
              }
            ]
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/EncodeJsonWebToken",
        "locale": "en",
        "content": {
          "General.sourceVariable.label": "Source Variable",
          "General.emptyPayload.label": "Allow empty payload",
          "General.headerAction": "Headers",
          "General.headerAction.Use Generated Header": "Use Generated Header",
          "General.headerAction.Merge to Generated Header": "Merge to Generated Header",
          "General.headerAction.Replace Generated Header": "Replace Generated Header",
          "General.sourceHeaders.label": "Specify Header",
          "General.targetVariable.label": "Destination Variable Prefix",
          "JWS.signPayload.label": "Sign payload",
          "JWS.signatureAlgorithm": "Signature Algorithm",
          "JWS.signatureAlgorithm.warning": "Using this algorithm is not recommended",
          "JWS.signatureSourceType.label": "Sign Using",
          "JWS.signatureSourceType.0": "Secret",
          "JWS.signatureSourceType.1": "Private key",
          "JWS.signatureSourceType.3": "Private key alias (variable)",
          "JWS.signatureSourceType.2": "Key from context variable",
          "JWS.__signatureShowSecret": "Show Secret",
          "JWS.signatureSecretBase64Encoded.label": "Is base64 encoded",
          "JWS.signatureKeyType.label": "Key Type",
          "JWS.signatureKeyType.JSON Web Key": "JSON Web Key",
          "JWS.signatureKeyType.JSON Web Key Set": "JSON Web Key Set",
          "JWS.signatureJwksKeyId.label": "Key ID",
          "JWE.encryptPayload.label": "Encrypt payload",
          "JWE.keyManagement": "Key Management",
          "JWE.keyManagementAlgorithm": "Key Management Algorithm",
          "JWE.encryptionSourceType.label": "Encrypt Using",
          "JWE.encryptionSourceType.0": "Secret",
          "JWE.encryptionSourceType.2": "Key from context variable",
          "JWE.__encryptShowSecret": "Show Secret",
          "JWE.encryptionSecretBase64Encoded.label": "Is base64 encoded",
          "JWE.encryptionKeyType.label": "Key Type",
          "JWE.encryptionKeyType.Certificate": "Certificate",
          "JWE.encryptionKeyType.JSON Web Key": "JSON Web Key",
          "JWE.encryptionKeyType.JSON Web Key Set": "JSON Web Key Set",
          "JWE.encryptionKeyId.label": "Key ID",
          "JWE.contentEncryption": "Content Encryption",
          "JWE.contentEncryptionAlgorithm": "Content Encryption Algorithm"
        }
      }
    ]
  },
  {
    "configName": "EncryptPasswordAssertion",
    "displayNameFormats": [
      {
        "format": "Encrypting password '{{.password}}' to context variable '{{.targetVariable}}'",
        "condition": "hasContextVariable({{.password}})"
      },
      {
        "format": "Encrypting password to context variable '{{.targetVariable}}'",
        "condition": "not(hasContextVariable({{.password}}))"
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Encrypt Password",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/password",
            "i18n": "password",
            "options": {
              "markAsRequired": true
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/targetVariable",
            "i18n": "targetVariable",
            "options": {
              "markAsRequired": true
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/validatePassword",
            "i18n": "validatePassword"
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/EncryptPasswordAssertion",
        "locale": "en",
        "content": {
          "password.label": "Password",
          "targetVariable.label": "Target Variable",
          "validatePassword.label": "Validate password value"
        }
      }
    ]
  },
  {
    "configName": "EncryptedUsernameToken",
    "displayNameFormats": [
      {
        "format": "Require Encrypted UsernameToken Profile Credentials",
        "condition": "true"
      }
    ],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/EncryptedUsernameToken",
        "title": "Require Encrypted UsernameToken Profile Credentials",
        "properties": {
          "otherTargetMessageVariable": {
            "type": "string"
          },
          "recipientContext": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/sub-types/xmlSecurityRecipientContext"
          },
          "target": {
            "type": "string",
            "enum": [
              "REQUEST",
              "RESPONSE",
              "OTHER"
            ],
            "default": "REQUEST"
          },
          "enableEncryptionMethods": {
            "type": "boolean",
            "default": false
          },
          "xEncAlgorithmList": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "http://www.w3.org/2001/04/xmlenc#aes128-cbc",
                "http://www.w3.org/2001/04/xmlenc#aes192-cbc",
                "http://www.w3.org/2001/04/xmlenc#aes256-cbc",
                "http://www.w3.org/2001/04/xmlenc#tripledes-cbc",
                "http://www.w3.org/2009/xmlenc11#aes128-gcm",
                "http://www.w3.org/2009/xmlenc11#aes256-gcm"
              ]
            },
            "uniqueItems": true
          }
        }
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/sub-types/xmlSecurityRecipientContext",
        "properties": {
          "actor": {
            "type": "string"
          },
          "base64edX509Certificate": {
            "type": "string"
          }
        }
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/EncryptedUsernameToken/Main",
        "title": "Require Encrypted UsernameToken Profile Credentials",
        "properties": {
          "EncryptedUsernameToken": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/EncryptedUsernameToken"
          },
          ".properties": {
            "type": "object",
            "properties": {
              ".enabled": {
                "type": "boolean",
                "default": true
              },
              ".left.comment": {
                "type": "string"
              },
              ".right.comment": {
                "type": "string"
              }
            }
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Require Encrypted UsernameToken Profile Credentials",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/target",
            "i18n": "assertion.common.target",
            "options": {
              "messageTarget": true,
              "otherTargetMessageVariableLabel": "assertion.common.target.otherTargetContextVariable"
            }
          },
          {
            "type": "Group",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "Encrypted-username-token-title-group"
            },
            "elements": [
              {
                "type": "Control",
                "i18n": "enableEncryptionMethods",
                "scope": "#/properties/enableEncryptionMethods"
              },
              {
                "type": "Group",
                "options": {
                  "groupType": "wrapCustomClass",
                  "customClass": "Encrypted-username-token-group"
                },
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/xEncAlgorithmList",
                    "label": false,
                    "rule": {
                      "effect": "SHOW",
                      "condition": {
                        "scope": "#/properties/enableEncryptionMethods",
                        "schema": {
                          "const": true
                        }
                      }
                    },
                    "options": {
                      "format": "checkbox",
                      "columns": 2
                    }
                  }
                ]
              }
            ]
          },
          {
            "type": "Group",
            "label": "WS-Security Recipient",
            "options": {
              "groupType": "ShowHide"
            },
            "elements": [
              {
                "type": "Control",
                "options": {
                  "wssRecipient": true
                }
              }
            ]
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/EncryptedUsernameToken",
        "locale": "en",
        "content": {
          "enableEncryptionMethods.label": "Specify permitted encryption methods",
          "xEncAlgorithmList.http://www.w3.org/2001/04/xmlenc#aes128-cbc": "AES 128 CBC",
          "xEncAlgorithmList.http://www.w3.org/2001/04/xmlenc#aes192-cbc": "AES 192 CBC",
          "xEncAlgorithmList.http://www.w3.org/2001/04/xmlenc#aes256-cbc": "AES 256 CBC",
          "xEncAlgorithmList.http://www.w3.org/2001/04/xmlenc#tripledes-cbc": "Triple DES",
          "xEncAlgorithmList.http://www.w3.org/2009/xmlenc11#aes128-gcm": "AES 128 GCM",
          "xEncAlgorithmList.http://www.w3.org/2009/xmlenc11#aes256-gcm": "AES 256 GCM"
        }
      }
    ]
  },
  {
    "configName": "EstablishOutboundSecureConversation",
    "refVariables": [
      {
        "fieldPath": ".securityContextTokenVarName",
        "refType": "IN",
        "dataType": "other"
      },
      {
        "fieldPath": ".",
        "suffix": "outboundSC.session",
        "refType": "OUT",
        "dataType": "other"
      }
    ],
    "displayNameFormats": [
      {
        "format": "Establish Outbound Secure Conversation",
        "condition": "isNull({{.serviceUrl}})"
      },
      {
        "format": "Establish Outbound Secure Conversation to {{.serviceUrl}}",
        "condition": "or(equals({{.allowInboundMsgUsingSession}}, false), isNull({{.allowInboundMsgUsingSession}}))"
      }
    ],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/EstablishOutboundSecureConversation",
        "title": "Establish Outbound Secure Conversation",
        "properties": {
          "allowInboundMsgUsingSession": {
            "type": "boolean",
            "default": false
          },
          "clientEntropy": {
            "type": "string"
          },
          "creationTime": {
            "type": "string"
          },
          "expirationTime": {
            "type": "string"
          },
          "fullKey": {
            "type": "string"
          },
          "keySize": {
            "type": "string"
          },
          "maxLifetime": {
            "type": "number"
          },
          "otherTargetMessageVariable": {
            "type": "string"
          },
          "securityContextTokenVarName": {
            "type": "string"
          },
          "serverEntropy": {
            "type": "string"
          },
          "serviceUrl": {
            "type": "string"
          },
          "target": {
            "type": "string",
            "enum": [
              "REQUEST",
              "RESPONSE",
              "OTHER"
            ],
            "default": "REQUEST"
          },
          "timeUnit": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/sub-types/timeUnit",
            "default": "m"
          },
          "useSystemDefaultSessionDuration": {
            "type": "boolean",
            "default": true
          }
        }
      },
      {
        "type": "string",
        "$id": "https://l7tech.com/2025/json-schema/assertions/sub-types/timeUnit",
        "enum": [
          "ms",
          "s",
          "m",
          "h",
          "d"
        ],
        "i18n": "timeUnit"
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Establish Outbound Secure Conversation",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/target",
            "options": {
              "messageTarget": true,
              "otherTargetMessageVariableLabel": "assertion.common.target.otherTargetContextVariable"
            }
          },
          {
            "type": "Group",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "allow-inbound-field"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/allowInboundMsgUsingSession",
                "i18n": "allowInboundMsgUsingSession",
                "options": {
                  "format": "checkbox",
                  "helpText": "allowInboundMsgUsingSession.help-text"
                }
              }
            ]
          },
          {
            "type": "Control",
            "scope": "#/properties/serviceUrl",
            "i18n": "serviceUrl",
            "options": {
              "markAsRequired": true
            },
            "rule": {
              "effect": "HIDE",
              "condition": {
                "scope": "#/properties/allowInboundMsgUsingSession",
                "schema": {
                  "const": true
                }
              }
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/securityContextTokenVarName",
            "i18n": "securityContextTokenVarName",
            "options": {
              "markAsRequired": true
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/clientEntropy",
            "i18n": "clientEntropy"
          },
          {
            "type": "Control",
            "scope": "#/properties/serverEntropy",
            "i18n": "serverEntropy"
          },
          {
            "type": "Control",
            "scope": "#/properties/keySize",
            "i18n": "keySize"
          },
          {
            "type": "Control",
            "scope": "#/properties/fullKey",
            "i18n": "fullKey"
          },
          {
            "type": "Group",
            "i18n": "time",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "time-group-style"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/creationTime",
                "i18n": "creationTime"
              },
              {
                "type": "Control",
                "scope": "#/properties/expirationTime",
                "i18n": "expirationTime"
              }
            ]
          },
          {
            "type": "Group",
            "label": false,
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "expire-period-group-style"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/useSystemDefaultSessionDuration",
                "i18n": "useSystemDefaultSessionDuration"
              },
              {
                "type": "Group",
                "options": {
                  "groupType": "wrapCustomClass",
                  "customClass": "time-unit-group-style"
                },
                "rule": {
                  "effect": "HIDE",
                  "condition": {
                    "scope": "#/properties/useSystemDefaultSessionDuration",
                    "schema": {
                      "const": true
                    }
                  }
                },
                "elements": [
                  {
                    "type": "Label",
                    "text": "Maximum Expiry Period"
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/maxLifetime",
                    "label": false,
                    "options": {
                      "markAsRequired": true
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/timeUnit",
                    "label": false
                  }
                ]
              }
            ]
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/EstablishOutboundSecureConversation",
        "locale": "en",
        "content": {
          "serviceUrl.label": "Service URL",
          "securityContextTokenVarName.label": "Security Context Token (Variable Name)",
          "clientEntropy.label": "Client Entropy",
          "serverEntropy.label": "Server Entropy",
          "keySize.label": "Key Size (bits)",
          "keySize.error": "Invalid key size",
          "fullKey.label": "Shared Secret",
          "creationTime.label": "Creation Time",
          "expirationTime.label": "Expiration Time",
          "creationTime.error": "Invalid creation time",
          "expirationTime.error": "Invalid expiration time",
          "useSystemDefaultSessionDuration.label": "Use system default",
          "allowInboundMsgUsingSession.label": "This session is for use with incoming request messages",
          "allowInboundMsgUsingSession.help-text": "Check if this session will be used with inbound request messages. This will allow the STS to impersonate the session user, so only check this checkbox if it is necessary to do so and the target STS is trusted.",
          "expirePeriod.error": "Time should not greater than 1 day",
          "time": "Session Lifetime",
          "timeUnit.ms": "milliseconds",
          "timeUnit.s": "seconds",
          "timeUnit.m": "minutes",
          "timeUnit.h": "hours",
          "timeUnit.d": "days"
        }
      }
    ]
  },
  {
    "configName": "EvaluateJsonPathExpressionV2",
    "displayNameFormats": [
      {
        "format": "Evaluate JSON Path Expression V2 - {{.expression}}",
        "condition": "not(isNull({{.expression}}))"
      }
    ],
    "refVariables": [
      {
        "fieldPath": ".variablePrefix",
        "refType": "OUT",
        "dataType": "other",
        "prefixed": true
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".found",
        "refType": "OUT",
        "dataType": "boolean"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".count",
        "refType": "OUT",
        "dataType": "int"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".result",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".results",
        "refType": "OUT",
        "dataType": "string",
        "multivalued": true
      }
    ],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/EvaluateJsonPathExpressionV2",
        "title": "Evaluate JSON Path Expression V2",
        "properties": {
          "evaluator": {
            "type": "string",
            "enum": [
              "SystemDefault",
              "JsonPath",
              "JsonPathWithCompression"
            ],
            "default": "SystemDefault"
          },
          "expression": {
            "type": "string"
          },
          "otherTargetMessageVariable": {
            "type": "string"
          },
          "target": {
            "type": "string",
            "default": "REQUEST",
            "enum": [
              "REQUEST",
              "RESPONSE",
              "OTHER"
            ]
          },
          "variablePrefix": {
            "type": "string"
          },
          "__testInput": {
            "type": "string"
          },
          "__test": {
            "type": "string"
          },
          "__testOutput": {
            "type": "string"
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Evaluate JSON Path Expression V2",
        "elements": [
          {
            "type": "Control",
            "i18n": "evaluator",
            "scope": "#/properties/evaluator"
          },
          {
            "type": "Control",
            "scope": "#/properties/expression",
            "i18n": "expression",
            "options": {
              "markAsRequired": true
            }
          },
          {
            "type": "Group",
            "label": "Source and Destination",
            "isExpanded": true,
            "options": {
              "groupType": "Accordion"
            },
            "elements": [
              {
                "type": "Group",
                "i18n": "source",
                "options": {
                  "groupType": "wrapCustomClass",
                  "customClass": "source-group-style"
                },
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/target",
                    "options": {
                      "messageTarget": true
                    }
                  }
                ]
              },
              {
                "type": "Group",
                "i18n": "destination",
                "options": {
                  "groupType": "wrapCustomClass",
                  "customClass": "source-group-style"
                },
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/variablePrefix",
                    "i18n": "source.variablePrefix",
                    "options": {
                      "markAsRequired": true,
                      "contextVariable": true,
                      "variableType": "output",
                      "allowedDataTypes": []
                    }
                  }
                ]
              }
            ]
          },
          {
            "type": "Group",
            "label": "Test",
            "options": {
              "groupType": "Accordion"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/__testInput",
                "i18n": "test_input",
                "options": {
                  "multiline": true,
                  "rows": 5,
                  "markAsRequired": true
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/__test",
                "i18n": "test_button",
                "options": {
                  "controlType": "Button",
                  "variant": "outlined"
                },
                "rule": {
                  "effect": "DISABLE",
                  "condition": {
                    "scope": "#/properties/__testInput",
                    "schema": {
                      "maxLength": 0
                    }
                  }
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/__testOutput",
                "i18n": "output",
                "enabled": false,
                "options": {
                  "readonly": true,
                  "multiline": true,
                  "rows": 5,
                  "markAsRequired": true
                }
              }
            ]
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/EvaluateJsonPathExpressionV2",
        "locale": "en",
        "content": {
          "evaluator.label": "Evaluator",
          "evaluator.SystemDefault": "SystemDefault",
          "evaluator.JsonPath": "JsonPath",
          "evaluator.JsonPathWithCompression": "JsonPathWithCompression",
          "expression.label": "Expression",
          "source_and_destination": "Source and Destination",
          "source.target.label": "Target Message",
          "source.Other.label": "Message Variable",
          "source.source.variablePrefix.label": "Variable Prefix",
          "test": "Test",
          "test_input.label": "Test Input",
          "output.label": "Test Output",
          "test_button": "Test",
          "source": "Source",
          "destination": "Destination",
          "source.target.REQUEST": "Request",
          "source.target.RESPONSE": "Response",
          "source.target.OTHER": "Other"
        }
      }
    ]
  },
  {
    "configName": "ExecuteRoutingStrategy",
    "displayNameFormats": [
      {
        "format": "Execute Routing Strategy as {{.strategy#variable#expression}}",
        "condition": "true"
      }
    ],
    "refVariables": [
      {
        "fieldPath": ".strategy",
        "refType": "IN",
        "dataType": "other",
        "decorationFlags": 1
      },
      {
        "fieldPath": ".route",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".feedback",
        "refType": "OUT",
        "dataType": "other",
        "multivalued": true
      },
      {
        "fieldPath": ".feedback",
        "suffix": ".current.route",
        "refType": "OUT",
        "dataType": "other"
      }
    ],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/ExecuteRoutingStrategy",
        "title": "Execute Routing Strategy",
        "properties": {
          "feedback": {
            "type": "string"
          },
          "route": {
            "type": "string"
          },
          "strategy": {
            "type": "string"
          }
        }
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/ExecuteRoutingStrategy/Main",
        "title": "Execute Routing Strategy",
        "properties": {
          "ExecuteRoutingStrategy": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/ExecuteRoutingStrategy"
          },
          ".properties": {
            "type": "object",
            "properties": {
              ".enabled": {
                "type": "boolean",
                "default": true
              },
              ".left.comment": {
                "type": "string"
              },
              ".right.comment": {
                "type": "string"
              }
            }
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Execute Routing Strategy",
        "elements": [
          {
            "type": "Control",
            "i18n": "strategy",
            "scope": "#/properties/strategy",
            "options": {
              "markAsRequired": true,
              "contextVariable": true,
              "variableType": "input",
              "allowedDataTypes": []
            }
          },
          {
            "type": "Control",
            "i18n": "route",
            "scope": "#/properties/route",
            "options": {
              "markAsRequired": true,
              "contextVariable": true,
              "variableType": "output",
              "allowedDataTypes": []
            }
          },
          {
            "type": "Control",
            "i18n": "feedback",
            "scope": "#/properties/feedback",
            "options": {
              "markAsRequired": true,
              "contextVariable": true,
              "variableType": "output",
              "allowedDataTypes": []
            }
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/ExecuteRoutingStrategy",
        "locale": "en",
        "content": {
          "feedback.label": "Feedback List",
          "strategy.label": "Strategy",
          "route.label": "Route"
        }
      }
    ]
  },
  {
    "configName": "ExportVariables",
    "refVariables": [
      {
        "fieldPath": ".exportedVars[*]",
        "refType": "IN",
        "dataType": "other"
      },
      {
        "fieldPath": ".exportedVars[*]",
        "prefix": "request.shared.",
        "refType": "OUT",
        "dataType": "other"
      }
    ],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/ExportVariables",
        "title": "Export Variables from Fragment",
        "properties": {
          "exportedVars": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/ExportVariables/Main",
        "title": "Export Variables from Fragment",
        "properties": {
          "ExportVariables": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/ExportVariables"
          },
          ".properties": {
            "type": "object",
            "properties": {
              ".enabled": {
                "type": "boolean",
                "default": true
              },
              ".left.comment": {
                "type": "string"
              },
              ".right.comment": {
                "type": "string"
              }
            }
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Export Variables from Fragment",
        "elements": [
          {
            "type": "Control",
            "i18n": "variables",
            "scope": "#/properties/exportedVars",
            "options": {
              "multiSelect": true,
              "placeholder": "Select Variables"
            }
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/ExportVariables",
        "locale": "en",
        "content": {
          "variables.label": "Variables"
        }
      }
    ]
  },
  {
    "configName": "False",
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Stop Processing"
      }
    ]
  },
  {
    "configName": "FaultLevel",
    "displayNameFormats": [
      {
        "format": "Customize SOAP Fault Response as Full Detail",
        "condition": "equals({{.levelInfo.level}}, 4)"
      },
      {
        "format": "Customize SOAP Fault Response as Drop Connection",
        "condition": "equals({{.levelInfo.level}}, 0)"
      },
      {
        "format": "Customize SOAP Fault Response as Medium Detail",
        "condition": "equals({{.levelInfo.level}}, 3)"
      },
      {
        "format": "Customize SOAP Fault Response as Generic SOAP Fault",
        "condition": "equals({{.levelInfo.level}}, 2)"
      },
      {
        "format": "Customize SOAP Fault Response as Template Fault",
        "condition": "equals({{.levelInfo.level}}, 1)"
      },
      {
        "format": "Customize SOAP Fault Response",
        "condition": "true"
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Customize SOAP Fault Response",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/levelInfo/properties/level",
            "i18n": "level",
            "options": {
              "format": "radio",
              "direction": "column",
              "useRowLayout": false,
              "defaultOptions": [
                {
                  "value": "0",
                  "label": "level.0",
                  "tooltipText": "level.dropConnection.tooltipText"
                },
                {
                  "value": "2",
                  "label": "level.2",
                  "tooltipText": "level.SOAPFault.tooltipText"
                },
                {
                  "value": "3",
                  "label": "level.3",
                  "tooltipText": "level.MediumDetail.tooltipText"
                },
                {
                  "value": "4",
                  "label": "level.4",
                  "tooltipText": "level.FullDetail.tooltipText"
                },
                {
                  "value": "1",
                  "label": "level.1",
                  "tooltipText": "level.templateFault.tooltipText"
                }
              ]
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/levelInfo/properties/faultTemplate",
            "i18n": "faultTemplate",
            "options": {
              "multiline": true,
              "rows": 15,
              "markAsRequired": true
            },
            "rule": {
              "effect": "ENABLE",
              "condition": {
                "scope": "#/properties/levelInfo/properties/level",
                "schema": {
                  "enum": [
                    1
                  ]
                }
              }
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/levelInfo/properties/includePolicyDownloadURL",
            "i18n": "includePolicyDownloadURL",
            "options": {
              "format": "checkbox"
            },
            "rule": {
              "effect": "SHOW",
              "condition": {
                "scope": "#/properties/levelInfo/properties/level",
                "schema": {
                  "enum": [
                    1,
                    2,
                    3,
                    4
                  ]
                }
              }
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/levelInfo/properties/signSoapFault",
            "i18n": "signSoapFault",
            "options": {
              "format": "checkbox"
            },
            "rule": {
              "effect": "SHOW",
              "condition": {
                "scope": "#/properties/levelInfo/properties/level",
                "schema": {
                  "enum": [
                    1,
                    2,
                    3,
                    4
                  ]
                }
              }
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/levelInfo/properties/alwaysReturnSoapFault",
            "i18n": "alwaysReturnSoapFault",
            "options": {
              "format": "checkbox"
            },
            "rule": {
              "effect": "SHOW",
              "condition": {
                "scope": "#/properties/levelInfo/properties/level",
                "schema": {
                  "enum": [
                    1,
                    2,
                    3,
                    4
                  ]
                }
              }
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/levelInfo/properties/useClientFault",
            "i18n": "useClientFault",
            "options": {
              "format": "checkbox"
            },
            "rule": {
              "effect": "SHOW",
              "condition": {
                "scope": "#/properties/levelInfo/properties/level",
                "schema": {
                  "enum": [
                    2,
                    3,
                    4
                  ]
                }
              }
            }
          },
          {
            "type": "Group",
            "label": "Private Key",
            "options": {
              "groupType": "ShowHide"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/__privateKey",
                "options": {
                  "privateKey": true,
                  "keyTypeOptions": [
                    "DEFAULT_KEY",
                    "CUSTOM_PRIVATE_KEY"
                  ]
                },
                "rule": {
                  "effect": "SHOW",
                  "condition": {
                    "scope": "#/properties/levelInfo/properties/signSoapFault",
                    "schema": {
                      "const": true
                    }
                  }
                }
              }
            ]
          }
        ]
      }
    ],
    "configSchemaPatches": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/FaultLevel",
        "patches": [
          {
            "op": "replace",
            "path": "/properties/levelInfo/properties/level",
            "value": {
              "type": "integer",
              "enum": [
                0,
                1,
                2,
                3,
                4
              ],
              "default": 2
            }
          },
          {
            "op": "replace",
            "path": "/properties/__privateKey",
            "value": {
              "type": "string"
            }
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/FaultLevel",
        "locale": "en",
        "content": {
          "common.error.required.field": "This is a required field12",
          "level.label": "SOAP Fault Level",
          "level.0": "Drop connection",
          "level.2": "Generic SOAP fault",
          "level.3": "Medium detail",
          "level.4": "Full detail",
          "level.1": "Template fault",
          "level.dropConnection.tooltipText": "In the case of a policy violation, the Gateway will drop the connection with the requestor without returning anything.",
          "level.SOAPFault.tooltipText": "In the case of a policy violation, the Gateway will return a generic SOAP fault without the details of the reason for the policy violation. A sample of such a SOAP fault is displayed below:",
          "level.MediumDetail.tooltipText": "In the case of a policy violation, the Gateway will return a SOAP fault which contains information regarding the reasons for the policy violation. A sample of such a SOAP fault is displayed below:",
          "level.FullDetail.tooltipText": "In the case of a policy violation, the Gateway will return a SOAP fault which contains a full trace for each assertion evaluation in the policy whether the assertion was a success or failure. A sample of such a SOAP fault is displayed below:",
          "level.templateFault.tooltipText": "In the case of a policy violation, the Gateway will return a SOAP fault based on a template provided by you. You can use context variables as part of the template. You must edit the template below:",
          "faultTemplate.label": "SOAP Fault",
          "includePolicyDownloadURL.label": "Include the policy download URL along with the SOAP fault in an HTTP header",
          "signSoapFault.label": "Sign SOAP fault",
          "alwaysReturnSoapFault.label": "Use SOAP fault for all errors",
          "useClientFault.label": "Use client fault code for all errors",
          "soapBodyTemplate.error": "The template does not appear to contain a SOAP Body element.",
          "soapfaultTemplate.error": "The template does not appear to contain a SOAP Fault.",
          "faultTemplate.error": "The template does not appear to contain well formed XML."
        }
      }
    ]
  },
  {
    "configName": "ForEachLoop",
    "refVariables": [
      {
        "fieldPath": ".loopVariableName",
        "refType": "IN",
        "dataType": "string"
      },
      {
        "fieldPath": ".variablePrefix",
        "refType": "OUT",
        "dataType": "string"
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Run Assertions for Each Item",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/loopVariableName",
            "i18n": "loopVariableName",
            "options": {
              "markAsRequired": true,
              "contextVariable": true,
              "variableType": "input",
              "allowedDataTypes": []
            }
          },
          {
            "type": "Group",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "variable-prefix-group"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/variablePrefix",
                "i18n": "variablePrefix",
                "options": {
                  "markAsRequired": true,
                  "contextVariable": true,
                  "variableType": "output",
                  "allowedDataTypes": []
                }
              }
            ]
          },
          {
            "type": "Control",
            "scope": "#/properties/__limitIteration",
            "i18n": "__limitIteration",
            "options": {
              "markAsRequired": true
            }
          },
          {
            "type": "Group",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "for-each-loop-group"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/iterationLimit",
                "label": false,
                "i18n": "iterationLimit",
                "options": {
                  "markAsRequired": true
                }
              }
            ],
            "rule": {
              "effect": "SHOW",
              "condition": {
                "scope": "#/properties/__limitIteration",
                "schema": {
                  "const": true
                }
              }
            }
          }
        ]
      }
    ],
    "configSchemaPatches": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/ForEachLoop",
        "patches": [
          {
            "op": "add",
            "path": "/properties/__limitIteration",
            "value": {
              "type": "boolean"
            }
          },
          {
            "op": "remove",
            "path": "/properties/iterationLimit/default"
          }
        ]
      }
    ],
    "configDataPatches": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/ForEachLoop#AfterEdit",
        "patches": [
          {
            "op": "test",
            "path": "/__limitIteration",
            "value": false
          },
          {
            "op": "remove",
            "path": "/iterationLimit"
          }
        ]
      },
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/ForEachLoop#AfterEdit",
        "patches": [
          {
            "op": "remove",
            "path": "/__limitIteration"
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/ForEachLoop",
        "locale": "en",
        "content": {
          "__limitIteration.label": "Limit maximum iterations",
          "loopVariableName.label": "Name of Existing Multivalued Variable",
          "variablePrefix.label": "Variable Prefix",
          "iterationLimit.error": "Value of limit maximum iterations exceed limit of 9999999"
        }
      }
    ]
  },
  {
    "configName": "FtpCredential",
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Require FTP Credentials"
      }
    ]
  },
  {
    "configName": "FtpRoutingAssertion",
    "displayNameFormats": [
      {
        "format": "Route via FTP Server {{.hostName}}",
        "condition": "and(equals({{.security}}, ftp), not(isNull({{.hostName}}))"
      },
      {
        "format": "Route via FTPS Server {{.hostName}}",
        "condition": "and(not(equals({{.security}}, ftp)), not(isNull({{.hostName}}))"
      }
    ],
    "refVariables": [
      {
        "fieldPath": ".ftpCommandVariable",
        "refType": "IN",
        "dataType": "other"
      },
      {
        "fieldPath": ".responseTarget",
        "refType": "OUT",
        "dataType": "messageTarget",
        "prefixed": true
      },
      {
        "fieldPath": ".responseTarget",
        "suffix": ".ftp.replycode",
        "refType": "OUT",
        "dataType": "string",
        "settable": true
      },
      {
        "fieldPath": ".responseTarget",
        "suffix": ".ftp.replytext",
        "refType": "OUT",
        "dataType": "string",
        "settable": true
      }
    ],
    "refEntities": [
      {
        "fieldPath": ".passwordGoid",
        "refType": "GOID",
        "entityType": "Secret"
      },
      {
        "fieldPath": ".clientCertKeystoreId",
        "refType": "GOID",
        "entityType": "Key"
      },
      {
        "fieldPath": ".clientCertKeyAlias",
        "refType": "NAME",
        "entityType": "Key"
      }
    ],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/FtpRoutingAssertion",
        "title": "Route via FTP(S)",
        "properties": {
          "arguments": {
            "type": "string"
          },
          "clientCertKeyAlias": {
            "type": "string"
          },
          "clientCertKeystoreId": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/sub-types/goid"
          },
          "commandFromVariable": {
            "type": "boolean",
            "default": false
          },
          "credentialsSource": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/FtpRoutingAssertion:credentialsSource",
            "enum": [
              "passThru",
              "specified"
            ],
            "default": "passThru"
          },
          "currentSecurityHeaderHandling": {
            "type": "integer",
            "default": 1
          },
          "directory": {
            "type": "string"
          },
          "failureMode": {
            "type": "string",
            "enum": [
              "0",
              "1",
              "2"
            ],
            "default": "0"
          },
          "ftpCommand": {
            "type": "string"
          },
          "ftpCommandVariable": {
            "type": "string"
          },
          "hostName": {
            "type": "string"
          },
          "__passwordOption": {
            "type": "string",
            "enum": [
              "storedPassword",
              "passwordExp"
            ],
            "default": "storedPassword"
          },
          "password": {
            "type": "string"
          },
          "passwordGoid": {
            "type": "string"
          },
          "passwordUsesContextVariables": {
            "type": "boolean",
            "default": false
          },
          "port": {
            "type": "string"
          },
          "recipientContext": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/sub-types/xmlSecurityRecipientContext"
          },
          "requestTarget": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/sub-types/messageTargetableSupport"
          },
          "__requestTarget": {
            "type": "string",
            "enum": [
              "REQUEST",
              "RESPONSE"
            ],
            "default": "REQUEST"
          },
          "__maximumMessageSize": {
            "type": "boolean"
          },
          "__maximumMessageSizeOption": {
            "type": "string",
            "enum": [
              "restrict",
              "unlimited"
            ],
            "default": "restrict"
          },
          "responseByteLimit": {
            "type": "string"
          },
          "responseTarget": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/sub-types/messageTargetableSupport"
          },
          "__responseTarget": {
            "type": "string",
            "enum": [
              "RESPONSE",
              "OTHER"
            ],
            "default": "RESPONSE"
          },
          "security": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/FtpRoutingAssertion:security"
          },
          "timeout": {
            "type": "integer"
          },
          "useClientCert": {
            "type": "boolean",
            "default": false
          },
          "userName": {
            "type": "string"
          },
          "verifyServerCert": {
            "type": "boolean",
            "default": false
          },
          "xmlSecurityActorToPromote": {
            "type": "string"
          },
          "__testConnection": {
            "type": "string"
          },
          "__manageStoredPasswords": {
            "type": "string"
          }
        }
      },
      {
        "type": "string",
        "$id": "https://l7tech.com/2025/json-schema/assertions/FtpRoutingAssertion:credentialsSource"
      },
      {
        "type": "string",
        "$id": "https://l7tech.com/2025/json-schema/assertions/FtpRoutingAssertion:security"
      },
      {
        "type": "string",
        "$id": "https://l7tech.com/2025/json-schema/assertions/sub-types/goid"
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/sub-types/xmlSecurityRecipientContext",
        "properties": {
          "actor": {
            "type": "string"
          },
          "base64edX509Certificate": {
            "type": "string"
          }
        }
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/sub-types/messageTargetableSupport",
        "properties": {
          "otherTargetMessageVariable": {
            "type": "string"
          },
          "sourceUsedByGateway": {
            "type": "boolean",
            "default": true
          },
          "target": {
            "type": "string",
            "enum": [
              "REQUEST",
              "RESPONSE",
              "OTHER"
            ],
            "default": "REQUEST"
          },
          "targetModifiedByGateway": {
            "type": "boolean",
            "default": false
          }
        }
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/FtpRoutingAssertion/Main",
        "title": "Route via FTP(S)",
        "properties": {
          "FtpRoutingAssertion": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/FtpRoutingAssertion"
          },
          ".properties": {
            "type": "object",
            "properties": {
              ".enabled": {
                "type": "boolean",
                "default": true
              },
              ".left.comment": {
                "type": "string"
              },
              ".right.comment": {
                "type": "string"
              }
            }
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Route via FTP(S)",
        "elements": [
          {
            "type": "Group",
            "label": "Connection",
            "isExpanded": true,
            "options": {
              "groupType": "Accordion"
            },
            "elements": [
              {
                "type": "Group",
                "i18n": "connectionSetting",
                "options": {
                  "groupType": "wrapCustomClass",
                  "customClass": "connectionSetting-wrapper",
                  "labelColor": "bodyText"
                },
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/security",
                    "i18n": "security",
                    "options": {
                      "markAsRequired": true
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/hostName",
                    "options": {
                      "markAsRequired": true
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/port",
                    "i18n": "port",
                    "options": {
                      "markAsRequired": true
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/timeout",
                    "i18n": "timeout",
                    "options": {
                      "markAsRequired": true,
                      "maxLength": 6,
                      "minVal": 0
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/verifyServerCert",
                    "i18n": "verifyServerCert",
                    "rule": {
                      "effect": "SHOW",
                      "condition": {
                        "scope": "#/properties/security",
                        "schema": {
                          "enum": [
                            "ftpsExplicit",
                            "ftpsImplicit"
                          ]
                        }
                      }
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/__testConnection",
                    "i18n": "testConnection.label",
                    "options": {
                      "controlType": "Button",
                      "variant": "outlined"
                    }
                  }
                ]
              },
              {
                "type": "Group",
                "i18n": "commandSetting.label",
                "options": {
                  "groupType": "wrapCustomClass",
                  "customClass": "commandSetting-wrapper",
                  "labelColor": "bodyText"
                },
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/ftpCommand",
                    "i18n": "ftpCommand",
                    "options": {
                      "markAsRequired": true
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/ftpCommandVariable",
                    "i18n": "ftpCommandVariable",
                    "options": {
                      "markAsRequired": true,
                      "contextVariable": true,
                      "variableType": "input",
                      "allowedDataTypes": []
                    },
                    "rule": {
                      "effect": "SHOW",
                      "condition": {
                        "scope": "#/properties/ftpCommand",
                        "schema": {
                          "const": "FROMVAR"
                        }
                      }
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/__requestTarget",
                    "i18n": "requestTarget",
                    "options": {
                      "markAsRequired": true
                    },
                    "rule": {
                      "effect": "SHOW",
                      "condition": {
                        "scope": "#/properties/ftpCommand",
                        "schema": {
                          "enum": [
                            "STOR",
                            "APPE",
                            "FROMVAR"
                          ]
                        }
                      }
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/__responseTarget",
                    "i18n": "responseTarget",
                    "options": {
                      "markAsRequired": true
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/responseTarget/properties/otherTargetMessageVariable",
                    "i18n": "otherTargetMessageVariable",
                    "options": {
                      "markAsRequired": true,
                      "contextVariable": true,
                      "variableType": "output",
                      "allowedDataTypes": []
                    },
                    "rule": {
                      "effect": "SHOW",
                      "condition": {
                        "scope": "#/properties/__responseTarget",
                        "schema": {
                          "const": "OTHER"
                        }
                      }
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/directory"
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/arguments",
                    "options": {
                      "markAsRequired": true
                    }
                  }
                ]
              },
              {
                "type": "Group",
                "options": {
                  "groupType": "wrapCustomClass",
                  "customClass": "failureMode-wrapper"
                },
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/failureMode",
                    "i18n": "failureMode",
                    "options": {
                      "markAsRequired": true,
                      "format": "radio",
                      "useRowLayout": false
                    }
                  }
                ]
              }
            ]
          },
          {
            "type": "Group",
            "label": "Authentication",
            "options": {
              "groupType": "Accordion"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/credentialsSource",
                "label": false,
                "options": {
                  "markAsRequired": true,
                  "format": "radio",
                  "useRowLayout": false,
                  "uiSchemasMap": {
                    "specified": {
                      "type": "Group",
                      "options": {
                        "groupType": "wrapCustomClass"
                      },
                      "elements": [
                        {
                          "type": "Control",
                          "scope": "#/properties/userName",
                          "i18n": "userName",
                          "options": {
                            "markAsRequired": true
                          }
                        },
                        {
                          "type": "Control",
                          "scope": "#/properties/__passwordOption",
                          "i18n": "passwordOption",
                          "label": false,
                          "options": {
                            "markAsRequired": true,
                            "format": "radio",
                            "useRowLayout": false,
                            "uiSchemasMap": {
                              "storedPassword": {
                                "type": "Group",
                                "options": {
                                  "groupType": "wrapCustomClass"
                                },
                                "elements": [
                                  {
                                    "type": "Control",
                                    "scope": "#/properties/passwordGoid",
                                    "label": false,
                                    "options": {
                                      "markAsRequired": true,
                                      "manageStoredPassword": true,
                                      "manageStoredPasswordButtonLabel": "manageStoredPasswordButtonLabel"
                                    }
                                  }
                                ]
                              },
                              "passwordExp": {
                                "type": "Group",
                                "options": {
                                  "groupType": "wrapCustomClass"
                                },
                                "elements": [
                                  {
                                    "type": "Control",
                                    "scope": "#/properties/password",
                                    "label": false,
                                    "options": {
                                      "markAsRequired": true
                                    }
                                  },
                                  {
                                    "type": "Control",
                                    "scope": "#/properties/passwordUsesContextVariables",
                                    "i18n": "passwordUsesContextVariables"
                                  }
                                ]
                              }
                            }
                          }
                        }
                      ]
                    }
                  }
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/useClientCert",
                "i18n": "useClientCert",
                "rule": {
                  "effect": "SHOW",
                  "condition": {
                    "scope": "#/properties/security",
                    "schema": {
                      "enum": [
                        "ftpsExplicit",
                        "ftpsImplicit"
                      ]
                    }
                  }
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/clientCertKeyAlias",
                "label": false,
                "options": {
                  "markAsRequired": true
                },
                "rule": {
                  "effect": "SHOW",
                  "condition": {
                    "schema": {
                      "allOf": [
                        {
                          "properties": {
                            "useClientCert": {
                              "const": true
                            }
                          },
                          "required": [
                            "useClientCert"
                          ]
                        },
                        {
                          "properties": {
                            "security": {
                              "enum": [
                                "ftpsExplicit",
                                "ftpsImplicit"
                              ]
                            }
                          },
                          "required": [
                            "security"
                          ]
                        }
                      ]
                    }
                  }
                }
              }
            ]
          },
          {
            "type": "Group",
            "label": "Advanced",
            "options": {
              "groupType": "Accordion"
            },
            "elements": [
              {
                "type": "Group",
                "i18n": "responseHd",
                "options": {
                  "groupType": "wrapCustomClass"
                },
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/__maximumMessageSize",
                    "i18n": "maximumMessageSize",
                    "options": {
                      "subUiSchema": {
                        "type": "Control",
                        "scope": "#/properties/__maximumMessageSizeOption",
                        "i18n": "maximumMessageSizeOption",
                        "label": false,
                        "options": {
                          "markAsRequired": true,
                          "format": "radio",
                          "useRowLayout": false,
                          "uiSchemasMap": {
                            "restrict": {
                              "type": "Control",
                              "scope": "#/properties/responseByteLimit",
                              "i18n": "responseByteLimit",
                              "options": {
                                "markAsRequired": true
                              }
                            }
                          }
                        }
                      }
                    }
                  },
                  {
                    "type": "Group",
                    "options": {
                      "groupType": "wrapCustomClass",
                      "customClass": "wss-security-spacing"
                    },
                    "elements": [
                      {
                        "type": "Control",
                        "scope": "#/properties/currentSecurityHeaderHandling",
                        "i18n": "currentSecurityHeaderHandling",
                        "options": {
                          "wssSecurityHeaderHandling": true
                        }
                      }
                    ]
                  }
                ]
              }
            ]
          },
          {
            "type": "Group",
            "label": "WS-Security Recipient",
            "options": {
              "groupType": "ShowHide"
            },
            "elements": [
              {
                "type": "Control",
                "options": {
                  "wssRecipient": true
                }
              }
            ]
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/FtpRoutingAssertion",
        "locale": "en",
        "content": {
          "common.error.required.field": "This is a required field",
          "common.error.invalid_variable.field": "Must start with a letter or underscore, and contains optional letters, digits, underscores, dashes, or periods.",
          "common.error.invalid_target_variable.field": "Must be a valid context variable",
          "connectionSetting": "Connection Settings",
          "testConnection.label": "Test Connection",
          "responseHd": "Message Response Settings",
          "assertionOutcome.label": "Assertion Outcome",
          "commandSetting.label": "Command Settings",
          "security.label": "Protocol",
          "port.label": "Port Number",
          "port.error": "The port number must be a number between 1 and 65535, or a context variable. Default port is 21.",
          "port.sslerror": "The port number must be a number between 1 and 65535, or a context variable. Default port is 990.",
          "timeout.label": "Connection Timeout (seconds)",
          "verifyServerCert.label": "Verify server certificate (using trusted certificate store)",
          "ftpCommand.label": "Command",
          "ftpCommandVariable.label": "Command Variable",
          "requestTarget.label": "Message Source",
          "requestTarget.REQUEST": "Request",
          "requestTarget.RESPONSE": "Response",
          "requestTarget.OTHER": "Other",
          "responseTarget.label": "Message Target",
          "responseTarget.RESPONSE": "Response",
          "responseTarget.OTHER": "Message Variable",
          "useClientCert.label": "Supply digital certificate for client authentication",
          "otherTargetMessageVariable.label": "Target Message Variable",
          "failureMode.label": "Assertion Outcome",
          "credentialsSource": "Authentication",
          "credentialsSource.passThru": "Pass through credentials in request",
          "credentialsSource.specified": "Specify user credentials",
          "userName.label": "User name",
          "passwordOption": "Password",
          "passwordOption.storedPassword": "Stored password",
          "manageStoredPasswordButtonLabel": "Add Stored password",
          "passwordOption.passwordExp": "Password expression",
          "manageStoredPasswords.label": "Manage Stored Passwords",
          "maximumMessageSize.label": "Override maximum message size",
          "maximumMessageSizeOption": "maximumMessageSizeOption",
          "responseByteLimit.label": "Maximum Message Size (bytes)",
          "maximumMessageSizeOption.restrict": "Restrict message size",
          "maximumMessageSizeOption.unlimited": "Allow unlimited message size (not recommended)",
          "responseByteLimit.error": "The restrict messages to field must contain a context variable and/or an integer.",
          "passwordUsesContextVariables.label": "Context variable in password",
          "ftp-connection-passed": "The Gateway has verified the connection to this FTP(s) server",
          "ftp-connection-failed": "The Gateway was unable to connect to this server",
          "arguments.error": "The selected command does not accept arguments."
        }
      }
    ]
  },
  {
    "configName": "GatewayGraphQL",
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/GatewayGraphQL",
        "title": "GraphQL Manage Gateway",
        "properties": {
          "authzOption": {
            "type": "string",
            "enum": [
              "ADMINISTRATORS",
              "ALL_USERS"
            ],
            "default": "ADMINISTRATORS"
          },
          "encPass": {
            "type": "string"
          },
          "otherTargetMessageVariable": {
            "type": "string"
          },
          "query": {
            "type": "string"
          },
          "queryOptions": {
            "type": "string"
          },
          "target": {
            "type": "string",
            "enum": [
              "REQUEST",
              "RESPONSE",
              "OTHER"
            ],
            "default": "REQUEST"
          },
          "variables": {
            "type": "string"
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "GraphQL Manage Gateway",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/target",
            "options": {
              "messageTarget": true,
              "otherTargetMessageVariableLabel": "assertion.common.target.otherTargetContextVariable"
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/query",
            "i18n": "query"
          },
          {
            "type": "Control",
            "scope": "#/properties/variables",
            "i18n": "variables"
          },
          {
            "type": "Control",
            "scope": "#/properties/encPass",
            "i18n": "encryption_passphrase"
          },
          {
            "type": "Control",
            "scope": "#/properties/queryOptions",
            "i18n": "query_options"
          },
          {
            "type": "Control",
            "scope": "#/properties/authzOption",
            "i18n": "check_admin",
            "options": {
              "format": "radio",
              "useRowLayout": true
            }
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/GatewayGraphQL",
        "locale": "en",
        "content": {
          "query.label": "Query",
          "variables.label": "Variables",
          "encryption_passphrase.label": "Encryption Passphrase",
          "check_admin.label": "Authorization",
          "check_admin.ADMINISTRATORS": "Administrators",
          "check_admin.ALL_USERS": "All Users",
          "check_admin.NONE": "None",
          "query_options.label": "Query Options"
        }
      }
    ]
  },
  {
    "configName": "GatewayManagement",
    "refVariables": [
      {
        "fieldPath": ".variablePrefix",
        "refType": "OUT",
        "dataType": "other",
        "prefixed": true
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".action",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".entityType",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".entityId",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".message",
        "refType": "OUT",
        "dataType": "string"
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Manage Gateway",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/variablePrefix",
            "i18n": "variablePrefix",
            "options": {
              "contextVariable": true,
              "variableType": "output",
              "allowedDataTypes": []
            }
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/GatewayManagement",
        "locale": "en",
        "content": {
          "variablePrefix.label": "Variable Prefix"
        }
      }
    ]
  },
  {
    "configName": "GenerateOAuthSignatureBaseString",
    "displayNameFormats": [
      {
        "format": "Client Generate OAuth Signature Base String",
        "condition": "equals({{.usageMode}}, CLIENT)"
      },
      {
        "format": "Server Generate OAuth Signature Base String",
        "condition": "equals({{.usageMode}}, SERVER)"
      }
    ],
    "refVariables": [
      {
        "fieldPath": ".variablePrefix",
        "refType": "OUT",
        "dataType": "other",
        "prefixed": true
      },
      {
        "fieldPath": ".variablePrefix",
        "refType": "OUT",
        "dataType": "string",
        "suffix": ".sigBaseString"
      },
      {
        "fieldPath": ".variablePrefix",
        "refType": "OUT",
        "dataType": "string",
        "suffix": ".requestType"
      },
      {
        "fieldPath": ".variablePrefix",
        "refType": "OUT",
        "dataType": "string",
        "suffix": ".authHeader"
      },
      {
        "fieldPath": ".variablePrefix",
        "refType": "OUT",
        "dataType": "string",
        "suffix": ".error"
      },
      {
        "fieldPath": ".variablePrefix",
        "refType": "OUT",
        "dataType": "string",
        "suffix": ".oauth_consumer_key"
      },
      {
        "fieldPath": ".variablePrefix",
        "refType": "OUT",
        "dataType": "string",
        "suffix": ".oauth_signature_method"
      },
      {
        "fieldPath": ".variablePrefix",
        "refType": "OUT",
        "dataType": "string",
        "suffix": ".oauth_timestamp"
      },
      {
        "fieldPath": ".variablePrefix",
        "refType": "OUT",
        "dataType": "string",
        "suffix": ".oauth_nonce"
      },
      {
        "fieldPath": ".variablePrefix",
        "refType": "OUT",
        "dataType": "string",
        "suffix": ".oauth_version"
      },
      {
        "fieldPath": ".variablePrefix",
        "refType": "OUT",
        "dataType": "string",
        "suffix": ".oauth_token"
      },
      {
        "fieldPath": ".variablePrefix",
        "refType": "OUT",
        "dataType": "string",
        "suffix": ".oauth_callback"
      },
      {
        "fieldPath": ".variablePrefix",
        "refType": "OUT",
        "dataType": "string",
        "suffix": ".oauth_verifier"
      }
    ],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/GenerateOAuthSignatureBaseString",
        "title": "Generate OAuth Signature Base String",
        "properties": {
          "allowCustomOAuthQueryParams": {
            "type": "boolean",
            "default": false
          },
          "allowEmptyCallback": {
            "type": "boolean",
            "default": false
          },
          "authorizationHeader": {
            "type": "string"
          },
          "httpMethod": {
            "type": "string"
          },
          "oauthCallback": {
            "type": "string"
          },
          "oauthConsumerKey": {
            "type": "string"
          },
          "oauthSignatureMethod": {
            "type": "string",
            "enum": [
              "HMAC-SHA1",
              "RSA-SHA1",
              "RSA-SHA256",
              "RSA-SHA512",
              "PLAINTEXT"
            ],
            "default": "HMAC-SHA1"
          },
          "oauthToken": {
            "type": "string"
          },
          "oauthVerifier": {
            "type": "string"
          },
          "queryString": {
            "type": "string"
          },
          "requestUrl": {
            "type": "string"
          },
          "usageMode": {
            "type": "string",
            "enum": [
              "CLIENT",
              "SERVER"
            ],
            "default": "CLIENT"
          },
          "useAuthorizationHeader": {
            "type": "boolean",
            "default": true
          },
          "useMessageTarget": {
            "type": "boolean",
            "default": true
          },
          "useOAuthVersion": {
            "type": "boolean",
            "default": true
          },
          "variablePrefix": {
            "type": "string"
          },
          "__oauthTimestamp": {
            "type": "string",
            "readOnly": true,
            "default": "<auto>"
          },
          "__oauthNonce": {
            "type": "string",
            "readOnly": true,
            "default": "<auto>"
          }
        }
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/GenerateOAuthSignatureBaseString/Main",
        "title": "Generate OAuth Signature Base String",
        "properties": {
          "GenerateOAuthSignatureBaseString": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/GenerateOAuthSignatureBaseString"
          },
          ".properties": {
            "type": "object",
            "properties": {
              ".enabled": {
                "type": "boolean",
                "default": true
              },
              ".left.comment": {
                "type": "string"
              },
              ".right.comment": {
                "type": "string"
              }
            }
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Generate OAuth Signature Base String",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/usageMode",
            "i18n": "usageMode"
          },
          {
            "type": "Group",
            "i18n": "endpoint",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "section-header-group-style"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/requestUrl",
                "i18n": "requestUrl",
                "options": {
                  "markAsRequired": true
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/httpMethod",
                "i18n": "httpMethod",
                "options": {
                  "markAsRequired": true,
                  "autocomplete": true,
                  "allowUserProvidedInput": true,
                  "defaultOptions": [
                    {
                      "label": "${request.http.method}",
                      "value": "${request.http.method}"
                    },
                    {
                      "label": "GET",
                      "value": "GET"
                    },
                    {
                      "label": "POST",
                      "value": "POST"
                    },
                    {
                      "label": "PUT",
                      "value": "PUT"
                    },
                    {
                      "label": "PATCH",
                      "value": "PATCH"
                    },
                    {
                      "label": "DELETE",
                      "value": "DELETE"
                    },
                    {
                      "label": "HEAD",
                      "value": "HEAD"
                    },
                    {
                      "label": "OPTIONS",
                      "value": "OPTIONS"
                    }
                  ]
                }
              }
            ]
          },
          {
            "type": "Group",
            "i18n": "parameterSources",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "section-header-group-style"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/queryString",
                "i18n": "queryString",
                "options": {
                  "markAsRequired": true
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/allowCustomOAuthQueryParams",
                "i18n": "allowCustomOAuthQueryParams"
              },
              {
                "type": "Control",
                "scope": "#/properties/useMessageTarget",
                "i18n": "useMessageTarget",
                "rule": {
                  "effect": "SHOW",
                  "condition": {
                    "scope": "#/properties/usageMode",
                    "schema": {
                      "const": "SERVER"
                    }
                  }
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/oauthConsumerKey",
                "i18n": "oauthConsumerKey",
                "rule": {
                  "effect": "SHOW",
                  "condition": {
                    "scope": "#/properties/usageMode",
                    "schema": {
                      "const": "CLIENT"
                    }
                  }
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/oauthSignatureMethod",
                "i18n": "oauthSignatureMethod",
                "rule": {
                  "effect": "SHOW",
                  "condition": {
                    "scope": "#/properties/usageMode",
                    "schema": {
                      "const": "CLIENT"
                    }
                  }
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/__oauthTimestamp",
                "i18n": "__oauthTimestamp",
                "rule": {
                  "effect": "SHOW",
                  "condition": {
                    "scope": "#/properties/usageMode",
                    "schema": {
                      "const": "CLIENT"
                    }
                  }
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/__oauthNonce",
                "i18n": "__oauthNonce",
                "rule": {
                  "effect": "SHOW",
                  "condition": {
                    "scope": "#/properties/usageMode",
                    "schema": {
                      "const": "CLIENT"
                    }
                  }
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/useOAuthVersion",
                "i18n": "useOAuthVersion",
                "rule": {
                  "effect": "SHOW",
                  "condition": {
                    "scope": "#/properties/usageMode",
                    "schema": {
                      "const": "CLIENT"
                    }
                  }
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/oauthToken",
                "i18n": "oauthToken",
                "rule": {
                  "effect": "SHOW",
                  "condition": {
                    "scope": "#/properties/usageMode",
                    "schema": {
                      "const": "CLIENT"
                    }
                  }
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/oauthCallback",
                "i18n": "oauthCallback",
                "rule": {
                  "effect": "SHOW",
                  "condition": {
                    "scope": "#/properties/usageMode",
                    "schema": {
                      "const": "CLIENT"
                    }
                  }
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/useAuthorizationHeader",
                "i18n": "useAuthorizationHeader",
                "options": {
                  "subUiSchema": {
                    "type": "VerticalLayout",
                    "elements": [
                      {
                        "type": "Control",
                        "i18n": "authorizationHeader",
                        "scope": "#/properties/authorizationHeader",
                        "options": {
                          "markAsRequired": true,
                          "customClass": "authorizationHeader-field"
                        }
                      }
                    ]
                  }
                },
                "rule": {
                  "effect": "SHOW",
                  "condition": {
                    "scope": "#/properties/usageMode",
                    "schema": {
                      "const": "SERVER"
                    }
                  }
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/allowEmptyCallback",
                "i18n": "allowEmptyCallback"
              },
              {
                "type": "Control",
                "scope": "#/properties/oauthVerifier",
                "i18n": "oauthVerifier",
                "rule": {
                  "effect": "SHOW",
                  "condition": {
                    "scope": "#/properties/usageMode",
                    "schema": {
                      "const": "CLIENT"
                    }
                  }
                }
              }
            ]
          },
          {
            "type": "Control",
            "scope": "#/properties/variablePrefix",
            "i18n": "variablePrefix",
            "options": {
              "markAsRequired": true,
              "contextVariable": true,
              "variableType": "output",
              "allowedDataTypes": []
            }
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/GenerateOAuthSignatureBaseString",
        "locale": "en",
        "content": {
          "usageMode.label": "Usage",
          "usageMode.SERVER": "Server",
          "usageMode.CLIENT": "Client",
          "endpoint": "Endpoint",
          "requestUrl.label": "Request URL",
          "httpMethod.label": "HTTP Method",
          "parameterSources": "Parameter Sources",
          "queryString.label": "Query String",
          "allowCustomOAuthQueryParams.label": "Allow non-protocol query parameters with oauth_prefix",
          "oauthConsumerKey.label": "oauth_consumer_key",
          "oauthSignatureMethod.label": "oauth_signature_method",
          "__oauthTimestamp.label": "oauth_timestamp",
          "__oauthNonce.label": "oauth_nonce",
          "useOAuthVersion.label": "Include oauth_version (1.0) in generated base string",
          "oauthToken.label": "oauth_token",
          "oauthCallback.label": "oauth_callback",
          "allowEmptyCallback.label": "Allow empty oauth_callback",
          "oauthVerifier.label": "oauth_verifier",
          "useAuthorizationHeader.label": "Authorization header",
          "useMessageTarget.label": "Use message target as parameter source",
          "variablePrefix.label": "Variable Prefix",
          "authorizationHeader.label": "Header"
        }
      }
    ]
  },
  {
    "configName": "GenerateSecurityHash",
    "refVariables": [
      {
        "fieldPath": ".targetOutputVariable",
        "refType": "OUT",
        "dataType": "string",
        "settable": true
      }
    ],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/GenerateSecurityHash",
        "title": "Generate Security Hash",
        "properties": {
          "algorithm": {
            "type": "string",
            "default": "HMAC-SHA1",
            "enum": [
              "HMAC-SHA1",
              "HMAC-SHA256",
              "HMAC-SHA384",
              "HMAC-SHA512",
              "HMAC-MD5",
              "MD5",
              "SHA-1",
              "SHA-256",
              "SHA-384",
              "SHA-512"
            ]
          },
          "base64Data": {
            "type": "string"
          },
          "keyText": {
            "type": "string"
          },
          "lineBreak": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/sub-types/lineBreak"
          },
          "targetOutputVariable": {
            "type": "string"
          },
          "__inlineAlerts": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      {
        "type": "string",
        "$id": "https://l7tech.com/2025/json-schema/assertions/sub-types/lineBreak",
        "enum": [
          "CR-LF",
          "LF",
          "CR"
        ]
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Generate Security Hash",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/base64Data",
            "i18n": "base64Data",
            "options": {
              "multiline": true,
              "rows": 5,
              "markAsRequired": true
            }
          },
          {
            "type": "Group",
            "scope": "#/properties/lineBreak",
            "options": {
              "format": "radio"
            },
            "i18n": "lineBreak"
          },
          {
            "type": "Control",
            "scope": "#/properties/algorithm",
            "i18n": "algorithm",
            "options": {
              "markAsRequired": true
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/keyText",
            "i18n": "keyText",
            "options": {
              "markAsRequired": true
            },
            "rule": {
              "effect": "SHOW",
              "condition": {
                "scope": "#/properties/algorithm",
                "schema": {
                  "enum": [
                    "HMAC-SHA1",
                    "HMAC-SHA256",
                    "HMAC-SHA384",
                    "HMAC-SHA512",
                    "HMAC-MD5"
                  ]
                }
              }
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/__inlineAlerts",
            "options": {
              "inlineAlerts": "warning"
            },
            "rule": {
              "effect": "SHOW",
              "condition": {
                "scope": "#/properties/algorithm",
                "schema": {
                  "enum": [
                    "MD5",
                    "SHA-1",
                    "SHA-256",
                    "SHA-384",
                    "SHA-512"
                  ]
                }
              }
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/targetOutputVariable",
            "i18n": "targetOutputVariable",
            "options": {
              "markAsRequired": true,
              "contextVariable": true,
              "variableType": "output",
              "allowedDataTypes": []
            }
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/GenerateSecurityHash",
        "locale": "en",
        "content": {
          "base64Data.label": "Source Data",
          "lineBreak.label": "Save line breaks as",
          "lineBreak.CR-LF": "CR LF",
          "lineBreak.LF": "LF",
          "lineBreak.CR": "CR",
          "algorithm.label": "Signature Algorithm",
          "keyText.label": "Key",
          "targetOutputVariable.label": "Output Variable",
          "targetOutputVariable.status.error": "This is a required field",
          "modal.title": "Warning",
          "modal.warning": "The selected algorithm is non-HMAC and is not recommended as it is weak algorithm and is exploiteable.",
          "modal.cannot-undone": "Do you wish to continue?",
          "modal.checkbox-label": "To enable [Ok], select the checkbox",
          "modal.cancel-button": "Cancel",
          "modal.ok-button": "Ok"
        }
      }
    ]
  },
  {
    "configName": "GraphQLExtractValue",
    "displayNameFormats": [
      {
        "format": "Extract GraphQL Argument - {{.expression}}",
        "condition": "not(isNull({{.expression}}))"
      },
      {
        "format": "Extract GraphQL Argument",
        "condition": "true"
      }
    ],
    "refVariables": [
      {
        "fieldPath": ".",
        "suffix": "graphql.extractValueErrors",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".variable",
        "prefix": "graphql.",
        "refType": "OUT",
        "dataType": "string"
      }
    ],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/GraphQLExtractValue",
        "title": "Extract GraphQL Argument",
        "properties": {
          "argumentPattern": {
            "type": "string"
          },
          "expression": {
            "type": "string"
          },
          "otherTargetMessageVariable": {
            "type": "string"
          },
          "target": {
            "type": "string",
            "enum": [
              "REQUEST",
              "RESPONSE",
              "OTHER"
            ],
            "default": "REQUEST"
          },
          "variable": {
            "type": "string"
          },
          "__testInput": {
            "type": "string"
          },
          "__testOutput": {
            "type": "string",
            "readOnly": true
          },
          "__testButton": {
            "type": "string"
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Extract GraphQL Argument",
        "elements": [
          {
            "type": "Control",
            "i18n": "argumentPattern",
            "scope": "#/properties/argumentPattern",
            "options": {
              "markAsRequired": true
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/expression"
          },
          {
            "type": "Group",
            "label": "Source and Destination",
            "isExpanded": true,
            "options": {
              "groupType": "Accordion"
            },
            "elements": [
              {
                "type": "Group",
                "i18n": "source",
                "options": {
                  "groupType": "wrapCustomClass",
                  "customClass": "source-group"
                },
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/target",
                    "options": {
                      "messageTarget": true
                    }
                  }
                ]
              },
              {
                "type": "Group",
                "i18n": "destination",
                "options": {
                  "groupType": "wrapCustomClass",
                  "customClass": "destination-group"
                },
                "elements": [
                  {
                    "type": "Control",
                    "i18n": "targetVariable",
                    "scope": "#/properties/variable",
                    "options": {
                      "markAsRequired": true,
                      "contextVariable": true,
                      "variableType": "output",
                      "allowedDataTypes": []
                    }
                  }
                ]
              }
            ]
          },
          {
            "type": "Group",
            "label": "Test",
            "options": {
              "groupType": "Accordion"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/__testInput",
                "options": {
                  "multiline": true,
                  "rows": 3
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/__testOutput",
                "options": {
                  "multiline": true,
                  "rows": 3
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/__testButton",
                "i18n": "assertion.testButton.text",
                "options": {
                  "controlType": "Button",
                  "variant": "outlined"
                },
                "rule": {
                  "effect": "DISABLE",
                  "condition": {
                    "scope": "#/properties/__testInput",
                    "schema": {
                      "maxLength": 0
                    }
                  }
                }
              }
            ]
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/GraphQLExtractValue",
        "locale": "en",
        "content": {
          "argumentPattern.label": "Argument",
          "source": "Source",
          "destination": "Destination",
          "targetVariable.label": "Target Variable",
          "test.label": "Test"
        }
      }
    ]
  },
  {
    "configName": "GraphQLSchemaValidation",
    "displayNameFormats": [
      {
        "format": "Validate GraphQL Schema",
        "condition": "true"
      }
    ],
    "refVariables": [
      {
        "fieldPath": ".",
        "suffix": "graphql.schemaValidationErrors",
        "refType": "OUT",
        "dataType": "string",
        "multivalued": true
      }
    ],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/GraphQLSchemaValidation",
        "title": "Validate GraphQL Schema",
        "properties": {
          "allowMutationsEnabled": {
            "type": "boolean",
            "default": true
          },
          "maxNestingDepth": {
            "type": "string"
          },
          "maxNestingDepthEnabled": {
            "type": "boolean"
          },
          "otherTargetMessageVariable": {
            "type": "string"
          },
          "resourceInfo": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/sub-types/assertionResourceInfo"
          },
          "target": {
            "type": "string",
            "enum": [
              "REQUEST",
              "RESPONSE",
              "OTHER"
            ],
            "default": "REQUEST"
          },
          "__schemaLocation": {
            "type": "string",
            "enum": [
              "staticResourceInfo",
              "singleUrlResourceInfo"
            ],
            "default": "staticResourceInfo"
          },
          "__validationSchema": {
            "type": "string"
          },
          "__schemaApiError": {
            "type": "string"
          },
          "__uploadFile": {
            "type": "string"
          },
          "__readURL": {
            "type": "string"
          },
          "__schemaURL": {
            "type": "string"
          },
          "__urlToMonitor": {
            "type": "string"
          },
          "__httpOptions": {
            "type": "string"
          }
        }
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/sub-types/assertionResourceInfo"
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Validate GraphQL Schema",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/target",
            "i18n": "assertion.common.target",
            "options": {
              "messageTarget": true
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/allowMutationsEnabled",
            "i18n": "allowMutationsEnabled"
          },
          {
            "type": "Control",
            "scope": "#/properties/maxNestingDepthEnabled",
            "i18n": "maxNestingDepthEnabled",
            "options": {
              "subUiSchema": {
                "type": "Control",
                "scope": "#/properties/maxNestingDepth",
                "i18n": "maxNestingDepth",
                "options": {
                  "markAsRequired": true,
                  "customClass": "max-nesting-depth"
                }
              }
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/__schemaLocation",
            "i18n": "__schemaLocation"
          },
          {
            "type": "Control",
            "options": {
              "controlType": "Divider"
            }
          },
          {
            "type": "VerticalLayout",
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/__validationSchema",
                "i18n": "__validationSchema",
                "options": {
                  "validateSchema": true,
                  "schemaType": "graphql",
                  "allowAutocomplete": true
                }
              }
            ],
            "rule": {
              "effect": "SHOW",
              "condition": {
                "scope": "#/properties/__schemaLocation",
                "schema": {
                  "const": "staticResourceInfo"
                }
              }
            }
          },
          {
            "type": "VerticalLayout",
            "elements": [
              {
                "type": "Group",
                "i18n": "__monitorURLLabel.label",
                "options": {
                  "groupType": "wrapCustomClass",
                  "themeColor": "bodyText",
                  "customClass": "location-options"
                },
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/__urlToMonitor",
                    "i18n": "__urlToMonitor",
                    "options": {
                      "markAsRequired": true
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/__httpOptions",
                    "i18n": "__httpOptions.label",
                    "options": {
                      "controlType": "Button",
                      "variant": "outlined",
                      "readonly": true
                    }
                  }
                ]
              }
            ],
            "rule": {
              "effect": "SHOW",
              "condition": {
                "scope": "#/properties/__schemaLocation",
                "schema": {
                  "const": "singleUrlResourceInfo"
                }
              }
            }
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/GraphQLSchemaValidation",
        "locale": "en",
        "content": {
          "allowMutationsEnabled.label": "Allow mutations",
          "maxNestingDepthEnabled.label": "Set max nesting depth",
          "maxNestingDepth.label": "Max Nesting Depth",
          "__schemaLocation.label": "Schema Location",
          "__schemaLocation.staticResourceInfo": "Configured in advance",
          "__schemaLocation.singleUrlResourceInfo": "Monitor URL for latest value",
          "__validationSchema.label": "Validation Schema",
          "__uploadFile.label": "Upload File",
          "__readURL.label": "Read URL",
          "__schemaURL.label": "Schema URL",
          "__monitorURLLabel.label": "The Gateway will periodically check this URL and download the latest schema",
          "__urlToMonitor.label": "URL to Monitor",
          "__httpOptions.label": "HTTP Options",
          "__urlToMonitor.error": "This is not a well formed HTTP(S) URL",
          "__schemaURL.error": "This should be a valid URL",
          "maxNestingDepth.error": "Max Nesting Depth value should be valid integer or context variable expression"
        }
      }
    ]
  },
  {
    "configName": "HandleErrors",
    "displayNameFormats": [
      {
        "format": "Handle Errors",
        "condition": "true"
      }
    ],
    "refVariables": [
      {
        "fieldPath": ".variablePrefix",
        "refType": "OUT",
        "dataType": "other",
        "prefixed": true
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".message",
        "refType": "OUT",
        "dataType": "string"
      }
    ],
    "configSchemas": [
      {
        "$id": "https://l7tech.com/2025/json-schema/assertions/HandleErrors",
        "title": "Handle Errors",
        "type": "object",
        "properties": {
          "includeIOException": {
            "type": "boolean",
            "default": false
          },
          "variablePrefix": {
            "type": "string"
          },
          ".enabled": {
            "type": "boolean",
            "default": true
          },
          ".left.comment": {
            "type": "string"
          },
          ".right.comment": {
            "type": "string"
          },
          ".children": {
            "type": "array",
            "items": {
              "type": "object"
            }
          }
        }
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/HandleErrors/Main",
        "title": "Handle Errors",
        "properties": {
          "HandleErrors": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/HandleErrors"
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Handle Errors",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/variablePrefix",
            "i18n": "variablePrefix",
            "options": {
              "markAsRequired": true,
              "contextVariable": true,
              "variableType": "output",
              "allowedDataTypes": []
            }
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/HandleErrors",
        "locale": "en",
        "content": {
          "variablePrefix.label": "Variable Prefix"
        }
      }
    ]
  },
  {
    "configName": "HardcodedResponse",
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/HardcodedResponse",
        "title": "Return Template Response to Requestor",
        "properties": {
          "body": {
            "type": "string"
          },
          "contentType": {
            "type": "string"
          },
          "currentSecurityHeaderHandling": {
            "type": "integer",
            "default": 0
          },
          "earlyResponse": {
            "type": "boolean",
            "default": false
          },
          "recipientContext": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/sub-types/xmlSecurityRecipientContext"
          },
          "status": {
            "type": "string"
          },
          "xmlSecurityActorToPromote": {
            "type": "string"
          }
        }
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/sub-types/xmlSecurityRecipientContext",
        "properties": {
          "actor": {
            "type": "string"
          },
          "base64edX509Certificate": {
            "type": "string"
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Return Template Response to Requestor",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/status",
            "options": {
              "markAsRequired": true
            },
            "i18n": "status"
          },
          {
            "type": "Control",
            "scope": "#/properties/earlyResponse",
            "i18n": "earlyResponse"
          },
          {
            "type": "Control",
            "scope": "#/properties/contentType",
            "i18n": "contentType"
          },
          {
            "type": "Control",
            "label": "Response Body:",
            "scope": "#/properties/body",
            "options": {
              "multiline": true,
              "rows": 3,
              "resizable": true
            },
            "i18n": "body"
          },
          {
            "type": "Group",
            "label": "WS-Security Recipient",
            "options": {
              "groupType": "ShowHide"
            },
            "elements": [
              {
                "type": "Control",
                "options": {
                  "wssRecipient": true
                }
              }
            ]
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/HardcodedResponse",
        "locale": "en",
        "content": {
          "status.label": "Response HTTP Status",
          "earlyResponse.label": "Send Response Immediately",
          "contentType.label": "Response Content Type",
          "body.label": "Response Body",
          "status.error": "The Response HTTP Status field must be an integer between 1 and 2147483647",
          "content_type.error_text": "Content type is invalid"
        }
      }
    ]
  },
  {
    "configName": "HtmlFormData",
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/HtmlFormData",
        "title": "Validate HTML Form Data",
        "properties": {
          "allowGet": {
            "type": "boolean",
            "default": false
          },
          "allowPost": {
            "type": "boolean",
            "default": false
          },
          "disallowOtherFields": {
            "type": "boolean",
            "default": false
          },
          "fieldSpecs": {
            "type": "array",
            "items": {
              "$ref": "https://l7tech.com/2025/json-schema/assertions/sub-types/htmlFormDataAssertion$FieldSpec"
            }
          }
        }
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/sub-types/htmlFormDataAssertion$FieldSpec",
        "properties": {
          "allowEmpty": {
            "type": "boolean"
          },
          "allowedLocation": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/sub-types/htmlFormDataLocation",
            "default": "anywhere"
          },
          "dataType": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/sub-types/htmlFormDataType"
          },
          "maxOccurs": {
            "type": "integer",
            "default": 1
          },
          "minOccurs": {
            "type": "integer",
            "default": 1
          },
          "name": {
            "type": "string"
          }
        }
      },
      {
        "type": "string",
        "$id": "https://l7tech.com/2025/json-schema/assertions/sub-types/htmlFormDataLocation",
        "enum": [
          "anywhere",
          "requestUrl",
          "requestBody"
        ]
      },
      {
        "type": "string",
        "$id": "https://l7tech.com/2025/json-schema/assertions/sub-types/htmlFormDataType",
        "enum": [
          "any",
          "number",
          "file",
          "string"
        ],
        "default": "any"
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/HtmlFormData/Main",
        "title": "Validate HTML Form Data",
        "properties": {
          "HtmlFormData": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/HtmlFormData"
          },
          ".properties": {
            "type": "object",
            "properties": {
              ".enabled": {
                "type": "boolean",
                "default": true
              },
              ".left.comment": {
                "type": "string"
              },
              ".right.comment": {
                "type": "string"
              }
            }
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Validate HTML Form Data",
        "elements": [
          {
            "type": "Group",
            "i18n": "settings.label",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "label-heading-style"
            },
            "elements": [
              {
                "type": "HorizontalLayout",
                "label": "false",
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/allowGet",
                    "i18n": "allowGet",
                    "options": {
                      "markAsRequired": true
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/allowPost",
                    "i18n": "allowPost",
                    "options": {
                      "markAsRequired": true
                    }
                  }
                ]
              },
              {
                "type": "Group",
                "i18n": "containFieldHeader.label",
                "options": {
                  "groupType": "wrapCustomClass",
                  "customClass": "label-heading-style"
                },
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/disallowOtherFields",
                    "i18n": "disallowOtherFields",
                    "options": {
                      "markAsRequired": true
                    }
                  }
                ]
              }
            ]
          },
          {
            "type": "Group",
            "i18n": "fieldSpecs.label",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "label-heading-style"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/fieldSpecs",
                "i18n": "fieldSpecs",
                "options": {
                  "fieldGroup": true,
                  "buttonLabel": "fieldSpecs.btn",
                  "detail": {
                    "type": "VerticalLayout",
                    "elements": [
                      {
                        "type": "Group",
                        "label": "false",
                        "options": {
                          "groupType": "wrapCustomClass",
                          "customClass": "field-flex-style"
                        },
                        "elements": [
                          {
                            "type": "Control",
                            "scope": "#/properties/name",
                            "i18n": "fieldSpecs.name",
                            "options": {
                              "markAsRequired": true
                            }
                          }
                        ]
                      },
                      {
                        "type": "HorizontalLayout",
                        "elements": [
                          {
                            "type": "Control",
                            "scope": "#/properties/dataType",
                            "i18n": "fieldSpecs.dataType",
                            "options": {
                              "markAsRequired": true
                            }
                          },
                          {
                            "type": "Control",
                            "scope": "#/properties/minOccurs",
                            "i18n": "fieldSpecs.minOccurs",
                            "options": {
                              "markAsRequired": true
                            }
                          },
                          {
                            "type": "Control",
                            "scope": "#/properties/maxOccurs",
                            "i18n": "fieldSpecs.maxOccurs",
                            "options": {
                              "markAsRequired": true
                            }
                          }
                        ]
                      },
                      {
                        "type": "HorizontalLayout",
                        "elements": [
                          {
                            "type": "Control",
                            "scope": "#/properties/allowedLocation",
                            "i18n": "fieldSpecs.allowedLocation",
                            "options": {
                              "markAsRequired": true
                            }
                          },
                          {
                            "type": "Control",
                            "scope": "#/properties/allowEmpty",
                            "i18n": "fieldSpecs.allowEmpty",
                            "options": {
                              "markAsRequired": true
                            }
                          }
                        ]
                      }
                    ]
                  }
                }
              }
            ]
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/HtmlFormData",
        "locale": "en",
        "content": {
          "settings.label": "Submission Methods Allowed",
          "allowGet.label": "GET",
          "allowPost.label": "POST",
          "containFieldHeader.label": "Request must contain the following fields",
          "disallowOtherFields.label": "Disallow other fields",
          "fieldSpecs.label": "Fields",
          "fieldSpecs.name.label": "Name",
          "fieldSpecs.dataType.label": "Data Type",
          "fieldSpecs.dataType.any": "Any",
          "fieldSpecs.dataType.number": "Number",
          "fieldSpecs.dataType.file": "File",
          "fieldSpecs.dataType.string": "String",
          "fieldSpecs.allowedLocation.label": "Location",
          "fieldSpecs.allowedLocation.anywhere": "Anywhere",
          "fieldSpecs.allowedLocation.requestUrl": "Request URL",
          "fieldSpecs.allowedLocation.requestBody": "Request Body",
          "fieldSpecs.allowEmpty.label": "Allow empty",
          "fieldSpecs.minOccurs.label": "Min Occurs",
          "fieldSpecs.maxOccurs.label": "Max Occurs",
          "error.maxGreaterThanMin": "Max Occurs should greater than Min Occurs",
          "error.requestBodyRequiresPost": "Location 'request body' requires the POST submission method",
          "error.fileRequiresPost": "Data Type 'file' requires the POST submission method",
          "error.duplicateNameNotAllowed": "Duplicate field name not allowed",
          "error.required.field": "This is a required field",
          "error.invalid_value_number.field": "Value should be a valid number",
          "fieldSpecs.btn": "Add Field"
        }
      }
    ]
  },
  {
    "configName": "Http2Routing",
    "displayNameFormats": [
      {
        "format": "Route via HTTP/2 to {{.protectedServiceUrl}}",
        "condition": "true"
      }
    ],
    "refVariables": [
      {
        "fieldPath": ".requestMsgSrc",
        "refType": "IN",
        "dataType": "message"
      },
      {
        "fieldPath": ".responseMsgDest",
        "refType": "OUT",
        "dataType": "message"
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Route via HTTP/2",
        "elements": [
          {
            "type": "Control",
            "i18n": "protectedServiceUrl",
            "scope": "#/properties/protectedServiceUrl",
            "options": {
              "markAsRequired": true
            }
          },
          {
            "type": "Control",
            "i18n": "httpMethod",
            "scope": "#/properties/httpMethod",
            "options": {
              "autocomplete": true,
              "markAsRequired": true,
              "defaultOptions": [
                ""
              ],
              "allowUserProvidedInput": true
            }
          },
          {
            "type": "Control",
            "i18n": "http2ClientConfigGoid",
            "scope": "#/properties/http2ClientConfigGoid",
            "options": {
              "markAsRequired": true
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/requestMsgSrc",
            "options": {
              "markAsRequired": true,
              "contextVariable": true,
              "variableType": "input",
              "allowedDataTypes": []
            },
            "i18n": "requestMsgSrc"
          },
          {
            "type": "Control",
            "scope": "#/properties/responseMsgDest",
            "options": {
              "contextVariable": true,
              "variableType": "output",
              "allowedDataTypes": []
            },
            "i18n": "responseMsgDest"
          },
          {
            "type": "Group",
            "label": "Authentication",
            "isExpanded": true,
            "options": {
              "groupType": "Accordion"
            },
            "elements": [
              {
                "type": "Group",
                "options": {
                  "groupType": "wrapCustomClass",
                  "customClass": "hide-radio-label"
                },
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/authenticationType",
                    "options": {
                      "format": "radio",
                      "useRowLayout": false,
                      "uiSchemasMap": {
                        "Digest": {
                          "type": "Group",
                          "options": {
                            "groupType": "wrapCustomClass",
                            "customClass": "user-login-field"
                          },
                          "elements": [
                            {
                              "type": "Control",
                              "i18n": "login",
                              "scope": "#/properties/login",
                              "options": {
                                "markAsRequired": true
                              }
                            },
                            {
                              "type": "Control",
                              "i18n": "password",
                              "scope": "#/properties/password",
                              "options": {
                                "format": "password",
                                "markAsRequired": true
                              }
                            }
                          ]
                        },
                        "Basic": {
                          "type": "Group",
                          "options": {
                            "groupType": "wrapCustomClass",
                            "customClass": "user-login-field"
                          },
                          "elements": [
                            {
                              "type": "Control",
                              "i18n": "login",
                              "scope": "#/properties/login",
                              "options": {
                                "markAsRequired": true
                              }
                            },
                            {
                              "type": "Control",
                              "i18n": "password",
                              "scope": "#/properties/password",
                              "options": {
                                "format": "password",
                                "markAsRequired": true
                              }
                            }
                          ]
                        }
                      }
                    }
                  }
                ]
              }
            ]
          },
          {
            "type": "Group",
            "label": "HTTP",
            "isExpanded": true,
            "options": {
              "groupType": "Accordion"
            },
            "elements": [
              {
                "type": "Control",
                "i18n": "gzipEncodeDownstream",
                "scope": "#/properties/gzipEncodeDownstream"
              },
              {
                "type": "Control",
                "i18n": "forceIncludeRequestBody",
                "scope": "#/properties/forceIncludeRequestBody"
              },
              {
                "type": "Control",
                "i18n": "overrideContentType",
                "scope": "#/properties/overrideContentType"
              }
            ]
          },
          {
            "type": "Group",
            "label": "Other",
            "isExpanded": true,
            "options": {
              "groupType": "Accordion"
            },
            "elements": [
              {
                "type": "Group",
                "i18n": "currentSecurityHeaderHandlingGroup",
                "options": {
                  "groupType": "wrapCustomClass",
                  "customClass": "security-header-field"
                },
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/currentSecurityHeaderHandling",
                    "options": {
                      "wssSecurityHeaderHandling": true,
                      "wsSecurityOptions": [
                        3,
                        0,
                        1,
                        2
                      ],
                      "requireWssSecurityHeading": false
                    }
                  }
                ]
              },
              {
                "type": "Group",
                "i18n": "wssSecurity",
                "options": {
                  "groupType": "wrapCustomClass",
                  "customClass": "security-header-field"
                },
                "elements": [
                  {
                    "type": "Control",
                    "options": {
                      "wssRecipient": true
                    }
                  }
                ]
              },
              {
                "type": "Group",
                "i18n": "responseLimit",
                "options": {
                  "groupType": "wrapCustomClass",
                  "customClass": "security-header-field"
                },
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/__overrideMaxSize",
                    "i18n": "__overrideMaxSize",
                    "options": {
                      "subUiSchema": {
                        "type": "Group",
                        "options": {
                          "groupType": "wrapCustomClass",
                          "customClass": "override-maximum-field"
                        },
                        "elements": [
                          {
                            "type": "Group",
                            "options": {
                              "groupType": "wrapCustomClass",
                              "customClass": "hide-radio-label"
                            },
                            "elements": [
                              {
                                "type": "Control",
                                "scope": "#/properties/__responseSize",
                                "options": {
                                  "format": "radio",
                                  "useRowLayout": false,
                                  "uiSchemasMap": {
                                    "restrict": {
                                      "type": "Group",
                                      "options": {
                                        "groupType": "wrapCustomClass",
                                        "customClass": "override-maximum-field"
                                      },
                                      "elements": [
                                        {
                                          "type": "Control",
                                          "scope": "#/properties/responseSize",
                                          "i18n": "responseSize",
                                          "options": {
                                            "customClass": "hide-label",
                                            "markAsRequired": true
                                          }
                                        }
                                      ]
                                    }
                                  }
                                }
                              }
                            ]
                          }
                        ]
                      }
                    }
                  }
                ]
              },
              {
                "type": "Group",
                "i18n": "assertionOutcome",
                "options": {
                  "groupType": "wrapCustomClass",
                  "customClass": "security-header-field"
                },
                "elements": [
                  {
                    "type": "Control",
                    "i18n": "failOnErrorStatus",
                    "scope": "#/properties/failOnErrorStatus"
                  }
                ]
              }
            ]
          },
          {
            "type": "Group",
            "label": "Private Key",
            "options": {
              "groupType": "ShowHide"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/__privateKey",
                "options": {
                  "privateKey": true,
                  "keyTypeOptions": [
                    "NO_KEY",
                    "DEFAULT_KEY",
                    "CUSTOM_PRIVATE_KEY"
                  ]
                }
              }
            ]
          }
        ]
      }
    ],
    "configSchemaPatches": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/Http2Routing",
        "patches": [
          {
            "op": "remove",
            "path": "/properties/httpMethod/enum"
          },
          {
            "op": "replace",
            "path": "/properties/http2ClientConfigGoid",
            "value": {
              "type": "string",
              "default": "0000000000000000ffffffffffffffff"
            }
          },
          {
            "op": "replace",
            "path": "/properties/authenticationType",
            "value": {
              "type": "string",
              "enum": [
                "None",
                "Basic",
                "Digest",
                "Passthrough"
              ],
              "default": "Passthrough",
              "i18n": "authenticationTypeField"
            }
          },
          {
            "op": "add",
            "path": "/properties/__overrideMaxSize",
            "value": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "op": "add",
            "path": "/properties/__responseSize",
            "value": {
              "type": "string",
              "i18n": "__responseSize",
              "enum": [
                "restrict",
                "allow"
              ]
            }
          },
          {
            "op": "add",
            "path": "/properties/__privateKey",
            "value": {
              "type": "string"
            }
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/Http2Routing",
        "locale": "en",
        "content": {
          "protectedServiceUrl.label": "URL",
          "test_button": "Reset URL",
          "httpMethod.label": "HTTP Method",
          "httpMethod.invalidValueError": "No such variable",
          "http2ClientConfigGoid.label": "HTTP Client Configuration",
          "gzipEncodeDownstream.label": "Compress (GZIP)",
          "forceIncludeRequestBody.label": "Always include request body",
          "overrideContentType.label": "Do not automatically include Content-type header",
          "authenticationTypeField.None": "None",
          "authenticationTypeField.Basic": "Basic",
          "authenticationTypeField.Digest": "Digest",
          "authenticationTypeField.Passthrough": "From Request",
          "authenticationTypeField.helper_text": "Remove Authorization header from request",
          "password.label": "Password",
          "login.label": "Username",
          "requestMsgSrc.label": "Request Source",
          "responseMsgDest.label": "Response Destination",
          "__overrideMaxSize.label": "Override maximum message size",
          "failOnErrorStatus.label": "Fail if target returns the error status (>=400)",
          "currentSecurityHeaderHandlingGroup": "Request WS-Security Header Handling",
          "responseLimit": "Response Size Limit",
          "__responseSize.restrict": "Restrict messages to (bytes)",
          "__responseSize.allow": "Allow unlimited message size (not recommended)",
          "assertionOutcome": "Assertion Outcome",
          "http-routing.__privateKey.DEFAULT_KEY": "Use default private key",
          "http-routing.__privateKey.NO_KEY": "Use no Private key",
          "http-routing.__privateKey.CUSTOM_PRIVATE_KEY": "Use custom private key",
          "wssSecurity": "WS-Security Recipient",
          "responseSize.invalid_response_size.field": "Response size is invalid"
        }
      }
    ]
  },
  {
    "configName": "HttpBasic",
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Require HTTP Basic Credentials"
      }
    ]
  },
  {
    "configName": "HttpFormPost",
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/HttpFormPost",
        "title": "Translate HTTP Form to MIME",
        "properties": {
          "fieldInfos": {
            "type": "array",
            "items": {
              "$ref": "https://l7tech.com/2025/json-schema/assertions/sub-types/httpFormPost$FieldInfo"
            }
          }
        }
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/sub-types/httpFormPost$FieldInfo",
        "properties": {
          "contentType": {
            "type": "string"
          },
          "fieldname": {
            "type": "string"
          },
          "displayField": {
            "type": "string",
            "title": "HTTP Form Fields"
          }
        }
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/HttpFormPost/Main",
        "title": "Translate HTTP Form to MIME",
        "properties": {
          "HttpFormPost": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/HttpFormPost"
          },
          ".properties": {
            "type": "object",
            "properties": {
              ".enabled": {
                "type": "boolean",
                "default": true
              },
              ".left.comment": {
                "type": "string"
              },
              ".right.comment": {
                "type": "string"
              }
            }
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Translate HTTP Form to MIME",
        "elements": [
          {
            "type": "Group",
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/fieldInfos",
                "i18n": "fieldInfos",
                "options": {
                  "nameValueList": true,
                  "allowReorder": true,
                  "detail": {
                    "type": "VerticalLayout",
                    "elements": [
                      {
                        "type": "Control",
                        "scope": "#/properties/fieldname",
                        "i18n": "fieldname",
                        "options": {
                          "markAsRequired": true,
                          "hideColumn": true
                        }
                      },
                      {
                        "type": "Control",
                        "scope": "#/properties/contentType",
                        "i18n": "contentType",
                        "options": {
                          "markAsRequired": true,
                          "hideColumn": true
                        }
                      }
                    ]
                  }
                }
              }
            ]
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/HttpFormPost",
        "locale": "en",
        "content": {
          "fieldInfos.label": "Field",
          "fieldname.label": "Field Name",
          "contentType.label": "MIME Content-Type",
          "contentType.ERROR": "Invalid MIME Content-Type(s)"
        }
      }
    ]
  },
  {
    "configName": "HttpNegotiate",
    "refVariables": [
      {
        "fieldPath": ".",
        "suffix": "kerberos.realm",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".",
        "suffix": "kerberos.data",
        "refType": "OUT",
        "dataType": "other"
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Require Windows Integrated Authentication Credentials"
      }
    ]
  },
  {
    "configName": "HttpRouting",
    "displayNameFormats": [
      {
        "format": "Route via HTTPS to {{.protectedServiceUrl}}",
        "condition": "startsWith({{.protectedServiceUrl}}, https://)"
      },
      {
        "format": "Route via HTTP to {{.protectedServiceUrl}}",
        "condition": "true"
      }
    ],
    "refVariables": [
      {
        "fieldPath": ".requestMsgSrc",
        "refType": "IN",
        "dataType": "message"
      },
      {
        "fieldPath": ".authOauthTokenVar",
        "refType": "IN",
        "dataType": "string"
      },
      {
        "fieldPath": ".responseMsgDest",
        "refType": "OUT",
        "dataType": "message"
      },
      {
        "fieldPath": ".",
        "suffix": "httpRouting.latency",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".",
        "suffix": "httpRouting.url",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".",
        "suffix": "kerberos.data",
        "refType": "OUT",
        "dataType": "other",
        "condition": "{{.krbUseGatewayKeytab}}"
      },
      {
        "fieldPath": ".",
        "suffix": "httpRouting.reasonCode",
        "refType": "OUT",
        "dataType": "int"
      }
    ],
    "refEntities": [
      {
        "fieldPath": ".tlsTrustedCertGoids",
        "refType": "GOID",
        "entityType": "TrustedCert"
      },
      {
        "fieldPath": ".nonDefaultKeystoreId",
        "refType": "GOID",
        "entityType": "Key"
      },
      {
        "fieldPath": ".keyAlias",
        "refType": "NAME",
        "entityType": "Key"
      }
    ],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/HttpRouting",
        "title": "Route via HTTP(S)",
        "properties": {
          "attachSamlSenderVouches": {
            "type": "boolean",
            "default": false
          },
          "authOauthTokenVar": {
            "type": "string"
          },
          "authOauthVersion": {
            "type": "string",
            "enum": [
              "1.0",
              "2.0"
            ],
            "default": "2.0"
          },
          "connectionTimeout": {
            "type": "string"
          },
          "currentSecurityHeaderHandling": {
            "type": "integer",
            "default": 0
          },
          "customIpAddresses": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string",
                  "title": "IP Address"
                }
              }
            }
          },
          "customURLs": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string",
                  "title": "URL"
                }
              }
            }
          },
          "dynamicCertificateVariable": {
            "type": "string"
          },
          "dynamicPrivateKeyVariable": {
            "type": "string"
          },
          "failOnErrorStatus": {
            "type": "boolean",
            "default": true
          },
          "__assertionOutcome": {
            "type": "string",
            "default": "FAIL",
            "enum": [
              "FAIL",
              "NEVER_FAIL"
            ],
            "i18n": "http-routing.others.assertionOutcome"
          },
          "failoverStrategyName": {
            "type": "string",
            "default": "ordered",
            "enum": [
              "ordered",
              "sticky",
              "robin"
            ],
            "i18n": "http-routing.failoverStrategyName"
          },
          "followRedirects": {
            "type": "boolean",
            "default": false
          },
          "forceIncludeRequestBody": {
            "type": "boolean",
            "default": false
          },
          "gzipEncodeDownstream": {
            "type": "boolean",
            "default": false
          },
          "httpMethod": {
            "type": "string"
          },
          "httpMethodAsString": {
            "type": "string"
          },
          "__httpMethod": {
            "type": "string",
            "default": "<Automatic>"
          },
          "httpVersion": {
            "type": "string"
          },
          "__httpVersion": {
            "type": "string",
            "enum": [
              "Default",
              "1.0",
              "1.1"
            ],
            "default": "Default"
          },
          "keyAlias": {
            "type": "string"
          },
          "krbConfiguredAccount": {
            "type": "string"
          },
          "krbConfiguredPassword": {
            "type": "string"
          },
          "krbDelegatedAuthentication": {
            "type": "boolean",
            "default": false
          },
          "krbUseGatewayKeytab": {
            "type": "boolean",
            "default": false
          },
          "login": {
            "type": "string"
          },
          "maxConnections": {
            "type": "integer",
            "default": -1
          },
          "maxDurationTimeout": {
            "type": "string"
          },
          "maxDurationEnabled": {
            "type": "boolean",
            "default": false
          },
          "bufferDisabled": {
            "type": "boolean",
            "default": false
          },
          "__responseMessageHandlingSettings": {
            "type": "string",
            "default": "BUFFER",
            "enum": [
              "BUFFER",
              "STREAM"
            ]
          },
          "maxRetries": {
            "type": "integer"
          },
          "nonDefaultKeystoreId": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/sub-types/goid"
          },
          "ntlmHost": {
            "type": "string"
          },
          "omitAuthHeaderConnectReuse": {
            "type": "boolean",
            "default": false
          },
          "omitAuthHeaderConnectReuseSystemDefault": {
            "type": "boolean"
          },
          "omitHostHeader": {
            "type": "boolean",
            "default": false
          },
          "overrideContentType": {
            "type": "boolean",
            "default": false
          },
          "passThroughSoapFaults": {
            "type": "boolean",
            "default": true
          },
          "passthroughHttpAuthentication": {
            "type": "boolean",
            "default": false
          },
          "password": {
            "type": "string"
          },
          "protectedServiceUrl": {
            "type": "string"
          },
          "proxyHost": {
            "type": "string"
          },
          "proxyPassword": {
            "type": "string",
            "default": ""
          },
          "proxyPort": {
            "type": "string"
          },
          "proxyUsername": {
            "type": "string",
            "default": ""
          },
          "__useProxy": {
            "type": "string",
            "default": "DONT_USE_PROXY",
            "enum": [
              "DONT_USE_PROXY",
              "USE_PROXY"
            ],
            "i18n": "http-routing.proxy"
          },
          "realm": {
            "type": "string"
          },
          "recipientContext": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/sub-types/xmlSecurityRecipientContext"
          },
          "requestHeaderRules": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/sub-types/httpPassthroughRuleSet"
          },
          "requestMsgSrc": {
            "type": "string"
          },
          "requestParamRules": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/sub-types/httpPassthroughRuleSet"
          },
          "responseHeaderRules": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/sub-types/httpPassthroughRuleSet"
          },
          "responseMsgDest": {
            "type": "string"
          },
          "responseSize": {
            "type": "string"
          },
          "__overrideMessageSize": {
            "type": "boolean",
            "default": false
          },
          "__limitMessageSize": {
            "type": "string",
            "default": "LIMITED",
            "enum": [
              "LIMITED",
              "UNLIMITED"
            ],
            "i18n": "http-routing.others.limitMessageSize"
          },
          "__responseSizeUnit": {
            "type": "string",
            "enum": [
              "Bytes"
            ],
            "default": "Bytes"
          },
          "samlAssertionExpiry": {
            "type": "integer",
            "default": 5
          },
          "samlAssertionVersion": {
            "type": "integer",
            "default": 1
          },
          "taiCredentialChaining": {
            "type": "boolean",
            "default": false
          },
          "timeout": {
            "type": "string"
          },
          "tlsCipherSuites": {
            "type": "string"
          },
          "tlsTrustedCertGoids": {
            "type": "array",
            "items": {
              "$ref": "https://l7tech.com/2025/json-schema/assertions/sub-types/goid"
            }
          },
          "tlsTrustedCertNames": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string"
                }
              }
            }
          },
          "tlsVersion": {
            "type": "string",
            "enum": [
              "any",
              "TLSv1",
              "TLSv1.1",
              "TLSv1.2",
              "TLSv1.3"
            ],
            "default": "any",
            "i18n": "http-routing.tlsVersion"
          },
          "useKeepAlives": {
            "type": "boolean",
            "default": true
          },
          "useThumbprintInSamlSignature": {
            "type": "boolean",
            "default": false
          },
          "useThumbprintInSamlSubject": {
            "type": "boolean",
            "default": false
          },
          "userAgent": {
            "type": "string"
          },
          "usesDefaultKeyStore": {
            "type": "boolean",
            "default": true
          },
          "usesDynamicPrivateKey": {
            "type": "boolean",
            "default": false
          },
          "usesNoKey": {
            "type": "boolean",
            "default": false
          },
          "xmlSecurityActorToPromote": {
            "type": "string"
          },
          "__connectionType": {
            "type": "string",
            "enum": [
              "LOOK_UP_IP_ADDRESS_IN_DNS",
              "USE_FOLLOWING_IP_ADDRESS",
              "USE_MULTIPLE_URLS"
            ],
            "i18n": "http-routing.__connectionType"
          },
          "__authenticationType": {
            "type": "string",
            "default": "NONE",
            "enum": [
              "NONE",
              "OAUTH",
              "HTTP_CRED",
              "HTTP_CRED_REQ",
              "SAML_SENDER",
              "TAI_HEADER",
              "WINDOWS_INTEGRATED"
            ],
            "i18n": "http-routing.__authenticationType"
          },
          "__authenticationKrbType": {
            "type": "string",
            "default": "KRB_DEL_CRED",
            "enum": [
              "KRB_DEL_CRED",
              "KRB_GW_KEYTAB",
              "KRB_CRED"
            ],
            "i18n": "http-routing.__authenticationKrbType"
          },
          "__connectionTimeoutUseSystemDefault": {
            "type": "boolean"
          },
          "__readTimeoutUseSystemDefault": {
            "type": "boolean"
          },
          "__maxRetriesUseSystemDefault": {
            "type": "boolean"
          },
          "__trustedServerCertificates": {
            "type": "string",
            "enum": [
              "ALL",
              "DYNAMIC_CERTIFICATE_VARIABLE",
              "TLS_TRUSTED_CERT_NAMES"
            ],
            "default": "ALL",
            "i18n": "http-routing.__trustedServerCertificates"
          },
          "__privateKey": {
            "type": "string",
            "i18n": "http-routing.__privateKey"
          }
        }
      },
      {
        "type": "string",
        "$id": "https://l7tech.com/2025/json-schema/assertions/sub-types/goid"
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/sub-types/boolean"
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/sub-types/xmlSecurityRecipientContext",
        "properties": {
          "actor": {
            "type": "string"
          },
          "base64edX509Certificate": {
            "type": "string"
          }
        }
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/sub-types/httpPassthroughRuleSet",
        "properties": {
          "forwardAll": {
            "type": "boolean",
            "default": false
          },
          "__passThroughCertainHeaders": {
            "type": "boolean",
            "default": false
          },
          "rules": {
            "type": "array",
            "items": {
              "$ref": "https://l7tech.com/2025/json-schema/assertions/sub-types/httpPassthroughRule"
            }
          }
        }
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/sub-types/httpPassthroughRule",
        "properties": {
          "name": {
            "type": "string"
          },
          "customizeValue": {
            "type": "string",
            "title": "Value"
          },
          "usesCustomizedValue": {
            "type": "boolean",
            "default": false
          },
          "__valueType": {
            "type": "string",
            "enum": [
              "ORIGINAL",
              "CUSTOMIZED"
            ],
            "default": "ORIGINAL",
            "i18n": "http-routing.__valueType"
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Route via HTTP(S)",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/protectedServiceUrl",
            "options": {
              "markAsRequired": true
            },
            "i18n": "http-routing.protectedServiceUrl",
            "rule": {
              "effect": "DISABLE",
              "condition": {
                "scope": "#/properties/__connectionType",
                "schema": {
                  "const": "USE_MULTIPLE_URLS"
                }
              }
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/__httpMethod",
            "options": {
              "defaultOptions": [
                ""
              ],
              "autocomplete": true,
              "allowUserProvidedInput": true
            },
            "i18n": "http-routing.httpMethod"
          },
          {
            "type": "Control",
            "scope": "#/properties/requestMsgSrc",
            "options": {
              "markAsRequired": true,
              "contextVariable": true,
              "variableType": "input",
              "allowedDataTypes": [
                "message"
              ]
            },
            "i18n": "http-routing.requestMsgSrc"
          },
          {
            "type": "Control",
            "scope": "#/properties/responseMsgDest",
            "options": {
              "markAsRequired": true,
              "contextVariable": true,
              "variableType": "output",
              "allowedDataTypes": []
            },
            "i18n": "http-routing.responseMsgDest"
          },
          {
            "type": "Group",
            "label": "Authentication",
            "options": {
              "groupType": "Accordion"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/__authenticationType",
                "label": false,
                "options": {
                  "format": "radio",
                  "disabledOptions": [
                    "SAML_SENDER"
                  ],
                  "uiSchemasMap": {
                    "OAUTH": {
                      "type": "VerticalLayout",
                      "elements": [
                        {
                          "type": "Control",
                          "scope": "#/properties/authOauthVersion",
                          "i18n": "http-routing.oauthVersion"
                        },
                        {
                          "type": "Control",
                          "scope": "#/properties/authOauthTokenVar",
                          "i18n": "http-routing.tokenVariable",
                          "options": {
                            "markAsRequired": true,
                            "contextVariable": true,
                            "variableType": "input",
                            "allowedDataTypes": []
                          }
                        }
                      ]
                    },
                    "HTTP_CRED": {
                      "type": "VerticalLayout",
                      "elements": [
                        {
                          "type": "Control",
                          "scope": "#/properties/login",
                          "i18n": "common.userName"
                        },
                        {
                          "type": "Control",
                          "scope": "#/properties/password",
                          "i18n": "common.password",
                          "options": {
                            "format": "password"
                          }
                        },
                        {
                          "type": "Control",
                          "scope": "#/properties/realm",
                          "i18n": "http-routing.http_credentials.ntlmDomain"
                        },
                        {
                          "type": "Control",
                          "scope": "#/properties/ntlmHost",
                          "i18n": "http-routing.http_credentials.ntlmHost"
                        }
                      ]
                    },
                    "WINDOWS_INTEGRATED": {
                      "type": "VerticalLayout",
                      "elements": [
                        {
                          "type": "Control",
                          "scope": "#/properties/__authenticationKrbType",
                          "label": false,
                          "options": {
                            "format": "radio",
                            "uiSchemasMap": {
                              "KRB_CRED": {
                                "type": "VerticalLayout",
                                "elements": [
                                  {
                                    "type": "Control",
                                    "scope": "#/properties/krbConfiguredAccount",
                                    "i18n": "common.userName"
                                  },
                                  {
                                    "type": "Control",
                                    "scope": "#/properties/krbConfiguredPassword",
                                    "i18n": "common.password",
                                    "options": {
                                      "format": "password"
                                    }
                                  }
                                ]
                              }
                            }
                          }
                        }
                      ]
                    }
                  }
                }
              }
            ]
          },
          {
            "type": "Group",
            "label": "Headers",
            "options": {
              "groupType": "Accordion"
            },
            "elements": [
              {
                "type": "Group",
                "i18n": "http-routing.requestHeaders.label",
                "options": {
                  "groupType": "wrapCustomClass",
                  "customClass": "group-spacing"
                },
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/requestHeaderRules/properties/__passThroughCertainHeaders",
                    "i18n": "http-routing.passThroughRequestHeaders",
                    "options": {
                      "subUiSchema": {
                        "type": "Control",
                        "scope": "#/properties/requestHeaderRules/properties/rules",
                        "label": "Header",
                        "options": {
                          "nameValueList": true,
                          "detail": {
                            "type": "VerticalLayout",
                            "elements": [
                              {
                                "type": "Control",
                                "scope": "#/properties/name",
                                "i18n": "http-routing.headerName",
                                "options": {
                                  "markAsRequired": true
                                }
                              },
                              {
                                "type": "Control",
                                "scope": "#/properties/__valueType",
                                "label": false,
                                "options": {
                                  "format": "radio",
                                  "useRowLayout": false
                                }
                              },
                              {
                                "type": "Control",
                                "scope": "#/properties/customizeValue",
                                "label": false,
                                "options": {
                                  "markAsRequired": true
                                },
                                "rule": {
                                  "effect": "ENABLE",
                                  "condition": {
                                    "scope": "#/properties/__valueType",
                                    "schema": {
                                      "const": "CUSTOMIZED"
                                    }
                                  }
                                }
                              }
                            ]
                          }
                        }
                      }
                    }
                  }
                ]
              },
              {
                "type": "Group",
                "i18n": "http-routing.responseHeaders.label",
                "options": {
                  "groupType": "wrapCustomClass",
                  "customClass": "group-spacing"
                },
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/responseHeaderRules/properties/__passThroughCertainHeaders",
                    "i18n": "http-routing.passThroughResponseHeaders",
                    "options": {
                      "subUiSchema": {
                        "type": "Control",
                        "scope": "#/properties/responseHeaderRules/properties/rules",
                        "label": "Header",
                        "options": {
                          "nameValueList": true,
                          "detail": {
                            "type": "VerticalLayout",
                            "elements": [
                              {
                                "type": "Control",
                                "scope": "#/properties/name",
                                "i18n": "http-routing.headerName",
                                "options": {
                                  "markAsRequired": true
                                }
                              },
                              {
                                "type": "Control",
                                "scope": "#/properties/__valueType",
                                "label": false,
                                "options": {
                                  "format": "radio",
                                  "useRowLayout": false
                                }
                              },
                              {
                                "type": "Control",
                                "scope": "#/properties/customizeValue",
                                "label": false,
                                "options": {
                                  "markAsRequired": true
                                },
                                "rule": {
                                  "effect": "ENABLE",
                                  "condition": {
                                    "scope": "#/properties/__valueType",
                                    "schema": {
                                      "const": "CUSTOMIZED"
                                    }
                                  }
                                }
                              }
                            ]
                          }
                        }
                      }
                    }
                  }
                ]
              }
            ]
          },
          {
            "type": "Group",
            "label": "Connection",
            "options": {
              "groupType": "Accordion"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/__connectionType",
                "label": false,
                "options": {
                  "format": "radio",
                  "uiSchemasMap": {
                    "USE_FOLLOWING_IP_ADDRESS": {
                      "type": "VerticalLayout",
                      "elements": [
                        {
                          "type": "Control",
                          "scope": "#/properties/customIpAddresses",
                          "label": "IP Address",
                          "options": {
                            "nameValueList": true,
                            "detail": {
                              "type": "HorizontalLayout",
                              "elements": [
                                {
                                  "type": "Control",
                                  "scope": "#/properties/name",
                                  "label": false,
                                  "options": {
                                    "markAsRequired": true
                                  }
                                }
                              ]
                            }
                          }
                        },
                        {
                          "type": "Control",
                          "scope": "#/properties/failoverStrategyName"
                        }
                      ]
                    },
                    "USE_MULTIPLE_URLS": {
                      "type": "VerticalLayout",
                      "elements": [
                        {
                          "type": "Control",
                          "scope": "#/properties/customURLs",
                          "label": "URL",
                          "options": {
                            "nameValueList": true,
                            "detail": {
                              "type": "HorizontalLayout",
                              "elements": [
                                {
                                  "type": "Control",
                                  "scope": "#/properties/name",
                                  "label": false,
                                  "options": {
                                    "markAsRequired": true
                                  }
                                }
                              ]
                            }
                          }
                        },
                        {
                          "type": "Control",
                          "scope": "#/properties/failoverStrategyName"
                        }
                      ]
                    }
                  }
                }
              },
              {
                "type": "HorizontalLayout",
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/connectionTimeout",
                    "i18n": "http-routing.connectionTimeout",
                    "options": {
                      "markAsRequired": true
                    },
                    "rule": {
                      "effect": "DISABLE",
                      "condition": {
                        "scope": "#/properties/__connectionTimeoutUseSystemDefault",
                        "schema": {
                          "const": true
                        }
                      }
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/__connectionTimeoutUseSystemDefault",
                    "i18n": "http-routing.useSystemDefault",
                    "options": {
                      "customClass": "http-routing-use-system-default-label"
                    }
                  }
                ]
              },
              {
                "type": "HorizontalLayout",
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/timeout",
                    "i18n": "http-routing.readTimeout",
                    "options": {
                      "markAsRequired": true
                    },
                    "rule": {
                      "effect": "DISABLE",
                      "condition": {
                        "scope": "#/properties/__readTimeoutUseSystemDefault",
                        "schema": {
                          "const": true
                        }
                      }
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/__readTimeoutUseSystemDefault",
                    "i18n": "http-routing.useSystemDefault",
                    "options": {
                      "customClass": "http-routing-use-system-default-label"
                    }
                  }
                ]
              },
              {
                "type": "HorizontalLayout",
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/maxRetries",
                    "i18n": "http-routing.maximumRetries",
                    "options": {
                      "markAsRequired": true
                    },
                    "rule": {
                      "effect": "DISABLE",
                      "condition": {
                        "scope": "#/properties/__maxRetriesUseSystemDefault",
                        "schema": {
                          "const": true
                        }
                      }
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/__maxRetriesUseSystemDefault",
                    "i18n": "http-routing.useSystemDefault",
                    "options": {
                      "customClass": "http-routing-use-system-default-label"
                    }
                  }
                ]
              },
              {
                "type": "HorizontalLayout",
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/omitAuthHeaderConnectReuse",
                    "i18n": "http-routing.omitMatchingAuthHeader",
                    "rule": {
                      "effect": "DISABLE",
                      "condition": {
                        "scope": "#/properties/omitAuthHeaderConnectReuseSystemDefault",
                        "schema": {
                          "const": true
                        }
                      }
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/omitAuthHeaderConnectReuseSystemDefault",
                    "i18n": "http-routing.useSystemDefault",
                    "options": {
                      "customClass": "http-routing-use-system-default-label"
                    }
                  }
                ]
              },
              {
                "type": "VerticalLayout",
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/maxDurationEnabled",
                    "i18n": "http-routing.maxDurationEnable",
                    "options": {
                      "helpText": "http-routing.maxDurationEnable.tooltip",
                      "subUiSchema": {
                        "type": "VerticalLayout",
                        "elements": [
                          {
                            "type": "Control",
                            "scope": "#/properties/maxDurationTimeout",
                            "i18n": "http-routing.maxDurationTimeout",
                            "options": {
                              "placeholder": "",
                              "markAsRequired": true
                            }
                          },
                          {
                            "type": "Control",
                            "scope": "#/properties/__responseMessageHandlingSettings",
                            "i18n": "http-routing.responseMessageHandlingSettings",
                            "options": {
                              "format": "radio",
                              "useRowLayout": false,
                              "defaultOptions": [
                                {
                                  "value": "BUFFER",
                                  "label": "http-routing.responseMessageHandlingSettings.BUFFER",
                                  "tooltipText": "http-routing.responseMessageHandlingSettings.BUFFER.tooltip"
                                },
                                {
                                  "value": "STREAM",
                                  "label": "http-routing.responseMessageHandlingSettings.STREAM",
                                  "tooltipText": "http-routing.responseMessageHandlingSettings.STREAM.tooltip"
                                }
                              ]
                            }
                          }
                        ]
                      }
                    }
                  }
                ]
              },
              {
                "type": "Control",
                "scope": "#/properties/tlsVersion",
                "i18n": "http-routing.tlsVersion"
              },
              {
                "type": "Group",
                "label": "Trusted Server Certificates",
                "options": {
                  "groupType": "ShowHide"
                },
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/__trustedServerCertificates",
                    "label": false,
                    "options": {
                      "format": "radio",
                      "uiSchemasMap": {
                        "DYNAMIC_CERTIFICATE_VARIABLE": {
                          "type": "Control",
                          "scope": "#/properties/dynamicCertificateVariable",
                          "i18n": "http-routing.contextVariable",
                          "options": {
                            "markAsRequired": true,
                            "contextVariable": true,
                            "variableType": "input",
                            "allowedDataTypes": []
                          }
                        },
                        "TLS_TRUSTED_CERT_NAMES": {
                          "type": "VerticalLayout",
                          "elements": [
                            {
                              "type": "Control",
                              "scope": "#/properties/tlsTrustedCertGoids",
                              "options": {
                                "trustedCertificates": true,
                                "multiSelectEnabled": true,
                                "additionalAttributes": [
                                  {
                                    "source": "name",
                                    "destination": "tlsTrustedCertNames"
                                  }
                                ]
                              }
                            }
                          ]
                        }
                      }
                    }
                  }
                ]
              },
              {
                "type": "Group",
                "label": "Enabled Cipher Suites",
                "options": {
                  "groupType": "ShowHide"
                },
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/tlsCipherSuites",
                    "options": {
                      "cipherSuites": true
                    }
                  }
                ]
              },
              {
                "type": "Group",
                "label": "Private Key",
                "options": {
                  "groupType": "ShowHide"
                },
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/__privateKey",
                    "i18n": "http-routing.__privateKey",
                    "options": {
                      "privateKey": true,
                      "keyTypeOptions": [
                        "DEFAULT_KEY",
                        "NO_KEY",
                        "CUSTOM_PRIVATE_KEY",
                        "DYNAMIC_PRIVATE_KEY"
                      ]
                    }
                  }
                ]
              }
            ]
          },
          {
            "type": "Group",
            "label": "HTTP",
            "options": {
              "groupType": "Accordion"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/__httpVersion",
                "i18n": "http-routing.httpVersion"
              },
              {
                "type": "Control",
                "scope": "#/properties/gzipEncodeDownstream",
                "i18n": "http-routing.compressOutput"
              },
              {
                "type": "Control",
                "scope": "#/properties/useKeepAlives",
                "i18n": "http-routing.keepAlive"
              },
              {
                "type": "Control",
                "scope": "#/properties/followRedirects",
                "i18n": "http-routing.followRedirects"
              },
              {
                "type": "Control",
                "scope": "#/properties/forceIncludeRequestBody",
                "i18n": "http-routing.transmitBody"
              },
              {
                "type": "Control",
                "scope": "#/properties/overrideContentType",
                "i18n": "http-routing.excludeContentType"
              },
              {
                "type": "Control",
                "scope": "#/properties/omitHostHeader",
                "i18n": "http-routing.omitHostHeader",
                "rule": {
                  "effect": "ENABLE",
                  "condition": {
                    "scope": "#/properties/__httpVersion",
                    "schema": {
                      "const": "1.0"
                    }
                  }
                }
              },
              {
                "type": "Group",
                "i18n": "http-routing.postParameters.label",
                "options": {
                  "groupType": "wrapCustomClass",
                  "customClass": "group-spacing"
                },
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/requestParamRules/properties/__passThroughCertainHeaders",
                    "i18n": "http-routing.passThroughPostParameters",
                    "options": {
                      "subUiSchema": {
                        "type": "Control",
                        "scope": "#/properties/requestParamRules/properties/rules",
                        "label": "Parameter",
                        "options": {
                          "nameValueList": true,
                          "detail": {
                            "type": "VerticalLayout",
                            "elements": [
                              {
                                "type": "Control",
                                "scope": "#/properties/name",
                                "i18n": "http-routing.parameterName",
                                "options": {
                                  "markAsRequired": true
                                }
                              },
                              {
                                "type": "Control",
                                "scope": "#/properties/__valueType",
                                "label": false,
                                "options": {
                                  "format": "radio",
                                  "useRowLayout": false
                                }
                              },
                              {
                                "type": "Control",
                                "scope": "#/properties/customizeValue",
                                "label": false,
                                "options": {
                                  "markAsRequired": true
                                },
                                "rule": {
                                  "effect": "ENABLE",
                                  "condition": {
                                    "scope": "#/properties/__valueType",
                                    "schema": {
                                      "const": "CUSTOMIZED"
                                    }
                                  }
                                }
                              }
                            ]
                          }
                        }
                      }
                    }
                  }
                ]
              }
            ]
          },
          {
            "type": "Group",
            "label": "Proxy",
            "options": {
              "groupType": "Accordion"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/__useProxy",
                "label": false,
                "options": {
                  "format": "radio",
                  "uiSchemasMap": {
                    "USE_PROXY": {
                      "type": "VerticalLayout",
                      "elements": [
                        {
                          "type": "Control",
                          "scope": "#/properties/proxyHost",
                          "i18n": "http-routing.proxy.proxyHost",
                          "options": {
                            "markAsRequired": true
                          }
                        },
                        {
                          "type": "Control",
                          "scope": "#/properties/proxyPort",
                          "i18n": "http-routing.proxy.proxyPort",
                          "options": {
                            "markAsRequired": true
                          }
                        },
                        {
                          "type": "Control",
                          "scope": "#/properties/proxyUsername",
                          "i18n": "http-routing.proxy.proxyUsername"
                        },
                        {
                          "type": "Control",
                          "scope": "#/properties/proxyPassword",
                          "i18n": "http-routing.proxy.proxyPassword",
                          "options": {
                            "format": "password"
                          }
                        }
                      ]
                    }
                  }
                }
              }
            ]
          },
          {
            "type": "Group",
            "label": "Other",
            "options": {
              "groupType": "Accordion"
            },
            "elements": [
              {
                "type": "Control",
                "label": false,
                "scope": "#/properties/currentSecurityHeaderHandling",
                "options": {
                  "wssSecurityHeaderHandling": true,
                  "wsSecurityOptions": [
                    3,
                    1,
                    0,
                    2
                  ],
                  "isOtherSecurityAutocomplete": true
                }
              },
              {
                "type": "Group",
                "i18n": "http-routing.responseSize.label",
                "options": {
                  "groupType": "wrapCustomClass",
                  "customClass": "group-spacing"
                },
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/__overrideMessageSize",
                    "i18n": "http-routing.others.overrideMessageSize"
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/__limitMessageSize",
                    "label": "http-routing.others.limitMessageSize",
                    "options": {
                      "format": "radio",
                      "uiSchemasMap": {
                        "LIMITED": {
                          "type": "HorizontalLayout",
                          "elements": [
                            {
                              "type": "Control",
                              "scope": "#/properties/responseSize",
                              "label": false,
                              "options": {
                                "markAsRequired": true
                              },
                              "rule": {
                                "effect": "ENABLE",
                                "condition": {
                                  "scope": "#/properties/__overrideMessageSize",
                                  "schema": {
                                    "const": true
                                  }
                                }
                              }
                            },
                            {
                              "type": "Control",
                              "scope": "#/properties/__responseSizeUnit",
                              "label": false,
                              "rule": {
                                "effect": "ENABLE",
                                "condition": {
                                  "scope": "#/properties/__overrideMessageSize",
                                  "schema": {
                                    "const": true
                                  }
                                }
                              }
                            }
                          ]
                        }
                      }
                    },
                    "rule": {
                      "effect": "ENABLE",
                      "condition": {
                        "scope": "#/properties/__overrideMessageSize",
                        "schema": {
                          "const": true
                        }
                      }
                    }
                  }
                ]
              },
              {
                "type": "Group",
                "i18n": "http-routing.assertionOutcome.label",
                "options": {
                  "groupType": "wrapCustomClass",
                  "customClass": "group-spacing"
                },
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/__assertionOutcome",
                    "label": false,
                    "options": {
                      "format": "radio",
                      "uiSchemasMap": {
                        "FAIL": {
                          "type": "VerticalLayout",
                          "elements": [
                            {
                              "type": "Control",
                              "scope": "#/properties/passThroughSoapFaults",
                              "i18n": "http-routing.others.passThroughSoapFaults"
                            }
                          ]
                        }
                      }
                    }
                  }
                ]
              },
              {
                "type": "Group",
                "label": "WS-Security Recipient",
                "options": {
                  "groupType": "ShowHide"
                },
                "elements": [
                  {
                    "type": "Control",
                    "options": {
                      "wssRecipient": true
                    }
                  }
                ]
              }
            ]
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/HttpRouting",
        "locale": "en",
        "content": {
          "http-routing.protectedServiceUrl.label": "URL",
          "http-routing.httpMethod.label": "HTTP Method",
          "http-routing.__httpMethod.error": "No such variable",
          "http-routing.requestMsgSrc.label": "Request Source",
          "http-routing.responseMsgDest.label": "Response Destination",
          "http-routing.failoverStrategyName.ordered": "Ordered Sticky with Failover",
          "http-routing.failoverStrategyName.sticky": "Random Sticky with Failover",
          "http-routing.failoverStrategyName.robin": "Round-Robin",
          "http-routing.customURLs.error": "The list of multiple URLs must not be empty. Please add URL(s)",
          "http-routing.tlsVersion.label": "TLS Version",
          "http-routing.tlsVersion.any": "Any",
          "http-routing.tlsVersion.TLSv1": "TLS 1.0",
          "http-routing.tlsVersion.TLSv1.1": "TLS 1.1",
          "http-routing.tlsVersion.TLSv1.2": "TLS 1.2",
          "http-routing.tlsVersion.TLSv1.3": "TLS 1.3",
          "http-routing.__trustedServerCertificates.ALL": "Trust all Trusted TLS Certificates",
          "http-routing.__trustedServerCertificates.DYNAMIC_CERTIFICATE_VARIABLE": "Trust only the specified Trusted TLS Server Certificates via Context Variable",
          "http-routing.__trustedServerCertificates.TLS_TRUSTED_CERT_NAMES": "Trust only the specified Trusted TLS Server Certificates",
          "http-routing.__privateKey.DEFAULT_KEY": "Use default private key",
          "http-routing.__privateKey.NO_KEY": "Use no Private key",
          "http-routing.__privateKey.CUSTOM_PRIVATE_KEY": "Use custom private key",
          "http-routing.__privateKey.DYNAMIC_PRIVATE_KEY": "Use dynamic private key",
          "http-routing.__connectionType.LOOK_UP_IP_ADDRESS_IN_DNS": "Look up IP addresses in DNS",
          "http-routing.__connectionType.USE_FOLLOWING_IP_ADDRESS": "Use the following IP addresses",
          "http-routing.__connectionType.USE_MULTIPLE_URLS": "Use Multiple URLs",
          "http-routing.__valueType.ORIGINAL": "Pass original value                          ",
          "http-routing.__valueType.CUSTOMIZED": "Customize value",
          "http-routing.error.invalid_response_size.field": "The Restrict messages to field must contain a context variable and/or an integer",
          "http-routing.oauthVersion.label": "OAuth Version",
          "http-routing.tokenVariable.label": "Token Variable",
          "http-routing.http_credentials.ntlmDomain.label": "NTLM Domain",
          "http-routing.http_credentials.ntlmHost.label": "NTLM Host",
          "http-routing.__authenticationType.NONE": "None (anonymous)",
          "http-routing.__authenticationType.OAUTH": "Use OAuth Authorization",
          "http-routing.__authenticationType.HTTP_CRED": "Specify HTTP Credentials",
          "http-routing.__authenticationType.HTTP_CRED_REQ": "Use HTTP Credentials from Request",
          "http-routing.__authenticationType.SAML_SENDER": "Attach SAML Sender-Vouches",
          "http-routing.__authenticationType.TAI_HEADER": "Send TAI Header",
          "http-routing.__authenticationType.WINDOWS_INTEGRATED": "Use Windows Integrated",
          "http-routing.__authenticationKrbType.KRB_DEL_CRED": "Use Delegated Credentials",
          "http-routing.__authenticationKrbType.KRB_GW_KEYTAB": "Use Gateway Keytab",
          "http-routing.__authenticationKrbType.KRB_CRED": "Configured Credentials",
          "http-routing.requestHeaders.label": "Request Headers",
          "http-routing.postParameters.label": "Request Form Post Parameters",
          "http-routing.passThroughRequestHeaders.label": "Pass through only certain request headers",
          "http-routing.passThroughResponseHeaders.label": "Pass through only certain response headers",
          "http-routing.passThroughPostParameters.label": "Pass through only certain request form Post parameters",
          "http-routing.omitMatchingAuthHeader.label": "Omit Matching Auth Header When Reusing Connection",
          "http-routing.connectionTimeout.label": "Connection Timeout (ms)",
          "http-routing.connectionTimeout.error": "The Connection timeout field must contain a context variable and/or an integer between 1 and 86,400,000",
          "http-routing.readTimeout.label": "Read Timeout (ms)",
          "http-routing.readTimeout.error": "The Read timeout field must contain a context variable and/or an integer between 1 and 86,400,000",
          "http-routing.maximumRetries.label": "Maximum Retries",
          "http-routing.maximumRetries.error": "Maximum retries must be a number between 0 and 100",
          "http-routing.maxDurationSection.label": "Max Duration Timeout",
          "http-routing.maxDurationEnable.label": "Enable Max Duration Timeout",
          "http-routing.maxDurationEnable.tooltip": "Enable Max Duration Timeout to use Response Message Handling (buffering or streaming). See the TechDocs for details on Max Duration Timeout.",
          "http-routing.maxDurationTimeout.label": "Max Duration Timeout (ms)",
          "http-routing.maxDurationTimeout.error": "The Max duration timeout field must contain a context variable and/or an integer between 1 and 86,400,000",
          "http-routing.responseMessageHandlingSettings.label": "Response Message Handling",
          "http-routing.responseMessageHandlingSettings.BUFFER": "Buffer immediately",
          "http-routing.responseMessageHandlingSettings.STREAM": "Enable streaming",
          "http-routing.responseMessageHandlingSettings.BUFFER.tooltip": "Allows for in-policy control when the Max Duration time limit is surpassed. Cause the target message to be buffered immediately.  Will be buffered to disk if the total size exceeds the configured disk threshold.",
          "http-routing.responseMessageHandlingSettings.STREAM.tooltip": "Streams the response immediately; the service fails if the maximum duration time limit is exceeded before the full response is received.",
          "http-routing.useSystemDefault.label": "Use System Default",
          "http-routing.contextVariable.label": "Context Variable",
          "http-routing.keyAlias.label": "Key Alias (variable)",
          "http-routing.httpVersion.label": "HTTP Version",
          "http-routing.compressOutput.label": "Compress output",
          "http-routing.keepAlive.label": "Use Keep-Alive",
          "http-routing.followRedirects.label": "Follow Redirects",
          "http-routing.transmitBody.label": "Transmit body regardless of request method",
          "http-routing.excludeContentType.label": "Do not automatically include Content-Type header in request",
          "http-routing.omitHostHeader.label": "Omit Host header (for HTTP/1.0)",
          "http-routing.proxy.DONT_USE_PROXY": "Do not use an HTTP proxy",
          "http-routing.proxy.USE_PROXY": "Use an HTTP proxy",
          "http-routing.proxy.proxyHost.label": "Proxy Host",
          "http-routing.proxy.proxyPort.label": "Proxy Port",
          "http-routing.proxyPort.error": "Please reference a single context variable or provide a number between 1 and 65535 for the proxy port",
          "http-routing.proxy.proxyUsername.label": "Proxy Username",
          "http-routing.proxy.proxyPassword.label": "Proxy Password",
          "http-routing.securityHeader.label": "Security Header",
          "http-routing.headerName.label": "Header Name",
          "http-routing.parameterName.label": "Parameter Name",
          "http-routing.responseHeaders.label": "Response Headers",
          "http-routing.others.wssRecipient.DEFAULT": "Default",
          "http-routing.others.wssRecipient.SPECIFIC": "Specific Recipient",
          "http-routing.others.recipientCertificate.label": "Recipient Certificate",
          "http-routing.responseSize.label": "Response Size Limit",
          "http-routing.others.overrideMessageSize.label": "Override maximum message size",
          "http-routing.others.limitMessageSize.label": "Restrict message size",
          "http-routing.others.limitMessageSize.LIMITED": "Restrict message size to",
          "http-routing.others.limitMessageSize.UNLIMITED": "Allow unlimited message size (not recommended)",
          "http-routing.assertionOutcome.label": "Assertion Outcome",
          "http-routing.others.assertionOutcome.FAIL": "Fail if target returns error status (>=400)",
          "http-routing.others.assertionOutcome.NEVER_FAIL": "Never fail as long as target returns an answer",
          "http-routing.others.passThroughSoapFaults.label": "Pass through SOAP faults with error status 500",
          "http-routing.others.securityHeaderAttribute.label": "Security Header \"Actor\" Attribute",
          "http-routing.others.recipientCertificateSubject.label": "Recipient Certificate Subject",
          "http-routing.others.defineRecipient.error": "Please define a new WSS recipient",
          "http-routing.others.addNewWssRecipient.label": "Add New WSS Recipient"
        }
      }
    ]
  },
  {
    "configName": "IcapAntivirusScanner",
    "refVariables": [
      {
        "fieldPath": ".variablePrefix",
        "refType": "OUT",
        "dataType": "other",
        "prefixed": true
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".infected",
        "refType": "OUT",
        "dataType": "string",
        "multivalued": true
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".header.names",
        "refType": "OUT",
        "dataType": "string",
        "multivalued": true
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".header.values",
        "refType": "OUT",
        "dataType": "string",
        "multivalued": true
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".header.value",
        "refType": "OUT",
        "dataType": "string"
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Scan Using ICAP-Enabled Antivirus",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/target",
            "i18n": "assertion.common.target",
            "options": {
              "messageTarget": true,
              "otherTargetMessageVariableLabel": "assertion.common.target.otherTargetContextVariable"
            }
          },
          {
            "type": "Group",
            "i18n": "icapServers.heading",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "icap-servers-spacing"
            },
            "elements": [
              {
                "type": "Control",
                "i18n": "icapServers",
                "scope": "#/properties/icapServers",
                "options": {
                  "nameValueList": true,
                  "modalCallbackEvent": true,
                  "detail": {
                    "type": "VerticalLayout",
                    "elements": [
                      {
                        "type": "Control",
                        "scope": "#/properties/icapServerUrl",
                        "i18n": "icapServers.icapServerUrl",
                        "options": {
                          "markAsRequired": true
                        }
                      },
                      {
                        "type": "Control",
                        "scope": "#/properties/__testConnection",
                        "i18n": "icapServers.__testConnection",
                        "options": {
                          "controlType": "Button",
                          "variant": "outlined"
                        }
                      },
                      {
                        "type": "Control",
                        "scope": "#/properties/__inlineAlerts",
                        "options": {
                          "inlineAlerts": "warning"
                        }
                      }
                    ]
                  }
                }
              }
            ]
          },
          {
            "type": "Group",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "icap-method-spacing"
            },
            "elements": [
              {
                "type": "Control",
                "i18n": "icapMethod",
                "scope": "#/properties/icapMethod",
                "options": {
                  "format": "radio",
                  "useRowLayout": false
                }
              }
            ]
          },
          {
            "type": "Control",
            "i18n": "originResourcePath",
            "scope": "#/properties/originResourcePath"
          },
          {
            "type": "Control",
            "i18n": "connectionTimeout",
            "scope": "#/properties/connectionTimeout",
            "options": {
              "markAsRequired": true
            }
          },
          {
            "type": "Control",
            "i18n": "readTimeout",
            "scope": "#/properties/readTimeout",
            "options": {
              "markAsRequired": true
            }
          },
          {
            "type": "Control",
            "i18n": "responseReadTimeout",
            "scope": "#/properties/responseReadTimeout",
            "options": {
              "markAsRequired": true
            }
          },
          {
            "type": "Group",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "use-tls-spacing"
            },
            "elements": [
              {
                "type": "Control",
                "i18n": "useTls",
                "scope": "#/properties/useTls"
              }
            ]
          },
          {
            "type": "VerticalLayout",
            "elements": [
              {
                "type": "Group",
                "label": "TLS Version",
                "options": {
                  "groupType": "ShowHide"
                },
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/__tlsVersion",
                    "options": {
                      "tlsProtocols": true
                    }
                  }
                ]
              },
              {
                "type": "Group",
                "label": "Cipher Suites",
                "options": {
                  "groupType": "ShowHide"
                },
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/__cipherSuites",
                    "options": {
                      "cipherSuites": true
                    }
                  }
                ]
              }
            ],
            "rule": {
              "effect": "SHOW",
              "condition": {
                "scope": "#/properties/useTls",
                "schema": {
                  "const": true
                }
              }
            }
          },
          {
            "type": "Group",
            "i18n": "parameters.heading",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "parameters-spacing"
            },
            "elements": [
              {
                "type": "Control",
                "i18n": "parameters",
                "scope": "#/properties/parameters",
                "options": {
                  "nameValueList": true,
                  "detail": {
                    "type": "VerticalLayout",
                    "elements": [
                      {
                        "type": "Control",
                        "scope": "#/properties/name",
                        "i18n": "parameters.name",
                        "options": {
                          "markAsRequired": true
                        }
                      },
                      {
                        "type": "Control",
                        "scope": "#/properties/value",
                        "i18n": "parameters.value"
                      },
                      {
                        "type": "Control",
                        "scope": "#/properties/type",
                        "i18n": "parameters.type",
                        "options": {
                          "format": "radio",
                          "useRowLayout": false
                        }
                      }
                    ]
                  }
                }
              }
            ]
          },
          {
            "type": "Control",
            "i18n": "continueOnVirusFound",
            "scope": "#/properties/continueOnVirusFound"
          },
          {
            "type": "Control",
            "i18n": "maxMimeDepth",
            "scope": "#/properties/maxMimeDepth",
            "options": {
              "markAsRequired": true
            }
          },
          {
            "type": "Control",
            "i18n": "failoverStrategy",
            "scope": "#/properties/failoverStrategy",
            "options": {
              "markAsRequired": true
            }
          },
          {
            "type": "Control",
            "i18n": "variablePrefix",
            "scope": "#/properties/variablePrefix",
            "options": {
              "markAsRequired": true,
              "contextVariable": true,
              "variableType": "output",
              "allowedDataTypes": []
            }
          }
        ]
      }
    ],
    "configSchemaPatches": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/IcapAntivirusScanner",
        "patches": [
          {
            "op": "replace",
            "path": "/properties/icapServers",
            "value": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "icapServerUrl": {
                    "type": "string",
                    "title": "Server"
                  },
                  "__testConnection": {
                    "type": "string"
                  },
                  "__inlineAlerts": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          },
          {
            "op": "add",
            "path": "/properties/__tlsVersion",
            "value": {
              "type": "string"
            }
          },
          {
            "op": "add",
            "path": "/properties/__cipherSuites",
            "value": {
              "type": "string"
            }
          },
          {
            "op": "replace",
            "path": "/properties/parameters/items/properties",
            "value": {
              "name": {
                "type": "string"
              },
              "value": {
                "type": "string"
              },
              "type": {
                "type": "string",
                "enum": [
                  "Header",
                  "Query"
                ],
                "default": "Query"
              }
            }
          },
          {
            "op": "add",
            "path": "/properties/icapMethod/enum",
            "value": [
              "RESPMOD",
              "REQMOD"
            ]
          },
          {
            "op": "add",
            "path": "/properties/failoverStrategy/enum",
            "value": [
              "ordered",
              "sticky",
              "robin"
            ]
          },
          {
            "op": "remove",
            "path": "/properties/connectionTimeout/default"
          },
          {
            "op": "remove",
            "path": "/properties/maxMimeDepth/default"
          },
          {
            "op": "remove",
            "path": "/properties/originResourcePath/default"
          },
          {
            "op": "remove",
            "path": "/properties/readTimeout/default"
          },
          {
            "op": "remove",
            "path": "/properties/responseReadTimeout/default"
          },
          {
            "op": "remove",
            "path": "/properties/variablePrefix/default"
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/IcapAntivirusScanner",
        "locale": "en",
        "content": {
          "icapServers.heading": "Server List",
          "icapServers.label": "Server",
          "icapServers.icapServerUrl.label": "ICAP Server URL",
          "icapServers.__testConnection": "Test Connection",
          "icapMethod.label": "ICAP Method",
          "originResourcePath.label": "Origin Resource Path",
          "connectionTimeout.label": "Connection Timeout (seconds)",
          "readTimeout.label": "Read Timeout (seconds)",
          "responseReadTimeout.label": "Response Read Timeout (seconds)",
          "useTls.label": "Use secure",
          "parameters.heading": "Service Parameters",
          "parameters.label": "Parameter",
          "parameters.name.label": "Parameter Name",
          "parameters.value.label": "Parameter Value",
          "parameters.type.label": "Parameter Type",
          "continueOnVirusFound.label": "Continue processing if virus found",
          "maxMimeDepth.label": "Max MIME Depth",
          "failoverStrategy.label": "Failover Strategy",
          "failoverStrategy.ordered": "Ordered Sticky with Failover",
          "failoverStrategy.sticky": "Random Sticky with Failover",
          "failoverStrategy.robin": "Round-Robin",
          "variablePrefix.label": "Variable Prefix",
          "icapServers.error": "One or more ICAP server must be added.",
          "icapServers.urlFormat.error": "ICAP Server URL must begin with 'icap'",
          "icapServers.duplicate.error": "ICAP URL already exists.",
          "connectionTimeout.error": "Connection timeout value must be a valid integer with range 1 to 3600 inclusive.",
          "readTimeout.error": "Read timeout value must be a valid integer with range 1 to 3600 inclusive.",
          "responseReadTimeout.error": "Response read timeout value must be a valid integer with range 1 to 3600 inclusive.",
          "maxMimeDepth.error": "Max Mime Depth should be a valid integer with range 1 to 100 inclusive",
          "parameters.name.error": "Parameter name contains invalid character",
          "testConnection.failure": "Error connecting to server: connection refused",
          "testConnection.success": "Success"
        }
      }
    ]
  },
  {
    "configName": "IdentityAttributes",
    "refVariables": [
      {
        "fieldPath": ".variablePrefix",
        "refType": "OUT",
        "dataType": "string",
        "prefixed": true
      },
      {
        "fieldPath": ".variablePrefix",
        "secondaryFieldPath": ".lookupAttributes[*].attributeConfig.variableName",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".customAttributeName",
        "refType": "OUT",
        "dataType": "string"
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Extract Attributes for Authenticated User",
        "elements": [
          {
            "type": "Group",
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/identityProviderOid",
                "i18n": "indentityProvider",
                "options": {
                  "defaultOptions": []
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/variablePrefix",
                "i18n": "variablePrefix",
                "options": {
                  "markAsRequired": true,
                  "contextVariable": true,
                  "variableType": "output",
                  "allowedDataTypes": []
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/__lookupAttributes",
                "i18n": "addBtn",
                "options": {
                  "nameValueList": true,
                  "detail": {
                    "type": "VerticalLayout",
                    "elements": [
                      {
                        "type": "Control",
                        "scope": "#/properties/providerOid",
                        "i18n": "indentityProvider",
                        "options": {
                          "hideColumn": true,
                          "readonly": true
                        }
                      },
                      {
                        "type": "Control",
                        "scope": "#/properties/__customAttributeName",
                        "i18n": "customAttributeName",
                        "options": {
                          "autocomplete": true,
                          "allowUserProvidedInput": true,
                          "defaultOptions": [
                            {
                              "label": "Unique ID",
                              "value": "Unique ID"
                            },
                            {
                              "label": "User Login",
                              "value": "User Login"
                            },
                            {
                              "label": "Common Name",
                              "value": "Common Name"
                            },
                            {
                              "label": "E-mail Address",
                              "value": "E-mail Address"
                            },
                            {
                              "label": "First Name",
                              "value": "First Name"
                            },
                            {
                              "label": "Last Name",
                              "value": "Last Name"
                            },
                            {
                              "label": "Department",
                              "value": "Department"
                            },
                            {
                              "label": "Identity Provider GOID",
                              "value": "Identity Provider GOID"
                            },
                            {
                              "label": "X.500 Subject DN",
                              "value": "X.500 Subject DN"
                            }
                          ]
                        },
                        "rule": {
                          "effect": "HIDE",
                          "condition": {
                            "scope": "#/properties/providerOid",
                            "schema": {
                              "const": "Internal Identity Provider"
                            }
                          }
                        }
                      },
                      {
                        "type": "Control",
                        "scope": "#/properties/__customAttributeNameForIdentity",
                        "i18n": "customAttributeName",
                        "rule": {
                          "effect": "SHOW",
                          "condition": {
                            "scope": "#/properties/providerOid",
                            "schema": {
                              "const": "Internal Identity Provider"
                            }
                          }
                        }
                      },
                      {
                        "type": "Control",
                        "scope": "#/properties/customAttributeName",
                        "i18n": "variableName",
                        "options": {
                          "markAsRequired": true,
                          "customClass": "hide-customAttributeName-field"
                        }
                      },
                      {
                        "type": "Control",
                        "scope": "#/properties/contextVariableName",
                        "i18n": "variableName",
                        "options": {
                          "markAsRequired": true,
                          "prefixInputText": "",
                          "customClass": "variable-context",
                          "contextVariable": true,
                          "variableType": "output",
                          "allowedDataTypes": []
                        }
                      },
                      {
                        "type": "Control",
                        "scope": "#/properties/__multivalued",
                        "i18n": "multiValue",
                        "options": {
                          "hideColumn": true
                        }
                      }
                    ]
                  }
                }
              }
            ]
          }
        ]
      }
    ],
    "configSchemaPatches": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/IdentityAttributes",
        "patches": [
          {
            "op": "add",
            "path": "/properties/__lookupAttributes",
            "value": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "providerOid": {
                    "type": "string"
                  },
                  "contextVariableName": {
                    "type": "string",
                    "title": "Context Variable"
                  },
                  "customAttributeName": {
                    "type": "string",
                    "title": "Attribute"
                  },
                  "__customAttributeName": {
                    "type": "string"
                  },
                  "__customAttributeNameForIdentity": {
                    "type": "string",
                    "enum": [
                      "Unique ID",
                      "User Login",
                      "Common Name",
                      "E-mail Address",
                      "First Name",
                      "Last Name",
                      "Department",
                      "Identity Provider GOID",
                      "Object Identifier",
                      "Expiration Date"
                    ],
                    "default": "Unique ID"
                  },
                  "__multivalued": {
                    "type": "boolean"
                  }
                }
              }
            }
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/IdentityAttributes",
        "locale": "en",
        "content": {
          "indentityProvider.label": "Identity Provider",
          "lookUp.label": "Identity Attributes Properties",
          "customAttributes.label": "Custom Attributes",
          "variableName.label": "Context Variable Name",
          "variablePrefix.label": "Variable Prefix",
          "multiValue.label": "Multivalued",
          "addBtn.label": "User Attribute Mapping",
          "customAttributeName.label": "Attribute",
          "__lookupAttributes.error": "At least one attribute mapping is required",
          "dialog.tile": "Unsupported Attribute",
          "dialog.infotext": "are not supported on",
          "dialog.note": "Would you like to remove it from the list?"
        }
      }
    ]
  },
  {
    "configName": "Include",
    "displayNameFormats": [
      {
        "format": "Include Policy Fragment: {{.policyName}}",
        "condition": "true"
      }
    ],
    "refEntities": [
      {
        "fieldPath": ".policyName",
        "refType": "NAME",
        "entityType": "L7Policy"
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Include Policy Fragment",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/policyName",
            "options": {
              "enum": []
            },
            "i18n": "policyName"
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/Include",
        "locale": "en",
        "content": {
          "policyName.label": "Policy name",
          "policyName.error": "Please select any one policy"
        }
      }
    ]
  },
  {
    "configName": "IndexLookupByItem",
    "displayNameFormats": [
      {
        "format": "Look Up Item by Value: find item {{.valueToSearchForVariableName#variable#expression}} within {{.multivaluedVariableName#variable#expression}}; output index to {{.outputVariableName#variable#expression}}",
        "condition": "not(isNull({{.multivaluedVariableName}}))"
      },
      {
        "format": "Look Up Item by Value",
        "condition": "true"
      }
    ],
    "refVariables": [
      {
        "fieldPath": ".valueToSearchForVariableName",
        "refType": "IN",
        "dataType": "other"
      },
      {
        "fieldPath": ".multivaluedVariableName",
        "refType": "OUT",
        "dataType": "other"
      },
      {
        "fieldPath": ".outputVariableName",
        "refType": "OUT",
        "dataType": "int",
        "multivalued": true,
        "settable": true
      }
    ],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/IndexLookupByItem",
        "title": "Look Up Item by Value",
        "properties": {
          "allowMultipleMatches": {
            "type": "boolean",
            "default": false
          },
          "multivaluedVariableName": {
            "type": "string"
          },
          "outputVariableName": {
            "type": "string"
          },
          "valueToSearchForVariableName": {
            "type": "string"
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Look Up Item by Value",
        "elements": [
          {
            "type": "Group",
            "i18n": "message",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "title",
              "labelColor": "siteTitle"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/valueToSearchForVariableName",
                "i18n": "valueToSearchForVariableName",
                "options": {
                  "markAsRequired": true,
                  "contextVariable": true,
                  "variableType": "input",
                  "allowedDataTypes": []
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/multivaluedVariableName",
                "i18n": "multivaluedVariableName",
                "options": {
                  "markAsRequired": true,
                  "contextVariable": true,
                  "variableType": "input",
                  "allowedDataTypes": []
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/outputVariableName",
                "options": {
                  "markAsRequired": true,
                  "contextVariable": true,
                  "variableType": "output",
                  "allowedDataTypes": []
                },
                "i18n": "outputVariableName"
              }
            ]
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/IndexLookupByItem",
        "locale": "en",
        "content": {
          "valueToSearchForVariableName.label": "Find value of variable named",
          "multivaluedVariableName.label": "Search within multivalued variable named",
          "outputVariableName.label": "Store matching index(es) in variable named",
          "message": "Search a multivalued context variable for the value of a second variable, and save the index number of the match to third variable."
        }
      }
    ]
  },
  {
    "configName": "InverseHttpFormPost",
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/InverseHttpFormPost",
        "title": "Translate MIME to HTTP Form",
        "properties": {
          "fieldNames": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "displayField": {
                  "type": "string",
                  "title": "HTTP Form Fields Names"
                },
                "__mime": {
                  "type": "string"
                }
              }
            }
          }
        }
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/InverseHttpFormPost/Main",
        "title": "Translate MIME to HTTP Form",
        "properties": {
          "InverseHttpFormPost": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/InverseHttpFormPost"
          },
          ".properties": {
            "type": "object",
            "properties": {
              ".enabled": {
                "type": "boolean",
                "default": true
              },
              ".left.comment": {
                "type": "string"
              },
              ".right.comment": {
                "type": "string"
              }
            }
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Translate MIME to HTTP Form",
        "elements": [
          {
            "type": "Group",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "https-group"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/fieldNames",
                "i18n": "fieldNames",
                "options": {
                  "nameValueList": true,
                  "allowReorder": true,
                  "detail": {
                    "type": "VerticalLayout",
                    "elements": [
                      {
                        "type": "Control",
                        "scope": "#/properties/__mime",
                        "i18n": "__mime"
                      }
                    ]
                  }
                }
              }
            ]
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/InverseHttpFormPost",
        "locale": "en",
        "content": {
          "fieldNames.label": "Field Name",
          "__mime.label": "Field Name"
        }
      }
    ]
  },
  {
    "configName": "ItemLookupByIndex",
    "displayNameFormats": [
      {
        "format": "Look Up Item by Index Position: find index {{.indexValue}} within {{.multivaluedVariableName#variable#expression}}; output value to {{.outputVariableName#variable#expression}}",
        "condition": "not(isNull({{.multivaluedVariableName}}))"
      },
      {
        "format": "Look Up Item by Index Position; output value to {{.outputVariableName#variable#expression}}",
        "condition": "true"
      }
    ],
    "refVariables": [
      {
        "fieldPath": ".multivaluedVariableName",
        "refType": "IN",
        "dataType": "other"
      },
      {
        "fieldPath": ".outputVariableName",
        "refType": "OUT",
        "dataType": "int",
        "multivalued": true,
        "settable": true
      }
    ],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/ItemLookupByIndex",
        "title": "Look Up Item by Index Position",
        "properties": {
          "allowMultipleMatches": {
            "type": "boolean",
            "default": false
          },
          "indexValue": {
            "type": "string"
          },
          "multivaluedVariableName": {
            "type": "string"
          },
          "outputVariableName": {
            "type": "string"
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Look Up Item by Index Position",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/indexValue",
            "options": {
              "markAsRequired": true
            },
            "i18n": "indexValue"
          },
          {
            "type": "Group",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "multivar-group"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/multivaluedVariableName",
                "i18n": "multivaluedVariableName"
              }
            ]
          },
          {
            "type": "Control",
            "scope": "#/properties/outputVariableName",
            "options": {
              "markAsRequired": true,
              "contextVariable": true,
              "variableType": "output",
              "allowedDataTypes": []
            },
            "i18n": "outputVariableName"
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/ItemLookupByIndex",
        "locale": "en",
        "content": {
          "indexValue.label": "Extract value with index",
          "multivaluedVariableName.label": "Extract from multivalued variable named",
          "outputVariableName.label": "Store extracted value in variable named",
          "invalidIndex.error": "The index value must either be a number or an interpolated ${variable} that will expand to a number"
        }
      }
    ]
  },
  {
    "configName": "JSONSchema",
    "displayNameFormats": [
      {
        "format": "Validate JSON Schema",
        "condition": "true"
      }
    ],
    "refVariables": [
      {
        "fieldPath": ".",
        "suffix": "jsonschema.failure",
        "refType": "OUT",
        "dataType": "string",
        "multivalued": true
      }
    ],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/JSONSchema",
        "title": "Validate JSON Schema",
        "properties": {
          "jsonSchemaVersion": {
            "type": "string",
            "enum": [
              "DRAFT_V4"
            ],
            "default": "DRAFT_V4"
          },
          "otherTargetMessageVariable": {
            "type": "string"
          },
          "resourceInfo": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/sub-types/assertionResourceInfo"
          },
          "target": {
            "type": "string",
            "enum": [
              "REQUEST",
              "RESPONSE",
              "OTHER"
            ],
            "default": "REQUEST"
          },
          "__schemaLocation": {
            "type": "string",
            "enum": [
              "staticResourceInfo",
              "singleUrlResourceInfo",
              "messageUrlResourceInfo"
            ],
            "default": "staticResourceInfo"
          },
          "__uploadFile": {
            "type": "string"
          },
          "__readURL": {
            "type": "string"
          },
          "__schemaURL": {
            "type": "string"
          },
          "__httpOptions": {
            "type": "string"
          },
          "__schemaApiError": {
            "type": "string"
          }
        }
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/sub-types/assertionResourceInfo",
        "anyOf": [
          {
            "type": "object",
            "properties": {
              "document": {
                "type": "string"
              },
              "originalUrl": {
                "type": "string"
              }
            }
          },
          {
            "type": "object",
            "properties": {
              "url": {
                "type": "string"
              }
            }
          },
          {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              }
            }
          },
          {
            "type": "object",
            "properties": {
              "allowMessagesWithoutUrl": {
                "type": "boolean",
                "default": false
              },
              "urlRegexes": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "regularExpression": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        ]
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/JSONSchema/Main",
        "title": "Validate JSON Schema",
        "properties": {
          "JSONSchema": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/JSONSchema"
          },
          ".properties": {
            "type": "object",
            "properties": {
              ".enabled": {
                "type": "boolean",
                "default": true
              },
              ".left.comment": {
                "type": "string"
              },
              ".right.comment": {
                "type": "string"
              }
            }
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Validate JSON Schema",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/target",
            "i18n": "assertion.common.target",
            "options": {
              "messageTarget": true
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/__schemaLocation",
            "i18n": "__schemaLocation"
          },
          {
            "type": "Control",
            "scope": "#/properties/jsonSchemaVersion",
            "i18n": "jsonSchemaVersion"
          },
          {
            "type": "Control",
            "options": {
              "controlType": "Divider"
            }
          },
          {
            "type": "VerticalLayout",
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/resourceInfo/properties/document",
                "i18n": "document",
                "options": {
                  "validateSchema": true,
                  "schemaType": "json",
                  "allowAutocomplete": true
                }
              }
            ],
            "rule": {
              "effect": "SHOW",
              "condition": {
                "scope": "#/properties/__schemaLocation",
                "schema": {
                  "const": "staticResourceInfo"
                }
              }
            }
          },
          {
            "type": "VerticalLayout",
            "elements": [
              {
                "type": "Group",
                "i18n": "__monitorURLLabel.label",
                "options": {
                  "groupType": "wrapCustomClass",
                  "labelColor": "bodyText",
                  "customClass": "location-options"
                },
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/resourceInfo/properties/url",
                    "i18n": "url",
                    "options": {
                      "markAsRequired": true
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/__httpOptions",
                    "i18n": "__httpOptions.label",
                    "options": {
                      "controlType": "Button",
                      "variant": "outlined",
                      "readonly": true
                    }
                  }
                ]
              }
            ],
            "rule": {
              "effect": "SHOW",
              "condition": {
                "scope": "#/properties/__schemaLocation",
                "schema": {
                  "const": "singleUrlResourceInfo"
                }
              }
            }
          },
          {
            "type": "VerticalLayout",
            "elements": [
              {
                "type": "Group",
                "i18n": "messageUrlLabel.label",
                "options": {
                  "groupType": "wrapCustomClass",
                  "labelColor": "bodyText",
                  "customClass": "location-options",
                  "list": [
                    "messageUrlLabel.listRow1.label",
                    "messageUrlLabel.listRow2.label",
                    "messageUrlLabel.listRow3.label"
                  ]
                },
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/resourceInfo/properties/urlRegexes",
                    "i18n": "urlRegexes",
                    "options": {
                      "nameValueList": true,
                      "detail": {
                        "type": "VerticalLayout",
                        "elements": [
                          {
                            "type": "Control",
                            "scope": "#/properties/regularExpression",
                            "i18n": "regularExpression",
                            "options": {
                              "markAsRequired": true
                            }
                          }
                        ]
                      }
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/resourceInfo/properties/allowMessagesWithoutUrl",
                    "i18n": "allowMessagesWithoutUrl"
                  }
                ]
              }
            ],
            "rule": {
              "effect": "SHOW",
              "condition": {
                "scope": "#/properties/__schemaLocation",
                "schema": {
                  "const": "messageUrlResourceInfo"
                }
              }
            }
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/JSONSchema",
        "locale": "en",
        "content": {
          "__schemaLocation.label": "Schema Location",
          "__schemaLocation.staticResourceInfo": "Configured in advance",
          "__schemaLocation.singleUrlResourceInfo": "Monitor URL for latest value",
          "__schemaLocation.messageUrlResourceInfo": "Retrieve schema URL form Content-Type or Link Header",
          "jsonSchemaVersion.label": "Schema Version",
          "jsonSchemaVersion.DRAFT_V4": "JSON Schema Draft V4",
          "document.label": "Validation Schema",
          "__uploadFile.label": "Upload File",
          "__readURL.label": "Read URL",
          "__schemaURL.label": "Schema URL",
          "__monitorURLLabel.label": "The Gateway will periodically check this URL and download the latest schema.",
          "url.label": "URL to Monitor",
          "__httpOptions.label": "HTTP Options",
          "messageUrlLabel.label": "Fetch if URL schema matches ANY of the following regular expressions. For example:",
          "messageUrlLabel.listRow1.label": "http://.*",
          "messageUrlLabel.listRow2.label": "https://[a-z0-9]+\\.l7tech\\.com/.*",
          "messageUrlLabel.listRow3.label": "http://ssg\\.l7tech\\.com(:\\d+)?/.*",
          "urlRegexes.label": "Regular Expression",
          "allowMessagesWithoutUrl.label": "Skip validation when no schema URL is found",
          "regularExpression.label": "Expression",
          "document.error": "A JSON Schema must be supplied when assertion is configured in advance.",
          "__urlToMonitor.error": "This is not a well formed HTTP(S) URL",
          "__schemaURL.error": "This should be a valid URL",
          "regularExpression.error": "Must be a valid regular expression",
          "urlRegexes.error": "At least one Regular Expression is required."
        }
      }
    ]
  },
  {
    "configName": "JavaScript",
    "displayNameFormats": [
      {
        "format": "Execute JavaScript - {{.name}}",
        "condition": "not(isEmpty({{.name}}))"
      },
      {
        "format": "Execute JavaScript",
        "condition": "isEmpty({{.name}})"
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Execute JavaScript",
        "elements": [
          {
            "type": "Control",
            "i18n": "name",
            "scope": "#/properties/name"
          },
          {
            "type": "Control",
            "label": false,
            "scope": "#/properties/script",
            "options": {
              "codeEditor": true,
              "language": "javascript"
            }
          },
          {
            "type": "Control",
            "i18n": "strictModeEnabled",
            "scope": "#/properties/strictModeEnabled"
          },
          {
            "type": "Group",
            "i18n": "executionTimeout.title",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "JavaScript-timeout-group"
            },
            "elements": [
              {
                "type": "Control",
                "label": false,
                "scope": "#/properties/executionTimeout",
                "rule": {
                  "effect": "SHOW",
                  "condition": {
                    "scope": "#/properties/__timeoutGlobalDefault",
                    "schema": {
                      "const": false
                    }
                  }
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/__timeoutGlobalDefault",
                "i18n": "__timeoutGlobalDefault"
              }
            ]
          }
        ]
      }
    ],
    "configSchemaPatches": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/JavaScript",
        "patches": [
          {
            "op": "add",
            "path": "/properties/__timeoutGlobalDefault",
            "value": {
              "type": "boolean",
              "default": false
            }
          }
        ]
      }
    ],
    "configDataPatches": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/JavaScript#BeforeEdit",
        "patches": [
          {
            "op": "test",
            "path": "/executionTimeout",
            "value": ""
          },
          {
            "op": "add",
            "path": "/__timeoutGlobalDefault",
            "value": true
          }
        ]
      },
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/JavaScript#AfterEdit",
        "patches": [
          {
            "op": "test",
            "path": "/__timeoutGlobalDefault",
            "value": true
          },
          {
            "op": "replace",
            "path": "/executionTimeout",
            "value": ""
          }
        ]
      },
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/JavaScript#AfterEdit",
        "patches": [
          {
            "op": "remove",
            "path": "/__timeoutGlobalDefault"
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "JavaScript/Main",
        "locale": "en",
        "content": {
          "name.label": "Script Name",
          "strictModeEnabled.label": "Strict mode",
          "executionTimeout.title": "Execution Timeout (ms)",
          "__timeoutGlobalDefault.label": "Use global default",
          "invalid_script_name.error": "Must contains only alphanumeric and underscore.",
          "invalid_timeout.error": "Must be a positive number or use context variables."
        }
      }
    ]
  },
  {
    "configName": "JdbcQuery",
    "displayNameFormats": [
      {
        "format": "Perform JDBC Query",
        "condition": "or(isEmpty({{.queryName}}), isNull({{.queryName}}))"
      },
      {
        "format": "Perform JDBC Query - {{.queryName}}",
        "condition": "true"
      }
    ],
    "refVariables": [
      {
        "fieldPath": ".variableName",
        "refType": "OUT",
        "dataType": "other",
        "prefixed": true
      },
      {
        "fieldPath": ".variablePrefix",
        "refType": "OUT",
        "dataType": "other",
        "prefixed": true
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".queryresult.count",
        "refType": "OUT",
        "dataType": "int"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".xmlResult",
        "refType": "OUT",
        "dataType": "string",
        "condition": "{{.generateXmlResult}}"
      },
      {
        "fieldPath": ".variablePrefix",
        "secondaryFieldPath": ".namingMap",
        "refType": "OUT",
        "dataType": "string",
        "multivalued": true,
        "condition": "{{.saveResultsAsContextVariables}}"
      }
    ],
    "refEntities": [
      {
        "fieldPath": ".connectionName",
        "refType": "NAME",
        "entityType": "JdbcConnection"
      }
    ],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/JdbcQuery",
        "title": "Perform JDBC Query",
        "properties": {
          "assertionFailureEnabled": {
            "type": "boolean",
            "default": true
          },
          "connectionName": {
            "type": "string"
          },
          "convertVariablesToStrings": {
            "type": "boolean",
            "default": true
          },
          "generateXmlResult": {
            "type": "boolean",
            "default": false
          },
          "maxRecords": {
            "type": "integer"
          },
          "namingMap": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "columnLabel": {
                  "type": "string"
                },
                "variableName": {
                  "type": "string"
                }
              }
            }
          },
          "queryName": {
            "type": "string"
          },
          "queryTimeout": {
            "type": "string"
          },
          "__inlineAlerts": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "resolveAsObjectList": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "saveResultsAsContextVariables": {
            "type": "boolean",
            "default": true
          },
          "specifySchema": {
            "type": "boolean"
          },
          "schema": {
            "type": "string"
          },
          "sqlQuery": {
            "type": "string"
          },
          "variablePrefix": {
            "type": "string"
          },
          "__test": {
            "type": "string"
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Perform JDBC Query",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/connectionName",
            "options": {
              "autocomplete": true,
              "defaultOptions": [],
              "allowUserProvidedInput": false
            },
            "i18n": "connectionName"
          },
          {
            "type": "Group",
            "label": "SQL Query",
            "isExpanded": true,
            "options": {
              "groupType": "Accordion"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/convertVariablesToStrings",
                "i18n": "convertVariablesToStrings"
              },
              {
                "type": "Control",
                "scope": "#/properties/queryTimeout",
                "i18n": "queryTimeout"
              },
              {
                "type": "Control",
                "scope": "#/properties/__inlineAlerts",
                "options": {
                  "inlineAlerts": "warning"
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/sqlQuery",
                "i18n": "query",
                "options": {
                  "multiline": true,
                  "rows": 5,
                  "markAsRequired": true
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/__test",
                "i18n": "test",
                "options": {
                  "controlType": "Button",
                  "variant": "outlined"
                },
                "rule": {
                  "effect": "DISABLE",
                  "condition": {
                    "scope": "#/properties/sqlQuery",
                    "schema": {
                      "maxLength": 0
                    }
                  }
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/specifySchema",
                "i18n": "specifySchema",
                "options": {
                  "readonly": true
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/schema",
                "i18n": "schema",
                "options": {
                  "markAsRequired": true
                },
                "rule": {
                  "effect": "SHOW",
                  "condition": {
                    "scope": "#/properties/specifySchema",
                    "schema": {
                      "const": true
                    }
                  }
                }
              }
            ]
          },
          {
            "type": "Group",
            "label": "Context Variable Naming",
            "isExpanded": true,
            "options": {
              "groupType": "Accordion"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/saveResultsAsContextVariables",
                "i18n": "saveResultsToContextVariables"
              },
              {
                "type": "Control",
                "scope": "#/properties/variablePrefix",
                "i18n": "prefix",
                "options": {
                  "markAsRequired": true,
                  "contextVariable": true,
                  "variableType": "output",
                  "allowedDataTypes": []
                }
              },
              {
                "type": "Group",
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/namingMap",
                    "i18n": "addVariable",
                    "options": {
                      "nameValueList": true,
                      "detail": {
                        "type": "VerticalLayout",
                        "elements": [
                          {
                            "type": "Control",
                            "scope": "#/properties/columnLabel",
                            "i18n": "namingMap.columnLabel",
                            "options": {
                              "markAsRequired": true
                            }
                          },
                          {
                            "type": "Control",
                            "scope": "#/properties/variableName",
                            "i18n": "namingMap.variableName",
                            "options": {
                              "prefixInputText": "",
                              "contextVariable": true,
                              "variableType": "output",
                              "allowedDataTypes": []
                            }
                          }
                        ]
                      }
                    },
                    "rule": {
                      "effect": "HIDE",
                      "condition": {
                        "scope": "#/properties/saveResultsAsContextVariables",
                        "schema": {
                          "const": false
                        }
                      }
                    }
                  }
                ]
              }
            ]
          },
          {
            "type": "Group",
            "label": "Other Settings",
            "isExpanded": true,
            "options": {
              "groupType": "Accordion"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/queryName",
                "i18n": "queryName"
              },
              {
                "type": "Control",
                "scope": "#/properties/maxRecords",
                "i18n": "maximumNumberOfRecordsReturned",
                "options": {
                  "markAsRequired": true
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/assertionFailureEnabled",
                "i18n": "failAssertionIfNoResult"
              },
              {
                "type": "Control",
                "scope": "#/properties/generateXmlResult",
                "i18n": "generateXMLResult"
              }
            ]
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/JdbcQuery",
        "locale": "en",
        "content": {
          "connectionName.label": "JDBC Connection",
          "convertVariablesToStrings.label": "Convert Variables to Strings",
          "queryTimeout.label": "Query Timeout (seconds)",
          "useOfNonSelectQueryWarning.warning": "Use of non-select queries may destroy data or the database",
          "query.label": "Query",
          "test.label": "Test",
          "specifySchema.label": "Specify Schema",
          "schema.label": "Schema",
          "saveResultsToContextVariables.label": "Save results to context variables",
          "prefix.label": "Prefix",
          "addVariable.label": "Variable",
          "queryName.label": "Query Name (GUI use only)",
          "maximumNumberOfRecordsReturned.label": "Maximum Number of Records Returned",
          "failAssertionIfNoResult.label": "Fail assertion if there are no results returned by the query",
          "generateXMLResult.label": "Generate XML result",
          "maximumNumberOfRecordsReturned.error": "Maximum Number of Records must be a number between 1 and 2147483647",
          "queryTimeout.error": "Query Timeout must be a single variable reference or a valid integer >= 0",
          "namingMap.columnLabel": "Column Label",
          "namingMap.variableName": "Variable Name",
          "test": "Test",
          "test-query-modal.title": "Warning",
          "test-query-modal.non-select-query": "A non-select query could irrevocably destroy data or the database.",
          "test-query-modal.cannot-undone": "This cannot be undone.",
          "test-query-modal.checkbox-label": "Check this box to continue with the test",
          "test-query-modal.cancel-button": "Cancel",
          "test-query-modal.test-button": "Test",
          "query-testing-passed": "Query testing passed!",
          "query-testing-failed": "Query testing failed",
          "column-label.error": "Column Label should not be duplicate",
          "variableName.error_text": "Must start with a letter or underscore. May contain letters, digits, periods, dashes, or underscores."
        }
      }
    ]
  },
  {
    "configName": "JmsRouting",
    "displayNameFormats": [
      {
        "format": "Route via JMS Queue {{.endpointName}}",
        "condition": "not(isNull({{.endpointName}}))"
      },
      {
        "format": "Route via JMS Queue",
        "condition": "true"
      }
    ],
    "refEntities": [
      {
        "fieldPath": ".endpointOid",
        "refType": "GOID",
        "entityType": "JmsDestination"
      }
    ],
    "refVariables": [
      {
        "fieldPath": ".responseTarget.otherTargetMessageVariable",
        "refType": "OUT",
        "dataType": "string"
      }
    ],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/JmsRouting",
        "title": "Route via JMS",
        "properties": {
          "endpointName": {
            "type": "string"
          },
          "endpointOid": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/sub-types/goid"
          },
          "__destinationName": {
            "type": "string"
          },
          "__template": {
            "type": "boolean"
          },
          "attachSamlSenderVouches": {
            "type": "boolean",
            "default": false
          },
          "__attachSamlSenderVouches": {
            "type": "string",
            "enum": [
              "None (Anonymous)",
              "Attach SAML Sender-Vouches"
            ],
            "default": "None (Anonymous)"
          },
          "currentSecurityHeaderHandling": {
            "type": "integer",
            "default": 0,
            "enum": [
              3,
              1,
              0
            ]
          },
          "dynamicJmsRoutingProperties": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/sub-types/jmsDynamicProperties"
          },
          "recipientContext": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/sub-types/xmlSecurityRecipientContext"
          },
          "__requestSetting": {
            "type": "boolean",
            "default": false
          },
          "requestDeliveryMode": {
            "type": "string",
            "enum": [
              "PERSISTENT",
              "NON_PERSISTENT"
            ],
            "default": "PERSISTENT"
          },
          "requestJmsMessagePropertyRuleSet": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/sub-types/jmsMessagePropertyRuleSet"
          },
          "requestPriority": {
            "type": "string"
          },
          "requestTarget": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/sub-types/messageTargetableSupport"
          },
          "requestTimeToLive": {
            "type": "string"
          },
          "responseJmsMessagePropertyRuleSet": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/sub-types/jmsMessagePropertyRuleSet"
          },
          "__passThruAllRequest": {
            "type": "string",
            "enum": [
              "Pass through all JMS message properties",
              "Customize JMS message properties to forward"
            ],
            "default": "Pass through all JMS message properties"
          },
          "__passThruAllResponse": {
            "type": "string",
            "enum": [
              "Pass through all JMS message properties",
              "Customize JMS message properties to forward"
            ],
            "default": "Pass through all JMS message properties"
          },
          "__responseSize": {
            "type": "boolean",
            "default": false
          },
          "__responseSizeVal": {
            "type": "string",
            "enum": [
              "Allow unlimited message size (not recommended)",
              "Restrict messages to (bytes)"
            ],
            "default": "Restrict messages to (bytes)"
          },
          "responseSize": {
            "type": "string"
          },
          "responseTarget": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/sub-types/messageTargetableSupport"
          },
          "__responseTarget": {
            "type": "string",
            "enum": [
              "Default Response",
              "Save as context variable"
            ],
            "default": "Default Response"
          },
          "responseTimeout": {
            "type": "string"
          },
          "samlAssertionExpiry": {
            "type": "integer"
          },
          "samlAssertionVersion": {
            "type": "string",
            "enum": [
              "1.1",
              "2.0"
            ],
            "default": "2.0"
          },
          "useThumbprintInSamlSignature": {
            "type": "boolean",
            "default": false
          },
          "useThumbprintInSamlSubject": {
            "type": "boolean",
            "default": false
          },
          "xmlSecurityActorToPromote": {
            "type": "string"
          },
          "__newDestinationButton": {
            "type": "string"
          },
          "__selectedDestination": {
            "type": "object"
          }
        }
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/sub-types/jmsDynamicProperties",
        "properties": {
          "destPassword": {
            "type": "string"
          },
          "destQName": {
            "type": "string"
          },
          "destUserName": {
            "type": "string"
          },
          "icfName": {
            "type": "string"
          },
          "jndiPassword": {
            "type": "string"
          },
          "jndiUrl": {
            "type": "string"
          },
          "jndiUserName": {
            "type": "string"
          },
          "qcfName": {
            "type": "string"
          },
          "replytoQName": {
            "type": "string"
          }
        }
      },
      {
        "type": "string",
        "$id": "https://l7tech.com/2025/json-schema/assertions/sub-types/goid",
        "properties": {
          "id": {
            "type": "string"
          }
        }
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/sub-types/xmlSecurityRecipientContext",
        "properties": {
          "actor": {
            "type": "string"
          },
          "base64edX509Certificate": {
            "type": "string"
          }
        }
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/sub-types/jmsMessagePropertyRuleSet",
        "properties": {
          "passThruAll": {
            "type": "boolean",
            "default": true
          },
          "rules": {
            "type": "array",
            "items": {
              "$ref": "https://l7tech.com/2025/json-schema/assertions/sub-types/jmsMessagePropertyRule"
            }
          }
        }
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/sub-types/jmsMessagePropertyRule",
        "properties": {
          "name": {
            "type": "string"
          },
          "customPattern": {
            "type": "string"
          },
          "passThru": {
            "type": "boolean",
            "default": false
          },
          "__valueType": {
            "type": "string",
            "enum": [
              "Pass through original value",
              "Customize value"
            ],
            "default": "Pass through original value"
          }
        }
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/sub-types/messageTargetableSupport",
        "properties": {
          "otherTargetMessageVariable": {
            "type": "string"
          },
          "sourceUsedByGateway": {
            "type": "boolean",
            "default": true
          },
          "target": {
            "type": "string",
            "enum": [
              "REQUEST",
              "RESPONSE",
              "OTHER"
            ],
            "default": "REQUEST"
          },
          "targetModifiedByGateway": {
            "type": "boolean",
            "default": false
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Route via JMS",
        "elements": [
          {
            "type": "Group",
            "label": "Target",
            "isExpanded": true,
            "options": {
              "groupType": "Accordion"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/__destinationName",
                "i18n": "destinationName",
                "options": {
                  "defaultOptions": []
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/__newDestinationButton",
                "i18n": "newDestinationButton.label",
                "options": {
                  "controlType": "Button",
                  "variant": "outlined",
                  "readonly": true
                }
              },
              {
                "type": "Group",
                "i18n": "dynamicProperties",
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/dynamicJmsRoutingProperties/properties/icfName",
                    "i18n": "icfName",
                    "options": {
                      "markAsRequired": true
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/dynamicJmsRoutingProperties/properties/jndiUrl",
                    "i18n": "jndiUrl",
                    "options": {
                      "markAsRequired": true
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/dynamicJmsRoutingProperties/properties/jndiUserName",
                    "i18n": "jndiUsername",
                    "options": {
                      "markAsRequired": true
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/dynamicJmsRoutingProperties/properties/jndiPassword",
                    "i18n": "jndiPassword",
                    "options": {
                      "format": "password",
                      "markAsRequired": true
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/dynamicJmsRoutingProperties/properties/qcfName",
                    "i18n": "qcfName",
                    "options": {
                      "markAsRequired": true
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/dynamicJmsRoutingProperties/properties/destQName",
                    "i18n": "destQName",
                    "options": {
                      "markAsRequired": true
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/dynamicJmsRoutingProperties/properties/destUserName",
                    "i18n": "destUserName",
                    "options": {
                      "markAsRequired": true
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/dynamicJmsRoutingProperties/properties/destPassword",
                    "i18n": "destPassword",
                    "options": {
                      "format": "password",
                      "markAsRequired": true
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/dynamicJmsRoutingProperties/properties/replytoQName",
                    "i18n": "replytoQName",
                    "options": {
                      "markAsRequired": true,
                      "readonly": true
                    }
                  }
                ],
                "rule": {
                  "effect": "SHOW",
                  "condition": {
                    "scope": "#/properties/__template",
                    "schema": {
                      "const": true
                    }
                  }
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/responseTimeout",
                "i18n": "responseTimeout",
                "description": "test"
              }
            ]
          },
          {
            "type": "Group",
            "label": "Security",
            "options": {
              "groupType": "Accordion"
            },
            "elements": [
              {
                "type": "Group",
                "i18n": "serviceAuthentication",
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/__attachSamlSenderVouches",
                    "i18n": "attachSamlSenderVouches",
                    "label": false,
                    "options": {
                      "format": "radio",
                      "direction": "column",
                      "useRowLayout": false
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/samlAssertionExpiry",
                    "i18n": "samlAssertionExpiry",
                    "options": {
                      "markAsRequired": true
                    },
                    "rule": {
                      "effect": "SHOW",
                      "condition": {
                        "scope": "#/properties/__attachSamlSenderVouches",
                        "schema": {
                          "const": "Attach SAML Sender-Vouches"
                        }
                      }
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/samlAssertionVersion",
                    "i18n": "samlAssertionVersion",
                    "options": {
                      "markAsRequired": true
                    },
                    "rule": {
                      "effect": "SHOW",
                      "condition": {
                        "scope": "#/properties/__attachSamlSenderVouches",
                        "schema": {
                          "const": "Attach SAML Sender-Vouches"
                        }
                      }
                    }
                  }
                ]
              },
              {
                "type": "Group",
                "i18n": "currentSecurityHeaderHandlingHeader",
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/currentSecurityHeaderHandling",
                    "i18n": "currentSecurityHeaderHandling",
                    "label": false,
                    "options": {
                      "wssSecurityHeaderHandling": true
                    }
                  }
                ]
              }
            ]
          },
          {
            "type": "Group",
            "label": "Request",
            "options": {
              "groupType": "Accordion"
            },
            "elements": [
              {
                "type": "Group",
                "options": {
                  "groupType": "wrapCustomClass",
                  "customClass": "request-group"
                },
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/requestTarget/properties/target",
                    "i18n": "target"
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/requestTarget/properties/otherTargetMessageVariable",
                    "i18n": "otherTargetMessageVariable",
                    "options": {
                      "required": true,
                      "customClass": "common-conditional-field",
                      "markAsRequired": true,
                      "contextVariable": true,
                      "variableType": "input",
                      "allowedDataTypes": []
                    },
                    "rule": {
                      "effect": "SHOW",
                      "condition": {
                        "scope": "#/properties/requestTarget/properties/target",
                        "schema": {
                          "const": "OTHER"
                        }
                      }
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/__requestSetting",
                    "i18n": "requestSetting",
                    "options": {
                      "format": "checkbox"
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/requestDeliveryMode",
                    "i18n": "requestDeliveryMode",
                    "options": {
                      "markAsRequired": true
                    },
                    "rule": {
                      "effect": "SHOW",
                      "condition": {
                        "scope": "#/properties/__requestSetting",
                        "schema": {
                          "const": true
                        }
                      }
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/requestPriority",
                    "i18n": "requestPriority",
                    "options": {
                      "markAsRequired": true
                    },
                    "rule": {
                      "effect": "SHOW",
                      "condition": {
                        "scope": "#/properties/__requestSetting",
                        "schema": {
                          "const": true
                        }
                      }
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/requestTimeToLive",
                    "i18n": "requestTimeToLive",
                    "options": {
                      "markAsRequired": true
                    },
                    "rule": {
                      "effect": "SHOW",
                      "condition": {
                        "scope": "#/properties/__requestSetting",
                        "schema": {
                          "const": true
                        }
                      }
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/__passThruAllRequest",
                    "i18n": "passThruAllRequest",
                    "label": false,
                    "options": {
                      "format": "radio",
                      "direction": "column",
                      "useRowLayout": false
                    }
                  },
                  {
                    "type": "Group",
                    "i18n": "messageProperties",
                    "rule": {
                      "effect": "SHOW",
                      "condition": {
                        "scope": "#/properties/__passThruAllRequest",
                        "schema": {
                          "const": "Customize JMS message properties to forward"
                        }
                      }
                    },
                    "elements": [
                      {
                        "type": "Control",
                        "scope": "#/properties/requestJmsMessagePropertyRuleSet/properties/rules",
                        "i18n": "jmsMessagePropertySetting",
                        "options": {
                          "nameValueList": true,
                          "detail": {
                            "type": "VerticalLayout",
                            "elements": [
                              {
                                "type": "Control",
                                "scope": "#/properties/name",
                                "i18n": "propertyName",
                                "options": {
                                  "markAsRequired": true
                                }
                              },
                              {
                                "type": "Control",
                                "scope": "#/properties/__valueType",
                                "i18n": "valueType",
                                "label": false,
                                "options": {
                                  "format": "radio",
                                  "useRowLayout": false
                                }
                              },
                              {
                                "type": "Control",
                                "scope": "#/properties/customPattern",
                                "label": false,
                                "options": {
                                  "markAsRequired": true
                                },
                                "rule": {
                                  "effect": "SHOW",
                                  "condition": {
                                    "scope": "#/properties/__valueType",
                                    "schema": {
                                      "const": "Customize value"
                                    }
                                  }
                                }
                              }
                            ]
                          }
                        }
                      }
                    ]
                  }
                ]
              }
            ]
          },
          {
            "type": "Group",
            "label": "Response",
            "options": {
              "groupType": "Accordion"
            },
            "elements": [
              {
                "type": "Group",
                "options": {
                  "groupType": "wrapCustomClass",
                  "customClass": "request-group"
                },
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/__responseTarget",
                    "i18n": "responseTarget",
                    "options": {
                      "format": "radio",
                      "direction": "column",
                      "useRowLayout": false
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/responseTarget/properties/otherTargetMessageVariable",
                    "i18n": "assertion.requestTarget.otherTargetMessageVariable",
                    "options": {
                      "required": true,
                      "customClass": "common-conditional-field",
                      "markAsRequired": true,
                      "contextVariable": true,
                      "variableType": "output",
                      "allowedDataTypes": []
                    },
                    "rule": {
                      "effect": "SHOW",
                      "condition": {
                        "scope": "#/properties/__responseTarget",
                        "schema": {
                          "const": "Save as context variable"
                        }
                      }
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/__responseSize",
                    "i18n": "responseSize",
                    "options": {
                      "format": "checkbox",
                      "direction": "column",
                      "useRowLayout": false
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/__responseSizeVal",
                    "i18n": "responseSizeVal",
                    "label": false,
                    "options": {
                      "format": "radio",
                      "direction": "column",
                      "useRowLayout": false
                    },
                    "rule": {
                      "effect": "SHOW",
                      "condition": {
                        "scope": "#/properties/__responseSize",
                        "schema": {
                          "const": true
                        }
                      }
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/responseSize",
                    "label": false,
                    "options": {
                      "markAsRequired": true,
                      "customClass": "common-conditional-field"
                    },
                    "rule": {
                      "effect": "SHOW",
                      "condition": {
                        "schema": {
                          "allOf": [
                            {
                              "properties": {
                                "__responseSizeVal": {
                                  "const": "Restrict messages to (bytes)"
                                }
                              },
                              "required": [
                                "__responseSizeVal"
                              ]
                            },
                            {
                              "properties": {
                                "__responseSize": {
                                  "const": true
                                }
                              },
                              "required": [
                                "__responseSize"
                              ]
                            }
                          ]
                        }
                      }
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/__passThruAllResponse",
                    "i18n": "passThruAllResponse",
                    "label": false,
                    "options": {
                      "format": "radio",
                      "direction": "column",
                      "useRowLayout": false
                    }
                  },
                  {
                    "type": "Group",
                    "i18n": "messageProperties",
                    "rule": {
                      "effect": "SHOW",
                      "condition": {
                        "scope": "#/properties/__passThruAllResponse",
                        "schema": {
                          "const": "Customize JMS message properties to forward"
                        }
                      }
                    },
                    "elements": [
                      {
                        "type": "Control",
                        "scope": "#/properties/responseJmsMessagePropertyRuleSet/properties/rules",
                        "i18n": "jmsMessagePropertySetting",
                        "options": {
                          "nameValueList": true,
                          "detail": {
                            "type": "VerticalLayout",
                            "elements": [
                              {
                                "type": "Control",
                                "scope": "#/properties/name",
                                "i18n": "propertyName",
                                "options": {
                                  "markAsRequired": true
                                }
                              },
                              {
                                "type": "Control",
                                "scope": "#/properties/__valueType",
                                "label": false,
                                "options": {
                                  "format": "radio",
                                  "useRowLayout": false
                                }
                              },
                              {
                                "type": "Control",
                                "scope": "#/properties/customPattern",
                                "label": false,
                                "options": {
                                  "markAsRequired": true
                                },
                                "rule": {
                                  "effect": "SHOW",
                                  "condition": {
                                    "scope": "#/properties/__valueType",
                                    "schema": {
                                      "const": "Customize value"
                                    }
                                  }
                                }
                              }
                            ]
                          }
                        }
                      }
                    ]
                  }
                ]
              }
            ]
          },
          {
            "type": "Group",
            "label": "WS-Security Recipient",
            "options": {
              "groupType": "ShowHide"
            },
            "elements": [
              {
                "type": "Control",
                "options": {
                  "wssRecipient": true
                }
              }
            ]
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/JmsRouting",
        "locale": "en",
        "content": {
          "destinationName.label": "JMS Destination",
          "dynamicProperties.label": "Dynamic Properties",
          "icfName.label": "Initial Context Factory Class Name",
          "jndiUrl.label": "JNDI URL",
          "jndiUsername.label": "JNDI Username",
          "jndiPassword.label": "JNDI Password",
          "qcfName.label": "Connection Factory Name",
          "destQName.label": "Destination Name",
          "destUserName.label": "Destination Username",
          "destPassword.label": "Destination Password",
          "replytoQName.label": "Wait For Reply On Specified Queue",
          "responseTimeout.label": "JMS Response Timeout",
          "samlAssertionExpiry.label": "Ticket Expiry (in minutes)",
          "samlAssertionVersion.label": "SAML Version",
          "serviceAuthentication.label": "Service Authentication",
          "currentSecurityHeaderHandlingHeader.label": "Current WSS Header Handling",
          "requestMessageProperties.label": "Request Message Properties",
          "target.label": "Message Source",
          "target.REQUEST": "Request",
          "target.RESPONSE": "Response",
          "target.OTHER": "Other",
          "otherTargetMessageVariable.label": "Context Variable",
          "requestSetting.label": "Use request settings",
          "requestDeliveryMode.label": "Delivery Mode",
          "requestDeliveryMode.PERSISTENT": "Persistent",
          "requestDeliveryMode.NON_PERSISTENT": "Non-Persistent",
          "valueType.Pass through original value": "Pass through original value",
          "valueType.Customize value": "Customize value",
          "requestPriority.label": "Priority",
          "requestTimeToLive.label": "Time to Live",
          "jmsMessagePropertySetting.label": "Message Property",
          "propertyName.label": "Property name",
          "responseTarget.label": "Message Destination",
          "responseTarget.Default Response": "Default Response",
          "responseTarget.Save as context variable": "Save as context variable",
          "attachSamlSenderVouches.None (Anonymous)": "None (Anonymous)",
          "attachSamlSenderVouches.Attach SAML Sender-Vouches": "Attach SAML Sender-Vouches",
          "responseMessageProperty.label": "Response Message Properties",
          "responseSize.label": "Override maximum message size",
          "newDestinationButton.label": "New Destination",
          "samlAssertionExpiry.error": "Ticket expiry must be a number between 1 and 120",
          "requestPriority.error": "The priority field must be a number between 0 and 9",
          "requestTimeToLive.error": "The time to live field must be a number between 0 and 9223372036854775807",
          "otherTargetMessageVariable.error": "Invalid Syntax",
          "responseSize.error": "The restrict messages to (bytes) field must contain a context variable and/ or an integer",
          "responseTimeout.error": "The value for the response timeout must be valid postive number, contain one context variable, or empty",
          "passThruAllResponse.Pass through all JMS message properties": "Pass through all JMS message properties",
          "passThruAllResponse.Customize JMS message properties to forward": "Customize JMS message properties to forward",
          "passThruAllRequest.Pass through all JMS message properties": "Pass through all JMS message properties",
          "passThruAllRequest.Customize JMS message properties to forward": "Customize JMS message properties to forward",
          "responseSizeVal.Allow unlimited message size (not recommended)": "Allow unlimited message size (not recommended)",
          "responseSizeVal.Restrict messages to (bytes)": "Restrict messages to (bytes)",
          "messageProperties.label": "Message Properties",
          "passThruAllRequest.label": "Request Message Properties",
          "passThruAllResponse.label": "Response Message Properties"
        }
      }
    ]
  },
  {
    "configName": "Join",
    "displayNameFormats": [
      {
        "format": "Join variable {{.inputVariable}} into {{.outputVariable}} using \"{{.joinSubstring}}\"",
        "condition": "and(not(isNull({{.inputVariable}})),not(isNull({{.outputVariable}})))"
      }
    ],
    "refVariables": [
      {
        "fieldPath": ".inputVariable",
        "refType": "IN",
        "dataType": "other"
      },
      {
        "fieldPath": ".outputVariable",
        "refType": "OUT",
        "dataType": "string",
        "settable": true
      }
    ],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/Join",
        "title": "Join Variable",
        "properties": {
          "inputVariable": {
            "type": "string"
          },
          "joinSubstring": {
            "type": "string"
          },
          "outputVariable": {
            "type": "string"
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Join Variable",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/inputVariable",
            "options": {
              "markAsRequired": true
            },
            "i18n": "inputVariable"
          },
          {
            "type": "Control",
            "scope": "#/properties/outputVariable",
            "options": {
              "markAsRequired": true,
              "contextVariable": true,
              "variableType": "output",
              "allowedDataTypes": []
            },
            "i18n": "outputVariable"
          },
          {
            "type": "Control",
            "scope": "#/properties/joinSubstring",
            "i18n": "joinSubstring"
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/Join",
        "locale": "en",
        "content": {
          "inputVariable.label": "Source Variable",
          "outputVariable.label": "Target Variable",
          "joinSubstring.label": "Join String"
        }
      }
    ]
  },
  {
    "configName": "JsonDocumentStructure",
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/JsonDocumentStructure",
        "title": "Protect Against JSON Document Structure Threats",
        "properties": {
          "checkArrayEntryCount": {
            "type": "boolean",
            "default": false
          },
          "checkContainerDepth": {
            "type": "boolean",
            "default": true
          },
          "checkEntryNameLength": {
            "type": "boolean",
            "default": false
          },
          "checkObjectEntryCount": {
            "type": "boolean",
            "default": false
          },
          "checkStringValueLength": {
            "type": "boolean",
            "default": false
          },
          "maxArrayEntryCount": {
            "type": "integer"
          },
          "maxContainerDepth": {
            "type": "integer"
          },
          "maxEntryNameLength": {
            "type": "integer"
          },
          "maxObjectEntryCount": {
            "type": "integer"
          },
          "maxStringValueLength": {
            "type": "integer"
          },
          "otherTargetMessageVariable": {
            "type": "string"
          },
          "target": {
            "type": "string",
            "enum": [
              "REQUEST",
              "RESPONSE",
              "OTHER"
            ],
            "default": "REQUEST"
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Protect Against JSON Document Structure Threats",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/target",
            "options": {
              "messageTarget": true,
              "otherTargetMessageVariableLabel": "assertion.common.target.otherTargetContextVariable"
            }
          },
          {
            "type": "Group",
            "i18n": "title",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "reject-if-text",
              "labelColor": "siteTitle"
            },
            "elements": [
              {
                "type": "Group",
                "options": {
                  "groupType": "wrapCustomClass",
                  "customClass": "json-document-group"
                },
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/checkContainerDepth",
                    "i18n": "checkContainerDepth",
                    "options": {
                      "subUiSchema": {
                        "type": "VerticalLayout",
                        "elements": [
                          {
                            "type": "Control",
                            "scope": "#/properties/maxContainerDepth",
                            "i18n": "checkContainerDepth",
                            "options": {
                              "markAsRequired": true
                            }
                          }
                        ]
                      }
                    }
                  }
                ]
              },
              {
                "type": "Group",
                "options": {
                  "groupType": "wrapCustomClass",
                  "customClass": "json-document-group"
                },
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/checkObjectEntryCount",
                    "i18n": "checkObjectEntryCount",
                    "options": {
                      "subUiSchema": {
                        "type": "VerticalLayout",
                        "elements": [
                          {
                            "type": "Control",
                            "scope": "#/properties/maxObjectEntryCount",
                            "i18n": "checkObjectEntryCount",
                            "options": {
                              "markAsRequired": true
                            }
                          }
                        ]
                      }
                    }
                  }
                ]
              },
              {
                "type": "Group",
                "options": {
                  "groupType": "wrapCustomClass",
                  "customClass": "json-document-group"
                },
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/checkArrayEntryCount",
                    "i18n": "checkArrayEntryCount",
                    "options": {
                      "subUiSchema": {
                        "type": "VerticalLayout",
                        "elements": [
                          {
                            "type": "Control",
                            "scope": "#/properties/maxArrayEntryCount",
                            "i18n": "checkArrayEntryCount",
                            "options": {
                              "markAsRequired": true
                            }
                          }
                        ]
                      }
                    }
                  }
                ]
              },
              {
                "type": "Group",
                "options": {
                  "groupType": "wrapCustomClass",
                  "customClass": "json-document-group"
                },
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/checkEntryNameLength",
                    "i18n": "checkEntryNameLength",
                    "options": {
                      "subUiSchema": {
                        "type": "VerticalLayout",
                        "elements": [
                          {
                            "type": "Control",
                            "scope": "#/properties/maxEntryNameLength",
                            "i18n": "checkEntryNameLength",
                            "options": {
                              "markAsRequired": true
                            }
                          }
                        ]
                      }
                    }
                  }
                ]
              },
              {
                "type": "Group",
                "options": {
                  "groupType": "wrapCustomClass",
                  "customClass": "json-document-group"
                },
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/checkStringValueLength",
                    "i18n": "checkStringValueLength",
                    "options": {
                      "subUiSchema": {
                        "type": "VerticalLayout",
                        "elements": [
                          {
                            "type": "Control",
                            "scope": "#/properties/maxStringValueLength",
                            "i18n": "checkStringValueLength",
                            "options": {
                              "markAsRequired": true
                            }
                          }
                        ]
                      }
                    }
                  }
                ]
              }
            ]
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/JsonDocumentStructure",
        "locale": "en",
        "content": {
          "target.label": "Message Target",
          "target.REQUEST": "Request",
          "target.RESPONSE": "Response",
          "target.OTHER": "Other",
          "Other.label": "Context Variable",
          "title": "Reject if Following JSON Structure Limits Are Exceeded.",
          "checkContainerDepth.label": "Container Depth (Levels)",
          "checkObjectEntryCount.label": "Object Entry Count",
          "checkArrayEntryCount.label": "Array Entry Count",
          "checkEntryNameLength.label": "Entry Name Length (Characters)",
          "checkStringValueLength.label": "String Value Length (Characters)",
          "checkContainerDepth.error": "The container depth field must be a number between 0 and 30.",
          "maxObjectEntryCount.error": "The object entry count field must be a number between 0 and 2147483647.",
          "maxArrayNameLength.error": "The array entry count field must be a number between 0 and 2147483647.",
          "maxStringValueLength.error": "The string entry count field must be a number between 0 and 2147483647.",
          "maxEntryNameLength.error": "The entry name length field must be a number between 0 and 256."
        }
      }
    ]
  },
  {
    "configName": "JsonTransformation",
    "refVariables": [
      {
        "fieldPath": ".destinationMessageTarget.__otherTarget",
        "refType": "OUT",
        "dataType": "other"
      },
      {
        "fieldPath": ".destinationMessageTarget.target",
        "refType": "OUT",
        "dataType": "other"
      }
    ],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/JsonTransformation",
        "title": "Apply JSON Transformation",
        "properties": {
          "arrayForm": {
            "type": "boolean",
            "default": false
          },
          "convention": {
            "type": "string",
            "enum": [
              "STANDARD",
              "JSONML"
            ],
            "default": "STANDARD"
          },
          "destinationMessageTarget": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/sub-types/messageTargetableSupport"
          },
          "otherTargetMessageVariable": {
            "type": "string"
          },
          "prettyPrint": {
            "type": "boolean",
            "default": false
          },
          "rootTagString": {
            "type": "string"
          },
          "target": {
            "type": "string",
            "enum": [
              "REQUEST",
              "RESPONSE",
              "OTHER"
            ],
            "default": "RESPONSE"
          },
          "transformation": {
            "type": "string",
            "enum": [
              "XML_to_JSON",
              "JSON_to_XML"
            ],
            "default": "XML_to_JSON"
          },
          "useNumbersWhenPossible": {
            "type": "boolean",
            "default": false
          }
        }
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/sub-types/messageTargetableSupport",
        "properties": {
          "otherTargetMessageVariable": {
            "type": "string"
          },
          "sourceUsedByGateway": {
            "type": "boolean",
            "default": true
          },
          "target": {
            "type": "string",
            "enum": [
              "REQUEST",
              "RESPONSE",
              "OTHER"
            ],
            "default": "REQUEST"
          },
          "targetModifiedByGateway": {
            "type": "boolean",
            "default": false
          }
        }
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/JsonTransformation/Main",
        "title": "Apply JSON Transformation",
        "properties": {
          "JsonTransformation": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/JsonTransformation"
          },
          ".properties": {
            "type": "object",
            "properties": {
              ".enabled": {
                "type": "boolean",
                "default": true
              },
              ".left.comment": {
                "type": "string"
              },
              ".right.comment": {
                "type": "string"
              }
            }
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Apply JSON Transformation",
        "elements": [
          {
            "type": "Control",
            "i18n": "transformation",
            "scope": "#/properties/transformation"
          },
          {
            "type": "Control",
            "scope": "#/properties/convention",
            "i18n": "convention"
          },
          {
            "type": "Control",
            "scope": "#/properties/rootTagString",
            "i18n": "rootTagString",
            "options": {
              "markAsRequired": true
            },
            "rule": {
              "effect": "HIDE",
              "condition": {
                "scope": "#",
                "schema": {
                  "anyOf": [
                    {
                      "allOf": [
                        {
                          "properties": {
                            "transformation": {
                              "const": "XML_to_JSON"
                            },
                            "convention": {
                              "enum": [
                                "JSONML",
                                "STANDARD"
                              ]
                            }
                          },
                          "required": [
                            "transformation",
                            "convention"
                          ]
                        }
                      ]
                    },
                    {
                      "allOf": [
                        {
                          "properties": {
                            "transformation": {
                              "const": "JSON_to_XML"
                            },
                            "convention": {
                              "const": "JSONML"
                            }
                          },
                          "required": [
                            "transformation",
                            "convention"
                          ]
                        }
                      ]
                    }
                  ]
                }
              }
            }
          },
          {
            "type": "Control",
            "i18n": "prettyPrint",
            "scope": "#/properties/prettyPrint"
          },
          {
            "type": "Control",
            "scope": "#/properties/arrayForm",
            "i18n": "arrayForm",
            "rule": {
              "effect": "DISABLE",
              "condition": {
                "scope": "#",
                "schema": {
                  "anyOf": [
                    {
                      "allOf": [
                        {
                          "properties": {
                            "transformation": {
                              "const": "XML_to_JSON"
                            },
                            "convention": {
                              "const": "STANDARD"
                            }
                          },
                          "required": [
                            "transformation",
                            "convention"
                          ]
                        }
                      ]
                    },
                    {
                      "allOf": [
                        {
                          "properties": {
                            "transformation": {
                              "const": "JSON_to_XML"
                            },
                            "convention": {
                              "enum": [
                                "STANDARD",
                                "JSONML"
                              ]
                            }
                          },
                          "required": [
                            "transformation",
                            "convention"
                          ]
                        }
                      ]
                    }
                  ]
                }
              }
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/useNumbersWhenPossible",
            "i18n": "useNumbersWhenPossible",
            "rule": {
              "effect": "DISABLE",
              "condition": {
                "scope": "#",
                "schema": {
                  "anyOf": [
                    {
                      "allOf": [
                        {
                          "properties": {
                            "transformation": {
                              "const": "XML_to_JSON"
                            },
                            "convention": {
                              "const": "JSONML"
                            }
                          },
                          "required": [
                            "transformation",
                            "convention"
                          ]
                        }
                      ]
                    },
                    {
                      "allOf": [
                        {
                          "properties": {
                            "transformation": {
                              "const": "JSON_to_XML"
                            },
                            "convention": {
                              "enum": [
                                "STANDARD",
                                "JSONML"
                              ]
                            }
                          },
                          "required": [
                            "transformation",
                            "convention"
                          ]
                        }
                      ]
                    }
                  ]
                }
              }
            }
          },
          {
            "type": "Group",
            "label": "Source and Destination",
            "isExpanded": true,
            "options": {
              "groupType": "Accordion"
            },
            "elements": [
              {
                "type": "Group",
                "options": {
                  "groupType": "wrapCustomClass",
                  "customClass": "source-group-style"
                },
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/target",
                    "options": {
                      "messageTarget": true
                    },
                    "i18n": "source.target"
                  }
                ]
              },
              {
                "type": "Group",
                "options": {
                  "groupType": "wrapCustomClass",
                  "customClass": "source-group-style"
                },
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/destinationMessageTarget/properties/target",
                    "i18n": "destination.target",
                    "options": {
                      "format": "radio",
                      "useRowLayout": false
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/destinationMessageTarget/properties/__otherTarget",
                    "i18n": "otherContext",
                    "options": {
                      "customClass": "common-conditional-field",
                      "markAsRequired": true,
                      "contextVariable": true,
                      "variableType": "output",
                      "allowedDataTypes": []
                    },
                    "rule": {
                      "effect": "SHOW",
                      "condition": {
                        "scope": "#/properties/destinationMessageTarget/properties/target",
                        "schema": {
                          "const": "OTHER"
                        }
                      }
                    }
                  }
                ]
              }
            ]
          },
          {
            "type": "Group",
            "label": "Test",
            "options": {
              "groupType": "Accordion"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/__testInput",
                "i18n": "test_input",
                "options": {
                  "multiline": true,
                  "rows": 3
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/__test",
                "i18n": "test_button",
                "options": {
                  "controlType": "Button",
                  "variant": "outlined"
                },
                "rule": {
                  "effect": "DISABLE",
                  "condition": {
                    "scope": "#/properties/__testInput",
                    "schema": {
                      "maxLength": 0
                    }
                  }
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/__testOutput",
                "i18n": "output",
                "enabled": false,
                "options": {
                  "readonly": true,
                  "multiline": true,
                  "rows": 5
                }
              }
            ]
          }
        ]
      }
    ],
    "configSchemaPatches": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/JsonTransformation",
        "patches": [
          {
            "op": "add",
            "path": "/properties/__testInput",
            "value": {
              "type": "string"
            }
          },
          {
            "op": "add",
            "path": "/properties/__testOutput",
            "value": {
              "type": "string"
            }
          },
          {
            "op": "add",
            "path": "/properties/__test",
            "value": {
              "type": "string"
            }
          },
          {
            "op": "add",
            "path": "/properties/destinationMessageTarget/properties/__otherTarget",
            "value": {
              "type": "string"
            }
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/JsonTransformation",
        "locale": "en",
        "content": {
          "transformation.label": "Transformation",
          "transformation.XML_to_JSON": "XML To JSON",
          "transformation.JSON_to_XML": "JSON To XML",
          "convention.label": "Transformation Convention",
          "convention.STANDARD": "Standard",
          "rootTagString.label": "Root Tag",
          "prettyPrint.label": "Format output",
          "arrayForm.label": "Convert as array",
          "useNumbersWhenPossible.label": "Omit quotes from numbers",
          "source_and_destination": "Source and Destination",
          "source.target.label": "Source Target Message",
          "destination.target.label": "Destination Target Message",
          "destination.Other.label": "Message Variable",
          "test": "Test",
          "test_input.label": "Test Input",
          "output.label": "Test Output",
          "test_button": "Test",
          "source.target.REQUEST": "Request",
          "source.target.RESPONSE": "Response",
          "source.target.OTHER": "Other",
          "destination.target.REQUEST": "Request",
          "destination.target.RESPONSE": "Response",
          "destination.target.OTHER": "Other",
          "rootTagString.error": "Invalid root tag. "
        }
      }
    ]
  },
  {
    "configName": "JwtDecode",
    "refVariables": [
      {
        "fieldPath": ".incomingToken",
        "refType": "IN",
        "dataType": "string"
      },
      {
        "fieldPath": ".algorithmSecretValue",
        "refType": "IN",
        "dataType": "string"
      },
      {
        "fieldPath": ".outputVariable",
        "refType": "OUT",
        "dataType": "string",
        "settable": true
      }
    ],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/JwtDecode",
        "title": "Decode JWT",
        "properties": {
          "algorithmSecretLocation": {
            "type": "string",
            "default": "0",
            "enum": [
              "1",
              "2",
              "4",
              "0"
            ],
            "i18n": "assertion.JwtDecode.algorithmSecretLocation"
          },
          "__algorithmSecretPasswordValue": {
            "type": "string"
          },
          "__algorithmSecretVariableValue": {
            "type": "string"
          },
          "incomingToken": {
            "type": "string"
          },
          "outputVariable": {
            "type": "string"
          },
          "__isBase64": {
            "type": "boolean"
          },
          "__inlineAlerts": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "__privateKey": {
            "type": "string"
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Decode JWT",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/__inlineAlerts",
            "options": {
              "inlineAlerts": "warning"
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/incomingToken",
            "i18n": "incomingToken",
            "options": {
              "markAsRequired": true,
              "contextVariable": true,
              "variableType": "input",
              "allowedDataTypes": []
            }
          },
          {
            "type": "Group",
            "i18n": "algorithmSecretLocation",
            "scope": "#/properties/algorithmSecretLocation",
            "options": {
              "format": "radio",
              "useRowLayout": false,
              "disabledOptions": [],
              "uiSchemasMap": {
                "1": {
                  "type": "Group",
                  "options": {
                    "groupType": "wrapCustomClass",
                    "customClass": "custom-private-key-group"
                  },
                  "elements": [
                    {
                      "type": "Control",
                      "scope": "#/properties/__privateKey",
                      "label": false,
                      "options": {
                        "controlType": "privateKey"
                      }
                    }
                  ]
                },
                "2": {
                  "type": "VerticalLayout",
                  "elements": [
                    {
                      "type": "Control",
                      "scope": "#/properties/__algorithmSecretPasswordValue",
                      "label": false,
                      "options": {
                        "defaultOptions": []
                      }
                    }
                  ]
                },
                "4": {
                  "type": "Group",
                  "options": {
                    "groupType": "wrapCustomClass",
                    "customClass": "algorithm-value-field"
                  },
                  "elements": [
                    {
                      "type": "Control",
                      "scope": "#/properties/__algorithmSecretVariableValue",
                      "label": false,
                      "options": {
                        "markAsRequired": true,
                        "contextVariable": true,
                        "variableType": "input",
                        "allowedDataTypes": []
                      }
                    },
                    {
                      "type": "Control",
                      "scope": "#/properties/__isBase64",
                      "i18n": "__isBase64"
                    }
                  ]
                }
              }
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/outputVariable",
            "i18n": "outputVariable",
            "options": {
              "markAsRequired": true,
              "contextVariable": true,
              "variableType": "output",
              "allowedDataTypes": []
            }
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/JwtDecode",
        "locale": "en",
        "content": {
          "depriciate.note": "Important: A newer version of this assertion is now available with equivalent capabilities. As the current version may be deprecated in the future, it is recommended that you update your usage to the latest Decode JSON Web Token Assertion.",
          "incomingToken.label": "Incoming JWT Token Variable",
          "outputVariable.label": "Output Variable",
          "__isBase64.label": "Is Base64 encoded",
          "algorithmSecretLocation.1": "Public Key From Private Key",
          "algorithmSecretLocation.2": "Password",
          "algorithmSecretLocation.4": "From Variable",
          "algorithmSecretLocation.0": "No Secret",
          "algorithmSecretLocation.label": "Algorithm Secret"
        }
      }
    ]
  },
  {
    "configName": "JwtEncode",
    "refVariables": [
      {
        "fieldPath": ".jwtHeaderVariable",
        "refType": "IN",
        "dataType": "other"
      },
      {
        "fieldPath": ".outputVariable",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".__signatureVariableValue",
        "refType": "IN",
        "dataType": "string"
      },
      {
        "fieldPath": ".__algorithmSecretVariableValue",
        "refType": "IN",
        "dataType": "string"
      },
      {
        "fieldPath": ".jsonPayload",
        "refType": "IN",
        "dataType": "string"
      }
    ],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/JwtEncode",
        "title": "Encode JWT",
        "properties": {
          "algorithmSecretLocation": {
            "type": "string",
            "default": "1",
            "enum": [
              "1",
              "2",
              "4"
            ]
          },
          "__algorithmSecretListValue": {
            "type": "string",
            "default": "00000000000000000000000000000002.ssl"
          },
          "__algorithmSecretPasswordValue": {
            "type": "string"
          },
          "__algorithmSecretVariableValue": {
            "type": "string"
          },
          "jsonPayload": {
            "type": "string"
          },
          "jwtHeaderType": {
            "type": "string",
            "default": "0",
            "enum": [
              "0",
              "1",
              "2"
            ]
          },
          "jwtHeaderVariable": {
            "type": "string",
            "default": ""
          },
          "outputVariable": {
            "type": "string"
          },
          "signatureSelected": {
            "type": "string",
            "default": "1",
            "enum": [
              "1",
              "2"
            ]
          },
          "__signatureListValue": {
            "type": "string",
            "enum": [
              "none"
            ],
            "default": "none"
          },
          "__signatureVariableValue": {
            "type": "string"
          },
          "__inlineAlerts": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "__base64": {
            "type": "boolean",
            "default": false
          },
          "__privateKey": {
            "type": "string"
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Encode JWT",
        "elements": [
          {
            "type": "Group",
            "label": false,
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "alert-wrapper"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/__inlineAlerts",
                "options": {
                  "inlineAlerts": "warning"
                }
              }
            ]
          },
          {
            "type": "Control",
            "scope": "#/properties/jsonPayload",
            "i18n": "jsonPayload",
            "options": {
              "markAsRequired": true,
              "contextVariable": true,
              "variableType": "input",
              "allowedDataTypes": []
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/jwtHeaderType",
            "i18n": "jwtHeaderType",
            "options": {
              "format": "radio",
              "useRowLayout": false,
              "uiSchemasMap": {
                "1": {
                  "type": "VerticalLayout",
                  "elements": [
                    {
                      "type": "Control",
                      "scope": "#/properties/jwtHeaderVariable",
                      "i18n": "jwtHeaderVariable",
                      "options": {
                        "customClass": "sub-schema-field",
                        "contextVariable": true,
                        "variableType": "input",
                        "allowedDataTypes": []
                      }
                    }
                  ]
                },
                "2": {
                  "type": "VerticalLayout",
                  "elements": [
                    {
                      "type": "Control",
                      "scope": "#/properties/jwtHeaderVariable",
                      "i18n": "jwtHeaderVariable",
                      "options": {
                        "customClass": "sub-schema-field",
                        "contextVariable": true,
                        "variableType": "input",
                        "allowedDataTypes": []
                      }
                    }
                  ]
                }
              }
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/signatureSelected",
            "i18n": "signatureSelected",
            "options": {
              "format": "radio",
              "useRowLayout": false,
              "uiSchemasMap": {
                "1": {
                  "type": "VerticalLayout",
                  "elements": [
                    {
                      "type": "Control",
                      "scope": "#/properties/__signatureListValue",
                      "label": false,
                      "options": {
                        "defaultOptions": [],
                        "customClass": "hide-label-field sub-schema-field"
                      }
                    }
                  ]
                },
                "2": {
                  "type": "VerticalLayout",
                  "elements": [
                    {
                      "type": "Control",
                      "scope": "#/properties/__signatureVariableValue",
                      "label": false,
                      "options": {
                        "customClass": "hide-label-field sub-schema-field",
                        "contextVariable": true,
                        "variableType": "input",
                        "allowedDataTypes": []
                      }
                    }
                  ]
                }
              }
            },
            "rule": {
              "effect": "DISABLE",
              "condition": {
                "scope": "#/properties/jwtHeaderType",
                "schema": {
                  "const": "1"
                }
              }
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/algorithmSecretLocation",
            "i18n": "algorithmSecretLocation",
            "options": {
              "format": "radio",
              "useRowLayout": false,
              "disabledOptions": [],
              "uiSchemasMap": {
                "1": {
                  "type": "Group",
                  "options": {
                    "groupType": "wrapCustomClass",
                    "customClass": "custom-private-key-group"
                  },
                  "elements": [
                    {
                      "type": "Control",
                      "scope": "#/properties/__privateKey",
                      "label": false,
                      "options": {
                        "customClass": "sub-schema-field",
                        "controlType": "privateKey"
                      }
                    }
                  ]
                },
                "2": {
                  "type": "VerticalLayout",
                  "elements": [
                    {
                      "type": "Control",
                      "scope": "#/properties/__algorithmSecretPasswordValue",
                      "label": false,
                      "options": {
                        "customClass": "sub-schema-field",
                        "defaultOptions": []
                      }
                    }
                  ]
                },
                "4": {
                  "type": "VerticalLayout",
                  "elements": [
                    {
                      "type": "Control",
                      "scope": "#/properties/__algorithmSecretVariableValue",
                      "label": false,
                      "options": {
                        "customClass": "hide-label-field sub-schema-field",
                        "contextVariable": true,
                        "variableType": "input",
                        "allowedDataTypes": []
                      }
                    },
                    {
                      "type": "Control",
                      "scope": "#/properties/__base64",
                      "i18n": "base64",
                      "rule": {
                        "effect": "SHOW",
                        "condition": {
                          "scope": "#/properties/algorithmSecretLocation",
                          "schema": {
                            "const": "4"
                          }
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/outputVariable",
            "i18n": "outputVariable",
            "options": {
              "markAsRequired": true,
              "contextVariable": true,
              "variableType": "output",
              "allowedDataTypes": []
            }
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/JwtEncode",
        "locale": "en",
        "content": {
          "jwtHeaderVariable.label": "Variable",
          "algorithmSecretValue": "",
          "jsonPayload.label": "JSON Payload Variable",
          "outputVariable.label": "Output Variable",
          "jwt-encode.note.helper_text": "Important: A newer version of this assertion is now available with equivalent capabilities. As the current version may be deprecated in the future, it is recommended that you update your usage to the latest Encode JSON Web Token Assertion.",
          "base64.label": "Is Base64 Encoded",
          "jwtHeaderType.label": "Optional User-Supplied JWT Header Parameters",
          "jwtHeaderType.0": "Use generated header",
          "jwtHeaderType.1": "Replace generated header",
          "jwtHeaderType.2": "Append to generated header",
          "signatureSelected.label": "Signature Algorithm",
          "signatureSelected.1": "From list",
          "signatureSelected.2": "From variable",
          "algorithmSecretLocation.label": "Algorithm Secret",
          "algorithmSecretLocation.1": "Private key",
          "algorithmSecretLocation.2": "Password",
          "algorithmSecretLocation.4": "From variable"
        }
      }
    ]
  },
  {
    "configName": "KafkaRouting",
    "displayNameFormats": [
      {
        "format": "Route via Kafka to Topic - {{.topic}}",
        "condition": "isNull({{.topic}})"
      },
      {
        "format": "Route via Kafka",
        "condition": "and(startsWith({{.topic}}, ${), endsWith({{.topic}}, }))"
      },
      {
        "format": "Route via Kafka to Topic - {{.topic}}",
        "condition": "true"
      }
    ],
    "refVariables": [
      {
        "fieldPath": ".prefix",
        "refType": "OUT",
        "dataType": "other",
        "condition": "{{.waitForAck}}"
      },
      {
        "fieldPath": ".prefix",
        "suffix": ".offset",
        "refType": "OUT",
        "dataType": "int",
        "condition": "{{.waitForAck}}"
      },
      {
        "fieldPath": ".prefix",
        "suffix": ".partition",
        "refType": "OUT",
        "dataType": "int",
        "condition": "{{.waitForAck}}"
      },
      {
        "fieldPath": ".prefix",
        "suffix": ".timestamp",
        "refType": "OUT",
        "dataType": "string",
        "condition": "{{.waitForAck}}"
      }
    ],
    "refEntities": [
      {
        "fieldPath": ".clientConfigGoid",
        "refType": "GOID",
        "entityType": "ActiveConnector"
      }
    ],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/KafkaRouting",
        "title": "Route via Kafka",
        "properties": {
          "ackTimeout": {
            "type": "string"
          },
          "clientConfigGoid": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/sub-types/goid",
            "enum": [
              ""
            ]
          },
          "clientConfigName": {
            "type": "string"
          },
          "currentSecurityHeaderHandling": {
            "type": "integer",
            "default": 0,
            "enum": [
              3,
              1,
              0
            ]
          },
          "key": {
            "type": "string"
          },
          "partition": {
            "type": "string"
          },
          "passthroughHeaders": {
            "type": "boolean",
            "default": false
          },
          "prefix": {
            "type": "string"
          },
          "recipientContext": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/sub-types/xmlSecurityRecipientContext"
          },
          "requestTarget": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/sub-types/messageTargetableSupport"
          },
          "topic": {
            "type": "string"
          },
          "waitForAck": {
            "type": "boolean",
            "default": true
          },
          "xmlSecurityActorToPromote": {
            "type": "string"
          },
          "__target": {
            "type": "string",
            "enum": [
              "REQUEST",
              "RESPONSE"
            ],
            "default": "REQUEST"
          }
        }
      },
      {
        "type": "string",
        "$id": "https://l7tech.com/2025/json-schema/assertions/sub-types/goid"
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/sub-types/xmlSecurityRecipientContext",
        "properties": {
          "actor": {
            "type": "string"
          },
          "base64edX509Certificate": {
            "type": "string"
          }
        }
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/sub-types/messageTargetableSupport",
        "properties": {
          "otherTargetMessageVariable": {
            "type": "string"
          },
          "sourceUsedByGateway": {
            "type": "boolean",
            "default": true
          },
          "target": {
            "type": "string",
            "enum": [
              "REQUEST",
              "RESPONSE"
            ],
            "default": "REQUEST"
          },
          "targetModifiedByGateway": {
            "type": "boolean",
            "default": false
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Route via Kafka",
        "elements": [
          {
            "type": "Group",
            "i18n": "target",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "response-group"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/clientConfigGoid",
                "i18n": "target.client",
                "options": {
                  "markAsRequired": true
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/topic",
                "i18n": "target.topic",
                "options": {
                  "markAsRequired": true
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/partition",
                "i18n": "target.partition"
              },
              {
                "type": "Control",
                "scope": "#/properties/key",
                "i18n": "target.key"
              },
              {
                "type": "Group",
                "i18n": "target.acknowledgement.label",
                "options": {
                  "groupType": "wrapCustomClass",
                  "customClass": "acknowledgement-group"
                },
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/waitForAck",
                    "i18n": "target.waitForAck"
                  },
                  {
                    "type": "Group",
                    "options": {
                      "groupType": "wrapCustomClass",
                      "customClass": "acknowledgement-field"
                    },
                    "elements": [
                      {
                        "type": "Control",
                        "scope": "#/properties/ackTimeout",
                        "i18n": "target.timeout"
                      },
                      {
                        "type": "Control",
                        "scope": "#/properties/prefix",
                        "i18n": "target.variablePrefix",
                        "options": {
                          "contextVariable": true,
                          "variableType": "output",
                          "allowedDataTypes": []
                        }
                      }
                    ],
                    "rule": {
                      "effect": "SHOW",
                      "condition": {
                        "scope": "#/properties/waitForAck",
                        "schema": {
                          "const": true
                        }
                      }
                    }
                  }
                ]
              }
            ]
          },
          {
            "type": "Group",
            "i18n": "request",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "request-group"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/__target",
                "i18n": "request.messageSource"
              },
              {
                "type": "Control",
                "scope": "#/properties/passthroughHeaders",
                "i18n": "request.passthroughHeaders"
              },
              {
                "type": "Control",
                "scope": "#/properties/currentSecurityHeaderHandling",
                "i18n": "request.currentWSSHeaderHandling",
                "options": {
                  "wssSecurityHeaderHandling": true
                }
              }
            ]
          },
          {
            "type": "Group",
            "label": "WS-Security Recipient",
            "options": {
              "groupType": "ShowHide"
            },
            "elements": [
              {
                "type": "Control",
                "options": {
                  "wssRecipient": true
                }
              }
            ]
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/KafkaRouting",
        "locale": "en",
        "content": {
          "target.client.label": "Client",
          "target.topic.label": "Topic",
          "target.partition.label": "Partition",
          "target.key.label": "Key",
          "target.acknowledgement.label": "Acknowledgement",
          "target.waitForAck.label": "Wait for ACK",
          "target.timeout.label": "Timeout (ms)",
          "target.variablePrefix.label": "Variable Prefix",
          "request.messageSource.label": "Message Source",
          "request.messageSource.REQUEST": "Request",
          "request.messageSource.RESPONSE": "Response",
          "request.passthroughHeaders.label": "Passthrough headers",
          "request.currentWSSHeaderHandling.label": "Current WSS Header Handling",
          "target.ackTimeout.error": "Acknowledgement timeout must be a context variable or a value between 1 and 2147483647",
          "target": "Target",
          "request": "Request"
        }
      }
    ]
  },
  {
    "configName": "KerberosAuthentication",
    "refEntities": [
      {
        "fieldPath": ".krbSecurePasswordReference",
        "refType": "GOID",
        "entityType": "Secret"
      }
    ],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/KerberosAuthentication",
        "title": "Retrieve Kerberos Authentication Credentials",
        "properties": {
          "authenticatedUser": {
            "type": "string"
          },
          "krbConfiguredAccount": {
            "type": "string"
          },
          "krbDelegatedAuthentication": {
            "type": "boolean",
            "default": true
          },
          "krbSecurePasswordReference": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/sub-types/goid"
          },
          "krbUseGatewayKeytab": {
            "type": "integer",
            "default": "1",
            "enum": [
              "1",
              "2"
            ],
            "i18n": "krbUseGatewayKeytab"
          },
          "lastAuthenticatedUser": {
            "type": "integer",
            "default": "1",
            "enum": [
              "1",
              "2"
            ],
            "i18n": "lastAuthenticatedUser"
          },
          "realm": {
            "type": "string"
          },
          "s4U2Proxy": {
            "type": "boolean",
            "default": false
          },
          "s4U2Self": {
            "default": "1",
            "enum": [
              "1",
              "2"
            ],
            "i18n": "s4U2Self"
          },
          "servicePrincipalName": {
            "type": "string"
          },
          "userRealm": {
            "type": "string"
          }
        }
      },
      {
        "type": "string",
        "$id": "https://l7tech.com/2025/json-schema/assertions/sub-types/goid"
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Retrieve Kerberos Authentication Credentials",
        "elements": [
          {
            "type": "Group",
            "i18n": "kdcsetting",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "kerberos-group"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/realm",
                "i18n": "realm",
                "options": {
                  "markAsRequired": true
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/servicePrincipalName",
                "i18n": "servicePrincipalName",
                "options": {
                  "markAsRequired": true
                }
              }
            ]
          },
          {
            "type": "Group",
            "i18n": "gateway-credentials",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "kerberos-group"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/krbUseGatewayKeytab",
                "label": false,
                "options": {
                  "format": "radio",
                  "useRowLayout": false,
                  "uiSchemasMap": {
                    "2": {
                      "type": "VerticalLayout",
                      "elements": [
                        {
                          "type": "Control",
                          "scope": "#/properties/krbConfiguredAccount",
                          "i18n": "krbConfiguredAccount",
                          "options": {
                            "markAsRequired": true
                          }
                        },
                        {
                          "type": "Control",
                          "scope": "#/properties/krbSecurePasswordReference",
                          "i18n": "krbSecurePasswordReference",
                          "options": {
                            "markAsRequired": true,
                            "manageStoredPassword": true
                          }
                        }
                      ]
                    }
                  }
                }
              }
            ]
          },
          {
            "type": "Group",
            "i18n": "delegation-method",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "kerberos-group"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/s4U2Self",
                "label": false,
                "options": {
                  "format": "radio",
                  "useRowLayout": false
                }
              }
            ]
          },
          {
            "type": "Group",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "authenticate-user-group"
            },
            "rule": {
              "effect": "HIDE",
              "condition": {
                "scope": "#/properties/s4U2Self",
                "schema": {
                  "const": "2"
                }
              }
            },
            "elements": [
              {
                "type": "Group",
                "i18n": "authenticate-user",
                "options": {
                  "groupType": "wrapCustomClass",
                  "customClass": "authenticate-user-group"
                },
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/lastAuthenticatedUser",
                    "label": false,
                    "options": {
                      "format": "radio",
                      "useRowLayout": false,
                      "uiSchemasMap": {
                        "2": {
                          "type": "VerticalLayout",
                          "elements": [
                            {
                              "type": "Control",
                              "label": false,
                              "scope": "#/properties/authenticatedUser",
                              "options": {
                                "markAsRequired": true
                              }
                            }
                          ]
                        }
                      }
                    }
                  }
                ]
              }
            ]
          },
          {
            "type": "Control",
            "i18n": "userRealm",
            "scope": "#/properties/userRealm",
            "rule": {
              "effect": "HIDE",
              "condition": {
                "scope": "#/properties/s4U2Self",
                "schema": {
                  "const": "2"
                }
              }
            }
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/KerberosAuthentication",
        "locale": "en",
        "content": {
          "kdcsetting": "KDC Settings",
          "gateway-credentials": "Gateway Credentials",
          "delegation-method": "Delegation Method",
          "authenticate-user": "Authenticated User",
          "krbConfiguredAccount.label": "Name",
          "krbSecurePasswordReference.label": "Password",
          "userRealm.label": "User Realm",
          "servicePrincipalName.label": "Target SPN",
          "servicePrincipalName.error": "Invalid service principal name",
          "krbUseGatewayKeytab.1": "Use gateway keytab",
          "krbUseGatewayKeytab.2": "Use configured credentials",
          "s4U2Self.1": "Protocol transition",
          "s4U2Self.2": "Constrained proxy (Kerberos only)",
          "lastAuthenticatedUser.1": "Last authenticated user",
          "lastAuthenticatedUser.2": "Specify user name"
        }
      }
    ]
  },
  {
    "configName": "KeyValueLookup",
    "displayNameFormats": [
      {
        "format": "Look Up from Key Value Storage [{{.storeId}}]",
        "condition": "not(isNull({{.storeId}}))"
      },
      {
        "format": "Look Up from Key Value Storage",
        "condition": "true"
      }
    ],
    "configSchemas": [
      {
        "$id": "https://l7tech.com/2025/json-schema/assertions/KeyValueLookup",
        "type": "object",
        "title": "Look Up from Key Value Storage",
        "properties": {
          "key": {
            "type": "string"
          },
          "otherTargetMessageVariable": {
            "type": "string"
          },
          "storeId": {
            "type": "string"
          },
          "target": {
            "type": "string",
            "enum": [
              "REQUEST",
              "RESPONSE",
              "OTHER"
            ],
            "default": "REQUEST"
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Look Up from Key Value Storage",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/target",
            "options": {
              "messageTarget": true,
              "otherTargetMessageVariableLabel": "assertion.common.target.otherTargetContextVariable"
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/storeId",
            "options": {
              "markAsRequired": true,
              "autocomplete": true,
              "allowUserProvidedInput": true,
              "defaultOptions": []
            },
            "i18n": "storeId"
          },
          {
            "type": "Control",
            "scope": "#/properties/key",
            "i18n": "key"
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/KeyValueLookup",
        "locale": "en",
        "content": {
          "storeId.label": "Store ID",
          "storeId.error": "Please enter valid store Id",
          "key.label": "Key"
        }
      }
    ]
  },
  {
    "configName": "KeyValueRemove",
    "displayNameFormats": [
      {
        "format": "Remove from Key Value Storage [{{.storeId}}]",
        "condition": "and(not(isNull({{.storeId}})), equals({{.removeAllKeys}}, true)"
      },
      {
        "format": "Remove from Key Value Storage [{{.storeId}}][{{.key}}]",
        "condition": "and(not(isNull({{.storeId}})), equals({{.removeAllKeys}}, false)"
      },
      {
        "format": "Remove from Key Value Storage",
        "condition": "true"
      }
    ],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/KeyValueRemove",
        "title": "Remove from Key Value Storage",
        "properties": {
          "key": {
            "type": "string",
            "maxLength": 256
          },
          "removeAllKeys": {
            "type": "boolean"
          },
          "storeId": {
            "type": "string"
          },
          "__inlineAlerts": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Remove from Key Value Storage",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/storeId",
            "options": {
              "markAsRequired": true,
              "autocomplete": true,
              "allowUserProvidedInput": true,
              "defaultOptions": []
            },
            "i18n": "storeId"
          },
          {
            "type": "Control",
            "scope": "#/properties/removeAllKeys",
            "i18n": "removeAllKeys"
          },
          {
            "type": "Control",
            "scope": "#/properties/key",
            "rule": {
              "effect": "HIDE",
              "condition": {
                "scope": "#/properties/removeAllKeys",
                "schema": {
                  "const": true
                }
              }
            },
            "i18n": "key"
          },
          {
            "type": "Control",
            "scope": "#/properties/__inlineAlerts",
            "options": {
              "inlineAlerts": "warning"
            },
            "rule": {
              "effect": "SHOW",
              "condition": {
                "scope": "#/properties/removeAllKeys",
                "schema": {
                  "const": true
                }
              }
            }
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/KeyValueRemove",
        "locale": "en",
        "content": {
          "removeAllKeys.label": "All keys",
          "key.label": "Specific key",
          "storeId.label": "Store ID",
          "removeAllKeys.warning": "This assertion will remove all keys from the store upon execution. There may be a performance impact."
        }
      }
    ]
  },
  {
    "configName": "KeyValueStorage",
    "displayNameFormats": [
      {
        "format": "Store to Key Value Storage [{{.storeId}}]",
        "condition": "not(isNull({{.storeId}}))"
      },
      {
        "format": "Store to Key Value Storage",
        "condition": "true"
      }
    ],
    "refVariables": [
      {
        "fieldPath": ".",
        "suffix": "kvstorage.assertion.status",
        "refType": "OUT",
        "dataType": "string"
      }
    ],
    "configSchemas": [
      {
        "$id": "https://l7tech.com/2025/json-schema/assertions/KeyValueStorage",
        "type": "object",
        "title": "Store to Key Value Storage",
        "properties": {
          "continueOnError": {
            "type": "boolean",
            "default": true
          },
          "key": {
            "type": "string"
          },
          "maxAge": {
            "type": "string",
            "maxLength": 125
          },
          "otherTargetMessageVariable": {
            "type": "string"
          },
          "storeId": {
            "type": "string"
          },
          "target": {
            "type": "string",
            "enum": [
              "REQUEST",
              "RESPONSE",
              "OTHER"
            ],
            "default": "REQUEST"
          },
          "__maxAgeUnit": {
            "type": "string",
            "enum": [
              "Minute",
              "Second"
            ],
            "default": "Second"
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Store to Key Value Storage",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/target",
            "options": {
              "messageTarget": true,
              "otherTargetMessageVariableLabel": "assertion.common.target.otherTargetContextVariable"
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/storeId",
            "options": {
              "markAsRequired": true,
              "autocomplete": true,
              "allowUserProvidedInput": true,
              "defaultOptions": []
            },
            "i18n": "storeId"
          },
          {
            "type": "Control",
            "scope": "#/properties/key",
            "i18n": "key"
          },
          {
            "type": "Group",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "maxAge-group-style"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/maxAge",
                "options": {
                  "markAsRequired": true
                },
                "i18n": "maxAge"
              },
              {
                "type": "Control",
                "i18n": "maxAgeUnit",
                "scope": "#/properties/__maxAgeUnit"
              }
            ]
          },
          {
            "type": "Control",
            "scope": "#/properties/continueOnError",
            "options": {},
            "i18n": "continueOnError"
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/KeyValueStorage",
        "locale": "en",
        "content": {
          "storeId.label": "Store ID",
          "key.label": "Key",
          "maxAge.label": "Max age",
          "continueOnError.label": "Continue on error",
          "removeAllKeys.warning": "This assertion will remove all keys from the store upon execution. There may be a performance impact.",
          "storeId.error": "Please enter a valid Store ID or context variable.",
          "maxAgeUnit.label": "Max Age Units"
        }
      }
    ]
  },
  {
    "configName": "LDAPQuery",
    "displayNameFormats": [
      {
        "format": "Query LDAP {{.searchFilter}}",
        "condition": "not(isNull({{.searchFilter}}))"
      }
    ],
    "refVariables": [
      {
        "fieldPath": ".queryMappings[*].matchingContextVariableName",
        "refType": "OUT",
        "dataType": "string",
        "multivalued": true
      }
    ],
    "refEntities": [
      {
        "fieldPath": ".ldapProviderOid",
        "refType": "GOID",
        "entityType": "IdpRef"
      }
    ],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/LDAPQuery",
        "title": "Query LDAP",
        "properties": {
          "allowMultipleResults": {
            "type": "boolean",
            "default": false
          },
          "attrNames": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "cachePeriod": {
            "type": "number"
          },
          "cacheSize": {
            "type": "integer"
          },
          "dnText": {
            "type": "string"
          },
          "enableCache": {
            "type": "boolean",
            "default": true
          },
          "failIfNoResults": {
            "type": "boolean",
            "default": false
          },
          "failIfTooManyResults": {
            "type": "boolean",
            "default": false
          },
          "includeEmptyAttributes": {
            "type": "boolean",
            "default": false
          },
          "ldapProviderOid": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/sub-types/goid"
          },
          "maximumResults": {
            "type": "integer"
          },
          "queryMappings": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "attributeName": {
                  "type": "string",
                  "title": "LDAP Attribute"
                },
                "matchingContextVariableName": {
                  "type": "string",
                  "title": "Context Variable Name"
                },
                "failMultivalued": {
                  "type": "boolean",
                  "default": false
                },
                "joinMultivalued": {
                  "type": "boolean",
                  "default": true
                },
                "multivalued": {
                  "type": "boolean",
                  "default": false
                },
                "__multivalued": {
                  "type": "string",
                  "enum": [
                    "USE_FIRST_VALUE",
                    "JOIN_WITH_COMMAS",
                    "SET_MULTIVALUED",
                    "FAIL_ASSERTIONS"
                  ],
                  "default": "USE_FIRST_VALUE"
                }
              }
            }
          },
          "searchFilter": {
            "type": "string"
          },
          "searchFilterInjectionProtected": {
            "type": "boolean",
            "default": false
          },
          "selectedScope": {
            "type": "string",
            "enum": [
              "SUBTREE",
              "ONELEVEL",
              "OBJECT"
            ],
            "default": "SUBTREE"
          }
        }
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/LDAPQuery:mapping",
        "properties": {
          "attributeName": {
            "type": "string"
          },
          "failMultivalued": {
            "type": "boolean",
            "default": false
          },
          "joinMultivalued": {
            "type": "boolean",
            "default": true
          },
          "matchingContextVariableName": {
            "type": "string"
          },
          "multivalued": {
            "type": "boolean",
            "default": false
          }
        }
      },
      {
        "type": "string",
        "$id": "https://l7tech.com/2025/json-schema/assertions/sub-types/goid"
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/LDAPQuery/Main",
        "title": "Query LDAP",
        "properties": {
          "LDAPQuery": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/LDAPQuery"
          },
          ".properties": {
            "type": "object",
            "properties": {
              ".enabled": {
                "type": "boolean",
                "default": true
              },
              ".left.comment": {
                "type": "string"
              },
              ".right.comment": {
                "type": "string"
              }
            }
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Query LDAP",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/ldapProviderOid",
            "i18n": "ldapConnector",
            "options": {
              "markAsRequired": true
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/selectedScope",
            "i18n": "ldapQueryScope",
            "options": {
              "markAsRequired": true
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/dnText",
            "i18n": "DN",
            "options": {
              "markAsRequired": true
            },
            "rule": {
              "effect": "SHOW",
              "condition": {
                "scope": "#/properties/selectedScope",
                "schema": {
                  "const": "OBJECT"
                }
              }
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/searchFilter",
            "i18n": "ldapSearchFilter",
            "options": {
              "markAsRequired": true
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/searchFilterInjectionProtected",
            "i18n": "protectAgainstLdapInjection",
            "options": {
              "format": "checkbox"
            }
          },
          {
            "type": "Group",
            "i18n": "queryMappings.label",
            "options": {
              "groupType": "wrapCustomClass",
              "helpText": "The search filter is used to select the LDAP entries from which attributes will be read"
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/queryMappings",
            "i18n": "queryMappings",
            "options": {
              "nameValueList": true,
              "detail": {
                "type": "VerticalLayout",
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/attributeName",
                    "i18n": "attributes.attributeName",
                    "options": {
                      "markAsRequired": true
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/matchingContextVariableName",
                    "i18n": "attributes.matchingContextVariableName",
                    "options": {
                      "markAsRequired": true,
                      "contextVariable": true,
                      "variableType": "output",
                      "allowedDataTypes": []
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/__multivalued",
                    "i18n": "attributes.__multivalued",
                    "options": {
                      "markAsRequired": true,
                      "hideColumn": true
                    }
                  }
                ]
              }
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/includeEmptyAttributes",
            "i18n": "includeEmptyAttributes",
            "options": {
              "format": "checkbox"
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/allowMultipleResults",
            "i18n": "allowMultipleResults",
            "options": {
              "format": "checkbox",
              "subUiSchema": {
                "type": "VerticalLayout",
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/maximumResults",
                    "i18n": "maximumResults",
                    "options": {
                      "markAsRequired": true
                    }
                  }
                ]
              }
            },
            "rule": {
              "effect": "SHOW",
              "condition": {
                "scope": "#/properties/selectedScope",
                "schema": {
                  "enum": [
                    "SUBTREE",
                    "ONELEVEL"
                  ]
                }
              }
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/enableCache",
            "i18n": "enableCache",
            "options": {
              "format": "checkbox",
              "subUiSchema": {
                "type": "VerticalLayout",
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/cacheSize",
                    "i18n": "cacheSize",
                    "options": {
                      "markAsRequired": true
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/cachePeriod",
                    "i18n": "cachePeriod",
                    "options": {
                      "markAsRequired": true
                    }
                  }
                ]
              }
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/failIfNoResults",
            "i18n": "failIfNoResults",
            "options": {
              "format": "checkbox"
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/failIfTooManyResults",
            "i18n": "failIfTooManyResults",
            "options": {
              "format": "checkbox"
            },
            "rule": {
              "effect": "SHOW",
              "condition": {
                "scope": "#/properties/selectedScope",
                "schema": {
                  "enum": [
                    "SUBTREE",
                    "ONELEVEL"
                  ]
                }
              }
            }
          }
        ]
      }
    ],
    "configSchemaPatches": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/LDAPQuery",
        "patches": [
          {
            "op": "add",
            "path": "/properties/ldapProviderOid/enum",
            "value": [
              ""
            ]
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/LDAPQuery",
        "locale": "en",
        "content": {
          "ldapConnector.label": "LDAP Connector",
          "ldapQueryScope.label": "LDAP Query Scope",
          "ldapQueryScope.SUBTREE": "Subtree",
          "ldapQueryScope.ONELEVEL": "Single Level",
          "ldapQueryScope.OBJECT": "Base DN",
          "DN.label": "DN",
          "ldapSearchFilter.label": "LDAP Search Filter",
          "protectAgainstLdapInjection.label": "Protect against LDAP injection",
          "includeEmptyAttributes.label": "Include empty attributes in multi-valued results",
          "allowMultipleResults.label": "Allow multiple search results",
          "queryMappings.label": "Attribute Variable Mapping",
          "attributes.attributeName.label": "LDAP Attribute Name",
          "attributes.matchingContextVariableName.label": "Context Variable Name",
          "attributes.__multivalued.label": "If Multivalued",
          "attributes.__multivalued.USE_FIRST_VALUE": "Use first value",
          "attributes.__multivalued.JOIN_WITH_COMMAS": "Join with commas",
          "attributes.__multivalued.SET_MULTIVALUED": "Set multivalued context variable",
          "attributes.__multivalued.FAIL_ASSERTIONS": "Fail assertion",
          "maximumResults.label": "Maximum Results",
          "enableCache.label": "Cache LDAP attribute values",
          "cacheSize.label": "Cache Size",
          "cachePeriod.label": "Cache Maximum Age (minutes)",
          "failIfNoResults.label": "Fail if assertion yields no results",
          "failIfTooManyResults.label": "Fail if assertion yields too many results",
          "rangeNumberError": "Must be a number between 0 and 100000"
        }
      }
    ]
  },
  {
    "configName": "LdapWrite",
    "displayNameFormats": [
      {
        "format": "Write LDAP: Add",
        "condition": "and(equals({{.changetype}}, ADD))"
      },
      {
        "format": "Write LDAP: Delete",
        "condition": "and(equals({{.changetype}}, DELETE))"
      },
      {
        "format": "Write LDAP: Modify",
        "condition": "and(equals({{.changetype}}, MODIFY))"
      },
      {
        "format": "Write LDAP: Modrdn",
        "condition": "and(equals({{.changetype}}, MODRDN))"
      },
      {
        "format": "Write LDAP",
        "condition": "true"
      }
    ],
    "refVariables": [
      {
        "fieldPath": ".variablePrefix",
        "refType": "OUT",
        "dataType": "other",
        "prefixed": true
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".error.msg",
        "refType": "OUT",
        "dataType": "string"
      }
    ],
    "refEntities": [
      {
        "fieldPath": ".ldapProviderId",
        "refType": "GOID",
        "entityType": "IdpRef"
      }
    ],
    "configSchemas": [
      {
        "$defs": {
          "LdapWrite:attributeType": {
            "type": "object",
            "$id": "https://l7tech.com/2025/json-schema/assertions/LdapWrite:attributeType",
            "properties": {
              "attribute": {
                "type": "string"
              },
              "value": {
                "type": "string"
              }
            }
          }
        },
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/LdapWrite",
        "title": "Write LDAP",
        "properties": {
          "attributeList": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "attribute": {
                  "type": "string"
                },
                "value": {
                  "type": "string"
                }
              }
            }
          },
          "changetype": {
            "type": "string",
            "enum": [
              "ADD",
              "DELETE",
              "MODIFY",
              "MODRDN"
            ],
            "default": "ADD"
          },
          "dn": {
            "type": "string"
          },
          "ldapProviderId": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/sub-types/goid"
          },
          "variablePrefix": {
            "type": "string"
          }
        }
      },
      {
        "type": "string",
        "$id": "https://l7tech.com/2025/json-schema/assertions/sub-types/goid"
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Write LDAP",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/ldapProviderId",
            "i18n": "ldapConnector",
            "options": {
              "defaultOptions": []
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/dn",
            "i18n": "dn",
            "options": {
              "markAsRequired": true
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/changetype",
            "i18n": "changeType",
            "options": {
              "markAsRequired": true
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/attributeList",
            "i18n": "attributeList",
            "options": {
              "nameValueList": true,
              "allowReorder": true,
              "detail": {
                "type": "VerticalLayout",
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/attribute",
                    "i18n": "attributes.key",
                    "options": {
                      "markAsRequired": true
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/value",
                    "i18n": "attributes.value",
                    "options": {
                      "markAsRequired": true
                    }
                  }
                ]
              }
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/variablePrefix",
            "i18n": "variablePrefix",
            "options": {
              "markAsRequired": true,
              "contextVariable": true,
              "variableType": "output",
              "allowedDataTypes": []
            }
          }
        ]
      }
    ],
    "configSchemaPatches": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/LdapWrite",
        "patches": [
          {
            "op": "add",
            "path": "/properties/ldapProviderId/enum",
            "value": [
              ""
            ]
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/LdapWrite",
        "locale": "en",
        "content": {
          "ldapConnector.label": "LDAP Connector",
          "dn.label": "DN",
          "changeType.label": "Change Type",
          "changeType.ADD": "Add",
          "changeType.DELETE": "Delete",
          "changeType.MODIFY": "Modify",
          "changeType.MODRDN": "Modrdn",
          "attributeList.label": "Attribute/Value",
          "attributes.key.label": "Attribute",
          "attributes.value.label": "Value",
          "variablePrefix.label": "Prefix"
        }
      }
    ]
  },
  {
    "configName": "LookupApiKey",
    "refVariables": [
      {
        "fieldPath": ".variablePrefix",
        "refType": "OUT",
        "dataType": "other",
        "prefixed": true
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".key",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".found",
        "refType": "OUT",
        "dataType": "boolean"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".status",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".secret",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".service",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".plan",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".xml",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".label",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".platform",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".oauthCallbackUrl",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".oauthScope",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".oauthType",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".version",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".accountPlanMappingId",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".applicationId",
        "refType": "OUT",
        "dataType": "string"
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Look Up API Key",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/apiKey",
            "i18n": "apiKey",
            "options": {
              "markAsRequired": true
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/variablePrefix",
            "i18n": "variablePrefix",
            "options": {
              "markAsRequired": true
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/serviceId",
            "i18n": "serviceId"
          }
        ]
      }
    ],
    "configSchemaPatches": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/LookupApiKey",
        "patches": [
          {
            "op": "replace",
            "path": "/properties/serviceId",
            "value": {
              "type": "string",
              "default": ""
            }
          },
          {
            "op": "replace",
            "path": "/properties/variablePrefix",
            "value": {
              "type": "string",
              "default": ""
            }
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/LookupApiKey",
        "locale": "en",
        "content": {
          "apiKey.label": "API Key",
          "serviceId.label": "Service ID",
          "variablePrefix.label": "Variable Prefix"
        }
      }
    ]
  },
  {
    "configName": "LookupDynamicContextVariables",
    "displayNameFormats": [
      {
        "format": "Look Up Context Variable: find{{.sourceVariable}}; output value to {{.targetOutputVariablePrefix}}",
        "condition": "and(not(isNull({{.sourceVariable}})),not(isNull({{.targetOutputVariablePrefix}})))"
      }
    ],
    "refVariables": [
      {
        "fieldPath": ".sourceVariable",
        "refType": "IN",
        "dataType": "other"
      },
      {
        "fieldPath": ".targetOutputVariablePrefix",
        "refType": "OUT",
        "dataType": "other",
        "prefixed": true
      },
      {
        "fieldPath": ".targetOutputVariablePrefix",
        "suffix": ".output",
        "refType": "OUT",
        "dataType": "other",
        "settable": true
      },
      {
        "fieldPath": ".targetOutputVariablePrefix",
        "suffix": ".multivalued",
        "refType": "OUT",
        "dataType": "boolean",
        "settable": true
      },
      {
        "fieldPath": ".targetOutputVariablePrefix",
        "suffix": ".found",
        "refType": "OUT",
        "dataType": "boolean",
        "settable": true
      }
    ],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/LookupDynamicContextVariables",
        "title": "Look Up Context Variable",
        "properties": {
          "failOnNotFound": {
            "type": "boolean",
            "default": true
          },
          "sourceVariable": {
            "type": "string"
          },
          "targetDataType": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/sub-types/dataType"
          },
          "targetOutputVariablePrefix": {
            "type": "string"
          }
        }
      },
      {
        "type": "string",
        "$id": "https://l7tech.com/2025/json-schema/assertions/sub-types/dataType",
        "enum": [
          "string",
          "dateTime",
          "cert",
          "xml",
          "message"
        ],
        "default": "string"
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/LookupDynamicContextVariables/Main",
        "title": "Look Up Context Variable",
        "properties": {
          "LookupDynamicContextVariables": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/LookupDynamicContextVariables"
          },
          ".properties": {
            "type": "object",
            "properties": {
              ".enabled": {
                "type": "boolean",
                "default": true
              },
              ".left.comment": {
                "type": "string"
              },
              ".right.comment": {
                "type": "string"
              }
            }
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Look Up Context Variable",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/sourceVariable",
            "i18n": "sourceVariable",
            "options": {
              "markAsRequired": true,
              "contextVariable": true,
              "variableType": "input",
              "allowedDataTypes": []
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/failOnNotFound",
            "i18n": "failOnNotFound",
            "options": {
              "format": "checkbox",
              "markAsRequired": true
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/targetDataType",
            "i18n": "targetDataType",
            "options": {
              "markAsRequired": true
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/targetOutputVariablePrefix",
            "i18n": "targetOutputVariablePrefix",
            "options": {
              "markAsRequired": true,
              "contextVariable": true,
              "variableType": "output",
              "allowedDataTypes": []
            }
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/LookupDynamicContextVariables",
        "locale": "en",
        "content": {
          "sourceVariable.label": "Expression",
          "failOnNotFound.label": "Fail if not found",
          "targetDataType.label": "Target Data Type",
          "targetDataType.string": "String",
          "targetDataType.dateTime": "Date/Time",
          "targetDataType.cert": "X.509 Certificate",
          "targetDataType.xml": "XML Element",
          "targetDataType.message": "Message",
          "targetOutputVariablePrefix.label": "Target Variable Prefix",
          "common.error.invalid_variable.field": "Must start with a letter or underscore, and contains optional letters, digits, underscores, dashes, or periods.",
          "common.error.required.field": "This is a required field"
        }
      }
    ]
  },
  {
    "configName": "LookupOutboundSecureConversationSession",
    "displayNameFormats": [
      {
        "format": "Look Up Outbound Secure Conversation Session to {{.serviceUrl}}",
        "condition": "not(isNull({{.serviceUrl}}))"
      }
    ],
    "refVariables": [
      {
        "fieldPath": ".variablePrefix",
        "refType": "OUT",
        "dataType": "other",
        "prefixed": true
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".session",
        "refType": "OUT",
        "dataType": "other"
      }
    ],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/LookupOutboundSecureConversationSession",
        "title": "Look Up Outbound Secure Conversation Session",
        "properties": {
          "otherTargetMessageVariable": {
            "type": "string"
          },
          "serviceUrl": {
            "type": "string"
          },
          "target": {
            "type": "string",
            "enum": [
              "REQUEST",
              "RESPONSE",
              "OTHER"
            ],
            "default": "REQUEST"
          },
          "variablePrefix": {
            "type": "string"
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Look Up Outbound Secure Conversation Session",
        "elements": [
          {
            "type": "Control",
            "i18n": "target",
            "scope": "#/properties/target",
            "options": {
              "messageTarget": true
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/serviceUrl",
            "i18n": "serviceURL",
            "options": {
              "markAsRequired": true
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/variablePrefix",
            "i18n": "prefix",
            "options": {
              "markAsRequired": true,
              "contextVariable": true,
              "variableType": "output",
              "allowedDataTypes": []
            }
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/LookupOutboundSecureConversationSession",
        "locale": "en",
        "content": {
          "target.label": "Message Target",
          "serviceURL.label": "Service URL",
          "prefix.label": "Variable Prefix"
        }
      }
    ]
  },
  {
    "configName": "LookupTrustedCertificate",
    "displayNameFormats": [
      {
        "format": "Look Up Trusted Certificate by Name: {{.trustedCertificateName}}",
        "condition": "or(isNull({{.lookupType}}), equals({{.lookupType}}, TRUSTED_CERT_NAME))"
      },
      {
        "format": "Look Up Certificate by ThumbprintSHA1: {{.certThumbprintSha1}}",
        "condition": "equals({{.lookupType}}, CERT_THUMBPRINT_SHA1)"
      },
      {
        "format": "Look Up Certificate by Subject Key ID: {{.certSubjectKeyIdentifier}}",
        "condition": "equals({{.lookupType}}, CERT_SKI)"
      },
      {
        "format": "Look Up Certificate by Subject DN: {{.certSubjectDn}}",
        "condition": "equals({{.lookupType}}, CERT_SUBJECT_DN)"
      },
      {
        "format": "Look Up Certificate by Issuer DN/Serial Number: {{.certIssuerDn}}/{{.certSerialNumber}}",
        "condition": "equals({{.lookupType}}, CERT_ISSUER_SERIAL)"
      }
    ],
    "refVariables": [
      {
        "fieldPath": ".variableName",
        "refType": "OUT",
        "dataType": "cert",
        "multivalued": true,
        "settable": true
      }
    ],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/LookupTrustedCertificate",
        "title": "Look Up Certificate",
        "properties": {
          "allowMultipleCertificates": {
            "type": "boolean",
            "default": true
          },
          "certIssuerDn": {
            "type": "string"
          },
          "certSerialNumber": {
            "type": "string"
          },
          "certSubjectDn": {
            "type": "string"
          },
          "certSubjectKeyIdentifier": {
            "type": "string"
          },
          "certThumbprintSha1": {
            "type": "string"
          },
          "lookupType": {
            "type": "string",
            "enum": [
              "TRUSTED_CERT_NAME",
              "CERT_THUMBPRINT_SHA1",
              "CERT_SKI",
              "CERT_SUBJECT_DN",
              "CERT_ISSUER_SERIAL"
            ]
          },
          "trustedCertificateName": {
            "type": "string"
          },
          "variableName": {
            "type": "string"
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Look Up Certificate",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/lookupType",
            "i18n": "lookupType"
          },
          {
            "type": "Group",
            "options": {
              "groupType": "wrapCustomClass"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/trustedCertificateName",
                "i18n": "trustedCertificateName",
                "options": {
                  "markAsRequired": true
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/allowMultipleCertificates",
                "i18n": "allowMultipleCertificates"
              }
            ],
            "rule": {
              "effect": "SHOW",
              "condition": {
                "scope": "#/properties/lookupType",
                "schema": {
                  "const": "TRUSTED_CERT_NAME"
                }
              }
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/certThumbprintSha1",
            "i18n": "certThumbprintSha1",
            "options": {
              "markAsRequired": true
            },
            "rule": {
              "effect": "SHOW",
              "condition": {
                "scope": "#/properties/lookupType",
                "schema": {
                  "const": "CERT_THUMBPRINT_SHA1"
                }
              }
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/certSubjectKeyIdentifier",
            "i18n": "certSubjectKeyIdentifier",
            "options": {
              "markAsRequired": true
            },
            "rule": {
              "effect": "SHOW",
              "condition": {
                "scope": "#/properties/lookupType",
                "schema": {
                  "const": "CERT_SKI"
                }
              }
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/certSubjectDn",
            "i18n": "certSubjectDn",
            "options": {
              "markAsRequired": true
            },
            "rule": {
              "effect": "SHOW",
              "condition": {
                "scope": "#/properties/lookupType",
                "schema": {
                  "const": "CERT_SUBJECT_DN"
                }
              }
            }
          },
          {
            "type": "VerticalLayout",
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/certIssuerDn",
                "i18n": "lookupType.CERT_ISSUER_SERIAL.certIssuerDn",
                "options": {
                  "markAsRequired": true
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/certSerialNumber",
                "i18n": "lookupType.CERT_ISSUER_SERIAL.certSerialNumber",
                "options": {
                  "markAsRequired": true
                }
              }
            ],
            "rule": {
              "effect": "SHOW",
              "condition": {
                "scope": "#/properties/lookupType",
                "schema": {
                  "const": "CERT_ISSUER_SERIAL"
                }
              }
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/variableName",
            "options": {
              "markAsRequired": true,
              "contextVariable": true,
              "variableType": "output",
              "allowedDataTypes": []
            },
            "i18n": "variableName"
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/LookupTrustedCertificate",
        "locale": "en",
        "content": {
          "lookupType.label": "Certificate Lookup Method",
          "lookupType.TRUSTED_CERT_NAME": "Look up Trusted Certificate by Name",
          "lookupType.CERT_THUMBPRINT_SHA1": "Look up Certificate by ThumbprintSHA1",
          "lookupType.CERT_SKI": "Look up Certificate by Subject Key ID",
          "lookupType.CERT_SUBJECT_DN": "Look up Certificate by Subject DN",
          "lookupType.CERT_ISSUER_SERIAL": "Look up Certificate by Issuer DN and Serial Number",
          "trustedCertificateName.label": "Certificate Name",
          "certThumbprintSha1.label": "ThumbprintSHA1",
          "certSubjectKeyIdentifier.label": "Subject Key ID",
          "certSubjectDn.label": "Subject DN",
          "lookupType.CERT_ISSUER_SERIAL.certIssuerDn.label": "Issuer DN",
          "lookupType.CERT_ISSUER_SERIAL.certSerialNumber.label": "Serial Number",
          "allowMultipleCertificates.label": "Fail if multiple certificates are found",
          "variableName.label": "Output Variable Name"
        }
      }
    ]
  },
  {
    "configName": "MQTTConnectionAssertion",
    "displayNameFormats": [
      {
        "format": "Disconnect from broker: using connection profile [{{.connectionProfileDescription}}] with client ID: {{.clientIdentifier}}",
        "condition": "and(not(isNull({{.connectionProfileDescription}})), not(isNull({{.clientIdentifier}})), equals({{.connectAssertion}}, false))"
      },
      {
        "format": "Connect to broker: using connection profile [{{.connectionProfileDescription}}] with client ID: {{.clientIdentifier}}",
        "condition": "and(not(isNull({{.connectionProfileDescription}})), not(isNull({{.clientIdentifier}})), , equals({{.connectAssertion}}, true))"
      },
      {
        "format": "Manage MQTT Connection",
        "condition": "true"
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Manage MQTT Connection",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/target",
            "options": {
              "messageTarget": true,
              "otherTargetMessageVariableLabel": "assertion.common.target.otherTargetContextVariable"
            }
          },
          {
            "type": "Control",
            "i18n": "connectionGoid",
            "scope": "#/properties/connectionGoid",
            "options": {
              "markAsRequired": true
            }
          },
          {
            "type": "Control",
            "i18n": "clientIdentifier",
            "scope": "#/properties/clientIdentifier",
            "options": {
              "markAsRequired": true
            }
          },
          {
            "type": "Control",
            "i18n": "__assertionBehavior",
            "scope": "#/properties/__assertionBehavior",
            "options": {
              "format": "radio",
              "useRowLayout": false,
              "uiSchemasMap": {
                "DISCONNECT": {
                  "type": "VerticalLayout",
                  "elements": [
                    {
                      "type": "Control",
                      "i18n": "forceDisconnect",
                      "scope": "#/properties/forceDisconnect"
                    }
                  ]
                }
              }
            }
          }
        ]
      }
    ],
    "configDataPatches": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/MQTTConnectionAssertion#BeforeEdit",
        "patches": [
          {
            "op": "test",
            "path": "/forceDisconnect",
            "value": "false"
          },
          {
            "op": "replace",
            "path": "/forceDisconnect",
            "value": false
          }
        ]
      },
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/MQTTConnectionAssertion#BeforeEdit",
        "patches": [
          {
            "op": "test",
            "path": "/forceDisconnect",
            "value": "true"
          },
          {
            "op": "replace",
            "path": "/forceDisconnect",
            "value": true
          }
        ]
      },
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/MQTTConnectionAssertion#BeforeEdit",
        "patches": [
          {
            "op": "test",
            "path": "/connectAssertion",
            "value": false
          },
          {
            "op": "add",
            "path": "/__assertionBehavior",
            "value": "DISCONNECT"
          }
        ]
      },
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/MQTTConnectionAssertion#AfterEdit",
        "patches": [
          {
            "op": "test",
            "path": "/__assertionBehavior",
            "value": "DISCONNECT"
          },
          {
            "op": "replace",
            "path": "/connectAssertion",
            "value": false
          }
        ]
      },
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/MQTTConnectionAssertion#AfterEdit",
        "patches": [
          {
            "op": "test",
            "path": "/__assertionBehavior",
            "value": "CONNECT"
          },
          {
            "op": "replace",
            "path": "/connectAssertion",
            "value": true
          }
        ]
      },
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/MQTTConnectionAssertion#AfterEdit",
        "patches": [
          {
            "op": "remove",
            "path": "/__assertionBehavior"
          }
        ]
      },
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/MQTTConnectionAssertion#AfterEdit",
        "patches": [
          {
            "op": "test",
            "path": "/forceDisconnect",
            "value": false
          },
          {
            "op": "remove",
            "path": "/forceDisconnect",
            "value": "false"
          }
        ]
      },
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/MQTTConnectionAssertion#AfterEdit",
        "patches": [
          {
            "op": "test",
            "path": "/forceDisconnect",
            "value": true
          },
          {
            "op": "add",
            "path": "/forceDisconnect",
            "value": "true"
          }
        ]
      }
    ],
    "configSchemaPatches": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/MQTTConnectionAssertion",
        "patches": [
          {
            "op": "add",
            "path": "/properties/__assertionBehavior",
            "value": {
              "type": "string",
              "enum": [
                "CONNECT",
                "DISCONNECT"
              ],
              "default": "CONNECT"
            }
          },
          {
            "op": "replace",
            "path": "/properties/forceDisconnect",
            "value": {
              "type": "boolean",
              "default": false
            }
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "MQTTConnectionAssertion/Main",
        "locale": "en",
        "content": {
          "connectionGoid.label": "Connection",
          "__assertionBehavior.label": "Assertion Behaviour",
          "__assertionBehavior.CONNECT": "Connect",
          "__assertionBehavior.DISCONNECT": "Disconnect",
          "clientIdentifier.label": "Client Identifier",
          "forceDisconnect.label": "Force disconnect"
        }
      }
    ]
  },
  {
    "configName": "MQTTCredential",
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Require MQTT Credentials"
      }
    ]
  },
  {
    "configName": "MQTTPublishAssertion",
    "displayNameFormats": [
      {
        "format": "Publish message to broker: using connection profile [{{.connectionProfileDescription}}] on topic: {{.topicName}} (qos {{.topicQOS}}) with client ID: {{.clientIdentifier}}",
        "condition": "and(not(isNull({{.connectionProfileDescription}})), not(isNull({{.clientIdentifier}})))"
      },
      {
        "format": "Publish message to client: using listen port [{{.listenPortDescription}}] on topic: {{.topicName}} (qos {{.topicQOS}}) with client ID: {{.clientIdentifier}}",
        "condition": "and(not(isNull({{.listenPortDescription}})), not(isNull({{.clientIdentifier}})))"
      },
      {
        "format": "Publish MQTT Message",
        "condition": "true"
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Publish MQTT Message",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/target",
            "options": {
              "messageTarget": true
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/clientIdentifier",
            "i18n": "clientIdentifier",
            "options": {
              "markAsRequired": true
            }
          },
          {
            "type": "Group",
            "i18n": "assertionBehavior.label",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "assertion-behavior-group"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/__publishToBroker",
                "label": false,
                "options": {
                  "format": "radio",
                  "useRowLayout": false,
                  "uiSchemasMap": {
                    "true": {
                      "type": "Group",
                      "options": {
                        "groupType": "wrapCustomClass",
                        "customClass": "publish-to-broker-group"
                      },
                      "elements": [
                        {
                          "type": "Control",
                          "i18n": "connectionGoid",
                          "scope": "#/properties/connectionGoid"
                        }
                      ]
                    },
                    "false": {
                      "type": "Group",
                      "options": {
                        "groupType": "wrapCustomClass",
                        "customClass": "publish-to-broker-group"
                      },
                      "elements": [
                        {
                          "type": "Control",
                          "i18n": "listenPortId",
                          "scope": "#/properties/listenPortId",
                          "options": {
                            "markAsRequired": true
                          }
                        }
                      ]
                    }
                  }
                }
              }
            ]
          },
          {
            "type": "Group",
            "i18n": "messageOptions.label",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "message-options-group"
            },
            "elements": [
              {
                "type": "Control",
                "i18n": "topicName",
                "scope": "#/properties/topicName",
                "options": {
                  "markAsRequired": true
                }
              },
              {
                "type": "Control",
                "i18n": "topicQOS",
                "scope": "#/properties/topicQOS"
              },
              {
                "type": "Control",
                "i18n": "retainMessage",
                "scope": "#/properties/retainMessage"
              }
            ]
          },
          {
            "type": "Group",
            "label": "WS-Security Recipient",
            "options": {
              "groupType": "ShowHide"
            },
            "elements": [
              {
                "type": "Control",
                "options": {
                  "wssRecipient": true
                }
              }
            ]
          }
        ]
      }
    ],
    "configDataPatches": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/MQTTPublishAssertion#AfterEdit",
        "patches": [
          {
            "op": "remove",
            "path": "/__publishToBroker"
          }
        ]
      }
    ],
    "configSchemaPatches": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/MQTTPublishAssertion",
        "patches": [
          {
            "op": "add",
            "path": "/properties/__publishToBroker",
            "value": {
              "type": "string",
              "default": "true",
              "enum": [
                "true",
                "false"
              ]
            }
          },
          {
            "op": "add",
            "path": "/properties/topicQOS/enum",
            "value": [
              "0",
              "1",
              "2"
            ]
          },
          {
            "op": "add",
            "path": "/properties/topicQOS/default",
            "value": "0"
          },
          {
            "op": "add",
            "path": "/properties/retainMessage/enum",
            "value": [
              "true",
              "false"
            ]
          },
          {
            "op": "add",
            "path": "/properties/retainMessage/default",
            "value": "false"
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "MQTTPublishAssertion/Main",
        "locale": "en",
        "content": {
          "clientIdentifier.label": "Client Identifier",
          "assertionBehavior.label": "Assertion Behavior",
          "messageOptions.label": "Message Options",
          "__publishToBroker.true": "Publish to broker through MQTT outbound connection",
          "__publishToBroker.false": "Publish to client through MQTT listen port",
          "connectionGoid.label": "Connection",
          "listenPortId.label": "Listen Port",
          "topicName.label": "Topic Name",
          "topicQOS.label": "Topic QOS",
          "retainMessage.lable": "Retain Message"
        }
      }
    ]
  },
  {
    "configName": "MQTTSubscribeAssertion",
    "displayNameFormats": [
      {
        "format": "Unsubscribe from topics on broker: using connection profile [{{.connectionProfileDescription}}] with client ID: {{.clientIdentifier}}",
        "condition": "and(not(isNull({{.connectionProfileDescription}})), not(isNull({{.clientIdentifier}})), equals({{.subscribeAssertion}}, false))"
      },
      {
        "format": "Subscribe to topics on broker: using connection profile [{{.connectionProfileDescription}}] with client ID: {{.clientIdentifier}}",
        "condition": "and(not(isNull({{.connectionProfileDescription}})), not(isNull({{.clientIdentifier}})))"
      },
      {
        "format": "Manage MQTT Subscription(s)",
        "condition": "true"
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Manage MQTT Subscription(s)",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/target",
            "options": {
              "messageTarget": true,
              "otherTargetMessageVariableLabel": "assertion.common.target.otherTargetContextVariable"
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/clientIdentifier",
            "i18n": "clientIdentifier",
            "options": {
              "markAsRequired": true
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/__subscribeOptions",
            "i18n": "__subscribeOptions",
            "options": {
              "format": "radio",
              "useRowLayout": false
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/connectionGoid",
            "i18n": "connectionGoid",
            "options": {
              "markAsRequired": true
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/topicsFromContextVariable",
            "i18n": "topicsFromContextVariable",
            "options": {
              "subUiSchema": {
                "type": "VerticalLayout",
                "elements": [
                  {
                    "type": "Control",
                    "i18n": "topicsContextVariable",
                    "scope": "#/properties/topicsContextVariable"
                  }
                ]
              }
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/subscriptions",
            "i18n": "subscriptions",
            "options": {
              "nameValueList": true,
              "modalCallbackEvent": true,
              "detail": {
                "type": "VerticalLayout",
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/topic",
                    "i18n": "topic",
                    "options": {
                      "markAsRequired": true
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/qos",
                    "i18n": "qos",
                    "options": {
                      "markAsRequired": true
                    },
                    "rule": {
                      "effect": "SHOW",
                      "condition": {
                        "scope": "#/properties/__subscribe",
                        "schema": {
                          "const": "Subscribe"
                        }
                      }
                    }
                  }
                ]
              }
            },
            "rule": {
              "effect": "SHOW",
              "condition": {
                "scope": "#/properties/topicsFromContextVariable",
                "schema": {
                  "const": false
                }
              }
            }
          }
        ]
      }
    ],
    "configDataPatches": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/MQTTSubscribeAssertion#AfterEdit",
        "patches": [
          {
            "op": "remove",
            "path": "/__subscribeOptions"
          }
        ]
      },
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/MQTTSubscribeAssertion#AfterEdit",
        "patches": [
          {
            "op": "test",
            "path": "/topicsFromContextVariable",
            "value": false
          },
          {
            "op": "add",
            "path": "/topicsContextVariable",
            "value": ""
          }
        ]
      }
    ],
    "configSchemaPatches": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/MQTTSubscribeAssertion",
        "patches": [
          {
            "op": "add",
            "path": "/properties/__subscribeOptions",
            "value": {
              "type": "string",
              "enum": [
                "Subscribe",
                "Unsubscribe"
              ],
              "default": "Subscribe"
            }
          },
          {
            "op": "replace",
            "path": "/properties/subscriptions/items/properties",
            "value": {
              "__subscribe": {
                "type": "string"
              },
              "topic": {
                "type": "string"
              },
              "qos": {
                "type": "string",
                "title": "Quality Of Service"
              }
            }
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/MQTTSubscribeAssertion",
        "locale": "en",
        "content": {
          "clientIdentifier.label": "Client Identifier",
          "subscriptions.error": "At least one topic must be specified",
          "connectionGoid.label": "Connection",
          "topicsFromContextVariable.label": "Topics from context variable",
          "topicsContextVariable.label": "Context Variable",
          "subscriptions.label": "Topics",
          "topic.label": "Topic",
          "qos.label": "Quality Of Service",
          "__subscribeOptions.label": "Assertion Behaviour"
        }
      }
    ]
  },
  {
    "configName": "MTOMDecodeAssertion",
    "displayNameFormats": [
      {
        "format": "Decode MTOM Message",
        "condition": "true"
      }
    ],
    "refVariables": [
      {
        "fieldPath": ".outputTarget",
        "refType": "OUT",
        "dataType": "messageTarget"
      }
    ],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/MTOMDecodeAssertion",
        "title": "Decode MTOM Message",
        "properties": {
          "otherTargetMessageVariable": {
            "type": "string"
          },
          "outputTarget": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/sub-types/messageTargetableSupport"
          },
          "processSecuredOnly": {
            "type": "boolean"
          },
          "removePackaging": {
            "type": "boolean"
          },
          "requireEncoded": {
            "type": "boolean"
          },
          "target": {
            "type": "string",
            "enum": [
              "REQUEST",
              "RESPONSE"
            ]
          }
        }
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/sub-types/messageTargetableSupport",
        "properties": {
          "otherTargetMessageVariable": {
            "type": "string"
          },
          "sourceUsedByGateway": {
            "type": "boolean"
          },
          "target": {
            "type": "string",
            "enum": [
              "DEFAULT",
              "REQUEST",
              "RESPONSE",
              "OTHER"
            ]
          },
          "targetModifiedByGateway": {
            "type": "boolean"
          }
        }
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/MTOMDecodeAssertion/Main",
        "title": "Decode MTOM Message",
        "properties": {
          "MTOMDecodeAssertion": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/MTOMDecodeAssertion"
          },
          ".properties": {
            "type": "object",
            "properties": {
              ".enabled": {
                "type": "boolean",
                "default": true
              },
              ".left.comment": {
                "type": "string"
              },
              ".right.comment": {
                "type": "string"
              }
            }
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Decode MTOM Message",
        "elements": [
          {
            "type": "Group",
            "i18n": "input.subTitle",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "sub-title-text",
              "labelColor": "pageTitle"
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/outputTarget/properties/target",
            "i18n": "outputTarget.target"
          },
          {
            "type": "Control",
            "scope": "#/properties/target",
            "i18n": "source",
            "options": {
              "markAsRequired": true
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/outputTarget/properties/otherTargetMessageVariable",
            "label": "Message variable",
            "options": {
              "markAsRequired": true,
              "contextVariable": true,
              "variableType": "output",
              "allowedDataTypes": []
            },
            "rule": {
              "effect": "SHOW",
              "condition": {
                "scope": "#/properties/outputTarget/properties/target",
                "schema": {
                  "const": "OTHER"
                }
              }
            }
          },
          {
            "type": "Group",
            "i18n": "decode.subTitle",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "decode-sub-title-text",
              "labelColor": "pageTitle"
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/requireEncoded",
            "i18n": "requireEncoded"
          },
          {
            "type": "Control",
            "scope": "#/properties/removePackaging",
            "i18n": "removePackaging"
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/MTOMDecodeAssertion",
        "locale": "en",
        "content": {
          "input.subTitle": "Input / Output",
          "decode.subTitle": "Decode Settings",
          "outputTarget.target.label": "Output Message",
          "outputTarget.target.REQUEST": "Request",
          "outputTarget.target.RESPONSE": "Response",
          "outputTarget.target.OTHER": "Message Variable",
          "outputTarget.target.DEFAULT": "Default",
          "source.label": "Source Message",
          "source.REQUEST": "Request",
          "source.RESPONSE": "Response",
          "requireEncoded.label": "Required encoded",
          "removePackaging.label": "Remove packaging"
        }
      }
    ]
  },
  {
    "configName": "MTOMEncodeAssertion",
    "displayNameFormats": [
      {
        "format": "Encode to MTOM Format",
        "condition": "true"
      }
    ],
    "refVariables": [
      {
        "fieldPath": ".outputTarget",
        "refType": "OUT",
        "dataType": "messageTarget"
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Encode to MTOM Format",
        "elements": [
          {
            "type": "Group",
            "i18n": "input.subTitle",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "sub-title-text",
              "labelColor": "pageTitle"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/target",
                "i18n": "target"
              }
            ]
          },
          {
            "type": "Control",
            "scope": "#/properties/otherTargetMessageVariable",
            "i18n": "otherTargetMessageVariable",
            "options": {
              "markAsRequired": true,
              "contextVariable": true,
              "variableType": "input",
              "allowedDataTypes": []
            },
            "rule": {
              "effect": "SHOW",
              "condition": {
                "scope": "#/properties/target",
                "schema": {
                  "const": "OTHER"
                }
              }
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/outputTarget/properties/target",
            "i18n": "outputTarget.target"
          },
          {
            "type": "Control",
            "scope": "#/properties/outputTarget/properties/otherTargetMessageVariable",
            "i18n": "outputTarget.otherTargetMessageVariable",
            "options": {
              "markAsRequired": true,
              "contextVariable": true,
              "variableType": "output",
              "allowedDataTypes": []
            },
            "rule": {
              "effect": "SHOW",
              "condition": {
                "scope": "#/properties/outputTarget/properties/target",
                "schema": {
                  "const": "OTHER"
                }
              }
            }
          },
          {
            "type": "Group",
            "i18n": "encode.subTitle",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "encode-sub-title-text",
              "labelColor": "pageTitle"
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/alwaysEncode",
            "i18n": "alwaysEncode"
          },
          {
            "type": "Control",
            "scope": "#/properties/optimizationThreshold",
            "i18n": "optimizationThreshold",
            "options": {
              "maxLength": 4
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/xpathExpressions",
            "i18n": "xpathExpressions",
            "options": {
              "nameValueList": true,
              "isEditXPath": true,
              "modalCallbackEvent": true,
              "detail": {
                "type": "HorizontalLayout",
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/expression",
                    "i18n": "xpathExpressions.expression"
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/xpathVersion",
                    "options": {
                      "hideColumn": true
                    }
                  }
                ]
              }
            }
          },
          {
            "type": "Group",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "fail-if-not-found"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/failIfNotFound",
                "i18n": "failIfNotFound"
              }
            ]
          }
        ]
      }
    ],
    "configSchemaPatches": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/MTOMEncodeAssertion",
        "patches": [
          {
            "op": "remove",
            "path": "/properties/optimizationThreshold/default"
          },
          {
            "op": "replace",
            "path": "/properties/outputTarget/properties/target/enum",
            "value": [
              "DEFAULT",
              "REQUEST",
              "RESPONSE",
              "OTHER"
            ]
          },
          {
            "op": "add",
            "path": "/properties/xpathExpressions/items/properties/expression/title",
            "value": "Optimization XPaths"
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/MTOMEncodeAssertion",
        "locale": "en",
        "content": {
          "target.label": "Source Message",
          "target.REQUEST": "Request",
          "target.RESPONSE": "Response",
          "target.OTHER": "Other",
          "otherTargetMessageVariable.label": "Context Variable",
          "input.subTitle": "Input / Output",
          "encode.subTitle": "Encode Settings",
          "outputTarget.target.label": "Target Message",
          "outputTarget.otherTargetMessageVariable.label": "Message variable",
          "outputTarget.target.REQUEST": "Request",
          "outputTarget.target.RESPONSE": "Response",
          "outputTarget.target.OTHER": "Message Variable",
          "outputTarget.target.DEFAULT": "Default",
          "alwaysEncode.label": "Always encode",
          "optimizationThreshold.label": "Optimization Threshold (KB)",
          "xpathExpressions.label": "Optimization XPaths",
          "xpathExpressions.expression.label": "Optimization XPaths",
          "failIfNotFound.label": "Fail if element not found",
          "optimizationThreshold.error": "Optimization Threshold value should be greater than or equal to zero"
        }
      }
    ]
  },
  {
    "configName": "MTOMValidateAssertion",
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/MTOMValidateAssertion",
        "title": "Validate MTOM Message",
        "properties": {
          "otherTargetMessageVariable": {
            "type": "string"
          },
          "requireEncoded": {
            "type": "boolean",
            "default": true
          },
          "target": {
            "type": "string",
            "enum": [
              "REQUEST",
              "RESPONSE",
              "OTHER"
            ],
            "default": "REQUEST"
          },
          "validationRules": {
            "type": "array",
            "items": {
              "$ref": "https://l7tech.com/2025/json-schema/assertions/MTOMValidateAssertion:MTOMValidationRule"
            }
          }
        }
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/MTOMValidateAssertion:MTOMValidationRule",
        "properties": {
          "count": {
            "type": "integer"
          },
          "size": {
            "type": "number"
          },
          "xpathExpression": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/sub-types/xpathExpression"
          }
        }
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/sub-types/xpathExpression",
        "properties": {
          "expression": {
            "type": "string"
          },
          "namespaces": {
            "type": "object"
          },
          "xpathVersion": {
            "type": "string",
            "enum": [
              "UNSPECIFIED",
              "XPATH_1_0",
              "XPATH_2_0"
            ],
            "default": "UNSPECIFIED"
          }
        }
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/MTOMValidateAssertion/Main",
        "title": "Validate MTOM Message",
        "properties": {
          "MTOMValidateAssertion": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/MTOMValidateAssertion"
          },
          ".properties": {
            "type": "object",
            "properties": {
              ".enabled": {
                "type": "boolean",
                "default": true
              },
              ".left.comment": {
                "type": "string"
              },
              ".right.comment": {
                "type": "string"
              }
            }
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Validate MTOM Message",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/target",
            "options": {
              "messageTarget": true,
              "otherTargetMessageVariableLabel": "assertion.common.target.otherTargetContextVariable"
            }
          },
          {
            "type": "Group",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "validation-rule-group"
            },
            "elements": [
              {
                "type": "Control",
                "i18n": "requireEncoded",
                "scope": "#/properties/requireEncoded"
              },
              {
                "type": "Group",
                "i18n": "validationRules.label",
                "options": {
                  "groupType": "wrapCustomClass",
                  "customClass": "validation-rule-group"
                },
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/validationRules",
                    "options": {
                      "fieldGroup": true,
                      "buttonLabel": "validationRules.btn",
                      "detail": {
                        "type": "VerticalLayout",
                        "elements": [
                          {
                            "type": "Group",
                            "label": "false",
                            "options": {
                              "groupType": "wrapCustomClass",
                              "customClass": "edit-path-group"
                            },
                            "elements": [
                              {
                                "type": "Control",
                                "scope": "#/properties/xpathExpression",
                                "i18n": "expression",
                                "options": {
                                  "editXPath": true
                                }
                              }
                            ]
                          },
                          {
                            "type": "HorizontalLayout",
                            "elements": [
                              {
                                "type": "Control",
                                "scope": "#/properties/count",
                                "i18n": "count",
                                "options": {
                                  "markAsRequired": true
                                }
                              },
                              {
                                "type": "Control",
                                "scope": "#/properties/size",
                                "i18n": "size",
                                "options": {
                                  "markAsRequired": true
                                }
                              }
                            ]
                          }
                        ]
                      }
                    }
                  }
                ]
              }
            ]
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/MTOMValidateAssertion",
        "locale": "en",
        "content": {
          "editXPath": "Edit XPath",
          "validationRules.label": "Validation Rules",
          "requireEncoded.label": "Require encoded",
          "expression.label": "XPath",
          "count": "Count",
          "size": "Size",
          "count.ERROR": "The count field must be a number between 0 and 9999999",
          "size.ERROR": "The count field must be a number between 0 and 9999999999",
          "validationRules.btn": "Add Rule"
        }
      }
    ]
  },
  {
    "configName": "ManageApiKey",
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Manage API Keys",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/variablePrefix"
          },
          {
            "type": "Control",
            "scope": "#/properties/apiKey"
          },
          {
            "type": "Control",
            "scope": "#/properties/apiKeyElement"
          },
          {
            "type": "Control",
            "scope": "#/properties/action"
          }
        ]
      }
    ],
    "configSchemaPatches": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/ManageApiKey",
        "patches": [
          {
            "op": "add",
            "path": "/properties/action/enum",
            "value": [
              "Add",
              "Update",
              "Remove"
            ]
          },
          {
            "op": "add",
            "path": "/properties/action/default",
            "value": "Add"
          }
        ]
      }
    ],
    "configDataPatches": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/ManageApiKey/Main#AfterEdit",
        "patches": [
          {
            "op": "test",
            "path": "/variablePrefix",
            "value": "apikey"
          },
          {
            "op": "remove",
            "path": "/variablePrefix"
          }
        ]
      },
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/ManageApiKey/Main#AfterEdit",
        "patches": [
          {
            "op": "test",
            "path": "/apiKey",
            "value": ""
          },
          {
            "op": "remove",
            "path": "/apiKey"
          }
        ]
      },
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/ManageApiKey/Main#AfterEdit",
        "patches": [
          {
            "op": "test",
            "path": "/apiKeyElement",
            "value": ""
          },
          {
            "op": "remove",
            "path": "/apiKeyElement"
          }
        ]
      }
    ]
  },
  {
    "configName": "ManageCookie",
    "displayNameFormats": [
      {
        "format": "Update Cookie(s) if name matches {{.cookieCriteria.name.value}}",
        "condition": "and(equals({{.operation}}, UPDATE), not(isNull({{.cookieCriteria.name}})), equals({{.cookieCriteria.name.regex}}, true), isNull({{.cookieCriteria.domain}}), isNull({{.cookieCriteria.path}}) )"
      },
      {
        "format": "Update Cookie(s) if name equals {{.cookieCriteria.name.value}}",
        "condition": "and(equals({{.operation}}, UPDATE), not(isNull({{.cookieCriteria.name}})), isNull({{.cookieCriteria.domain}}), isNull({{.cookieCriteria.path}}) )"
      },
      {
        "format": "Update Cookie(s) if domain matches {{.cookieCriteria.domain.value}}",
        "condition": "and(equals({{.operation}}, UPDATE), not(isNull({{.cookieCriteria.domain}})), equals({{.cookieCriteria.domain.regex}}, true), isNull({{.cookieCriteria.name}}), isNull({{.cookieCriteria.path}}) )"
      },
      {
        "format": "Update Cookie(s) if domain equals {{.cookieCriteria.domain.value}}",
        "condition": "and(equals({{.operation}}, UPDATE), not(isNull({{.cookieCriteria.domain}})), isNull({{.cookieCriteria.name}}), isNull({{.cookieCriteria.path}}) )"
      },
      {
        "format": "Update Cookie(s) if path matches {{.cookieCriteria.path.value}}",
        "condition": "and(equals({{.operation}}, UPDATE), not(isNull({{.cookieCriteria.path}})), isNull({{.cookieCriteria.domain}}), equals({{.cookieCriteria.path.regex}}, true), isNull({{.cookieCriteria.name}}) )"
      },
      {
        "format": "Update Cookie(s) if path equals {{.cookieCriteria.path.value}}",
        "condition": "and(equals({{.operation}}, UPDATE), not(isNull({{.cookieCriteria.path}})), isNull({{.cookieCriteria.domain}}), isNull({{.cookieCriteria.name}}) )"
      },
      {
        "format": "Update Cookie(s) if name matches {{.cookieCriteria.name.value}} and domain matches {{.cookieCriteria.domain.value}}",
        "condition": "and(equals({{.operation}}, UPDATE), equals({{.cookieCriteria.domain.regex}}, true), equals({{.cookieCriteria.name.regex}}, true), not(isNull({{.cookieCriteria.name}})), not(isNull({{.cookieCriteria.domain}})), isNull({{.cookieCriteria.path}}) )"
      },
      {
        "format": "Update Cookie(s) if name matches {{.cookieCriteria.name.value}} and domain equals {{.cookieCriteria.domain.value}} ",
        "condition": "and(equals({{.operation}}, UPDATE), equals({{.cookieCriteria.name.regex}}, true), not(isNull({{.cookieCriteria.name}})), not(isNull({{.cookieCriteria.domain}})), isNull({{.cookieCriteria.path}}) )"
      },
      {
        "format": "Update Cookie(s) if  name equals {{.cookieCriteria.name.value}} and domain matches {{.cookieCriteria.domain.value}}",
        "condition": "and(equals({{.operation}}, UPDATE), equals({{.cookieCriteria.domain.regex}}, true), not(isNull({{.cookieCriteria.name}})), not(isNull({{.cookieCriteria.domain}})), isNull({{.cookieCriteria.path}}) )"
      },
      {
        "format": "Update Cookie(s) if name equals {{.cookieCriteria.name.value}} and domain equals {{.cookieCriteria.domain.value}}",
        "condition": "and(equals({{.operation}}, UPDATE), not(isNull({{.cookieCriteria.name}})), not(isNull({{.cookieCriteria.domain}})), isNull({{.cookieCriteria.path}}) )"
      },
      {
        "format": "Update Cookie(s)  if  name matches {{.cookieCriteria.name.value}} and path matches {{.cookieCriteria.path.value}}",
        "condition": "and(equals({{.operation}}, UPDATE), equals({{.cookieCriteria.path.regex}}, true), equals({{.cookieCriteria.name.regex}}, true), not(isNull({{.cookieCriteria.name}})), not(isNull({{.cookieCriteria.path}})), isNull({{.cookieCriteria.domain}}) )"
      },
      {
        "format": "Update Cookie(s)  if name equals {{.cookieCriteria.name.value}} and path matches {{.cookieCriteria.path.value}}",
        "condition": "and(equals({{.operation}}, UPDATE), equals({{.cookieCriteria.path.regex}}, true), not(isNull({{.cookieCriteria.name}})), not(isNull({{.cookieCriteria.path}})), isNull({{.cookieCriteria.domain}}) )"
      },
      {
        "format": "Update Cookie(s)  if name matches {{.cookieCriteria.name.value}} path equals {{.cookieCriteria.path.value}}",
        "condition": "and(equals({{.operation}}, UPDATE), equals({{.cookieCriteria.name.regex}}, true), not(isNull({{.cookieCriteria.name}})), not(isNull({{.cookieCriteria.path}})), isNull({{.cookieCriteria.domain}}) )"
      },
      {
        "format": "Update Cookie(s)  if name equals {{.cookieCriteria.name.value}} and path equals {{.cookieCriteria.path.value}}",
        "condition": "and(equals({{.operation}}, UPDATE), not(isNull({{.cookieCriteria.name}})), not(isNull({{.cookieCriteria.path}})), isNull({{.cookieCriteria.domain}}) )"
      },
      {
        "format": "Update Cookie(s)  if path matches {{.cookieCriteria.path.value}} and domain matches {{.cookieCriteria.domain.value}}",
        "condition": "and(equals({{.operation}}, UPDATE), equals({{.cookieCriteria.path.regex}}, true), equals({{.cookieCriteria.domain.regex}}, true), not(isNull({{.cookieCriteria.domain}})), not(isNull({{.cookieCriteria.path}})), isNull({{.cookieCriteria.name}}) )"
      },
      {
        "format": "Update Cookie(s)  if path matches {{.cookieCriteria.path.value}} and domain equals {{.cookieCriteria.domain.value}}",
        "condition": "and(equals({{.operation}}, UPDATE), equals({{.cookieCriteria.path.regex}}, true), not(isNull({{.cookieCriteria.domain}})), not(isNull({{.cookieCriteria.path}})), isNull({{.cookieCriteria.name}}) )"
      },
      {
        "format": "Update Cookie(s)  if path equals {{.cookieCriteria.path.value}} and domain matches {{.cookieCriteria.domain.value}}",
        "condition": "and(equals({{.operation}}, UPDATE), equals({{.cookieCriteria.domain.regex}}, true), not(isNull({{.cookieCriteria.domain}})), not(isNull({{.cookieCriteria.path}})), isNull({{.cookieCriteria.name}}) )"
      },
      {
        "format": "Update Cookie(s)  if path equals {{.cookieCriteria.path.value}} and domain equals {{.cookieCriteria.domain.value}}",
        "condition": "and(equals({{.operation}}, UPDATE), not(isNull({{.cookieCriteria.domain}})), not(isNull({{.cookieCriteria.path}})), isNull({{.cookieCriteria.name}}) )"
      },
      {
        "format": "Update Cookie(s)  if name matches {{.cookieCriteria.name.value}} and path matches {{.cookieCriteria.path.value}} and domain matches {{.cookieCriteria.domain.value}}",
        "condition": "and(equals({{.operation}}, UPDATE), equals({{.cookieCriteria.path.regex}}, true), equals({{.cookieCriteria.domain.regex}}, true), equals({{.cookieCriteria.name.regex}}, true), not(isNull({{.cookieCriteria.name}})), not(isNull({{.cookieCriteria.domain}})), not(isNull({{.cookieCriteria.path}})) )"
      },
      {
        "format": "Update Cookie(s)  if name equals {{.cookieCriteria.name.value}} and path matches {{.cookieCriteria.path.value}} and domain matches {{.cookieCriteria.domain.value}}",
        "condition": "and(equals({{.operation}}, UPDATE), equals({{.cookieCriteria.path.regex}}, true), equals({{.cookieCriteria.domain.regex}}, true),  not(isNull({{.cookieCriteria.name}})), not(isNull({{.cookieCriteria.domain}})), not(isNull({{.cookieCriteria.path}})) )"
      },
      {
        "format": "Update Cookie(s)  if  name matches {{.cookieCriteria.name.value}} and path matches {{.cookieCriteria.path.value}} and domain equals {{.cookieCriteria.domain.value}}",
        "condition": "and(equals({{.operation}}, UPDATE), equals({{.cookieCriteria.path.regex}}, true), equals({{.cookieCriteria.name.regex}}, true), not(isNull({{.cookieCriteria.name}})), not(isNull({{.cookieCriteria.domain}})), not(isNull({{.cookieCriteria.path}})) )"
      },
      {
        "format": "Update Cookie(s)  if  name matches {{.cookieCriteria.name.value}} and path equals {{.cookieCriteria.path.value}} and domain matches {{.cookieCriteria.domain.value}}",
        "condition": "and(equals({{.operation}}, UPDATE), equals({{.cookieCriteria.domain.regex}}, true), equals({{.cookieCriteria.name.regex}}, true), not(isNull({{.cookieCriteria.name}})), not(isNull({{.cookieCriteria.domain}})), not(isNull({{.cookieCriteria.path}})) )"
      },
      {
        "format": "Update Cookie(s)  if  name equals {{.cookieCriteria.name.value}} and path equals {{.cookieCriteria.path.value}} and domain matches {{.cookieCriteria.domain.value}}",
        "condition": "and(equals({{.operation}}, UPDATE), equals({{.cookieCriteria.domain.regex}}, true),  not(isNull({{.cookieCriteria.name}})), not(isNull({{.cookieCriteria.domain}})), not(isNull({{.cookieCriteria.path}})) )"
      },
      {
        "format": "Update Cookie(s)  if name matches {{.cookieCriteria.name.value}} and path equals {{.cookieCriteria.path.value}} and domain equals {{.cookieCriteria.domain.value}}",
        "condition": "and(equals({{.operation}}, UPDATE),   equals({{.cookieCriteria.name.regex}}, true), not(isNull({{.cookieCriteria.name}})), not(isNull({{.cookieCriteria.domain}})), not(isNull({{.cookieCriteria.path}})) )"
      },
      {
        "format": "Update Cookie(s)  if name equals {{.cookieCriteria.name.value}} and path matches {{.cookieCriteria.path.value}} and domain equals {{.cookieCriteria.domain.value}}",
        "condition": "and(equals({{.operation}}, UPDATE),   equals({{.cookieCriteria.path.regex}}, true), not(isNull({{.cookieCriteria.name}})), not(isNull({{.cookieCriteria.domain}})), not(isNull({{.cookieCriteria.path}})) )"
      },
      {
        "format": "Update Cookie(s)  if name equals {{.cookieCriteria.name.value}} and path equals {{.cookieCriteria.path.value}} and domain equals {{.cookieCriteria.domain.value}}",
        "condition": "and(equals({{.operation}}, UPDATE),  not(isNull({{.cookieCriteria.name}})), not(isNull({{.cookieCriteria.domain}})), not(isNull({{.cookieCriteria.path}})) )"
      },
      {
        "format": "Remove Cookie(s) if name matches {{.cookieCriteria.name.value}}",
        "condition": "and(equals({{.operation}}, REMOVE), not(isNull({{.cookieCriteria.name}})), equals({{.cookieCriteria.name.regex}}, true), isNull({{.cookieCriteria.domain}}), isNull({{.cookieCriteria.path}}) )"
      },
      {
        "format": "Remove Cookie(s) if name equals {{.cookieCriteria.name.value}}",
        "condition": "and(equals({{.operation}}, REMOVE), not(isNull({{.cookieCriteria.name}})), isNull({{.cookieCriteria.domain}}), isNull({{.cookieCriteria.path}}) )"
      },
      {
        "format": "Remove Cookie(s) if domain matches {{.cookieCriteria.domain.value}}",
        "condition": "and(equals({{.operation}}, REMOVE), not(isNull({{.cookieCriteria.domain}})), equals({{.cookieCriteria.domain.regex}}, true), isNull({{.cookieCriteria.name}}), isNull({{.cookieCriteria.path}}) )"
      },
      {
        "format": "Remove Cookie(s) if domain equals {{.cookieCriteria.domain.value}}",
        "condition": "and(equals({{.operation}}, REMOVE), not(isNull({{.cookieCriteria.domain}})), isNull({{.cookieCriteria.name}}), isNull({{.cookieCriteria.path}}) )"
      },
      {
        "format": "Remove Cookie(s) if path matches {{.cookieCriteria.path.value}}",
        "condition": "and(equals({{.operation}}, REMOVE), not(isNull({{.cookieCriteria.path}})), isNull({{.cookieCriteria.domain}}), equals({{.cookieCriteria.path.regex}}, true), isNull({{.cookieCriteria.name}}) )"
      },
      {
        "format": "Remove Cookie(s) if path equals {{.cookieCriteria.path.value}}",
        "condition": "and(equals({{.operation}}, REMOVE), not(isNull({{.cookieCriteria.path}})), isNull({{.cookieCriteria.domain}}), isNull({{.cookieCriteria.name}}) )"
      },
      {
        "format": "Remove Cookie(s) if name matches {{.cookieCriteria.name.value}} and domain matches {{.cookieCriteria.domain.value}}",
        "condition": "and(equals({{.operation}}, REMOVE), equals({{.cookieCriteria.domain.regex}}, true), equals({{.cookieCriteria.name.regex}}, true), not(isNull({{.cookieCriteria.name}})), not(isNull({{.cookieCriteria.domain}})), isNull({{.cookieCriteria.path}}) )"
      },
      {
        "format": "Remove Cookie(s) if name matches {{.cookieCriteria.name.value}} and domain equals {{.cookieCriteria.domain.value}} ",
        "condition": "and(equals({{.operation}}, REMOVE), equals({{.cookieCriteria.name.regex}}, true), not(isNull({{.cookieCriteria.name}})), not(isNull({{.cookieCriteria.domain}})), isNull({{.cookieCriteria.path}}) )"
      },
      {
        "format": "Remove Cookie(s) if name equals {{.cookieCriteria.name.value}} and domain matches {{.cookieCriteria.domain.value}}",
        "condition": "and(equals({{.operation}}, REMOVE), equals({{.cookieCriteria.domain.regex}}, true), not(isNull({{.cookieCriteria.name}})), not(isNull({{.cookieCriteria.domain}})), isNull({{.cookieCriteria.path}}) )"
      },
      {
        "format": "Remove Cookie(s) if name equals {{.cookieCriteria.name.value}} and domain equals {{.cookieCriteria.domain.value}}",
        "condition": "and(equals({{.operation}}, REMOVE), not(isNull({{.cookieCriteria.name}})), not(isNull({{.cookieCriteria.domain}})), isNull({{.cookieCriteria.path}}) )"
      },
      {
        "format": "Remove Cookie(s) if name matches {{.cookieCriteria.name.value}} and path matches {{.cookieCriteria.path.value}}",
        "condition": "and(equals({{.operation}}, REMOVE), equals({{.cookieCriteria.path.regex}}, true), equals({{.cookieCriteria.name.regex}}, true), not(isNull({{.cookieCriteria.name}})), not(isNull({{.cookieCriteria.path}})), isNull({{.cookieCriteria.domain}}) )"
      },
      {
        "format": "Remove Cookie(s) if name equals {{.cookieCriteria.name.value}} and path matches {{.cookieCriteria.path.value}}",
        "condition": "and(equals({{.operation}}, REMOVE), equals({{.cookieCriteria.path.regex}}, true), not(isNull({{.cookieCriteria.name}})), not(isNull({{.cookieCriteria.path}})), isNull({{.cookieCriteria.domain}}) )"
      },
      {
        "format": "Remove Cookie(s) if name matches {{.cookieCriteria.name.value}} and path equals {{.cookieCriteria.path.value}}",
        "condition": "and(equals({{.operation}}, REMOVE), equals({{.cookieCriteria.name.regex}}, true), not(isNull({{.cookieCriteria.name}})), not(isNull({{.cookieCriteria.path}})), isNull({{.cookieCriteria.domain}}) )"
      },
      {
        "format": "Remove Cookie(s) if name equals {{.cookieCriteria.name.value}} and path equals {{.cookieCriteria.path.value}}",
        "condition": "and(equals({{.operation}}, REMOVE), not(isNull({{.cookieCriteria.name}})), not(isNull({{.cookieCriteria.path}})), isNull({{.cookieCriteria.domain}}) )"
      },
      {
        "format": "Remove Cookie(s) if path matches {{.cookieCriteria.path.value}} and domain matches {{.cookieCriteria.domain.value}}",
        "condition": "and(equals({{.operation}}, REMOVE), equals({{.cookieCriteria.path.regex}}, true), equals({{.cookieCriteria.domain.regex}}, true), not(isNull({{.cookieCriteria.domain}})), not(isNull({{.cookieCriteria.path}})), isNull({{.cookieCriteria.name}}) )"
      },
      {
        "format": "Remove Cookie(s) if path matches {{.cookieCriteria.path.value}} and domain equals {{.cookieCriteria.domain.value}}",
        "condition": "and(equals({{.operation}}, REMOVE), equals({{.cookieCriteria.path.regex}}, true), not(isNull({{.cookieCriteria.domain}})), not(isNull({{.cookieCriteria.path}})), isNull({{.cookieCriteria.name}}) )"
      },
      {
        "format": "Remove Cookie(s) if path equals {{.cookieCriteria.path.value}} and domain matches {{.cookieCriteria.domain.value}}",
        "condition": "and(equals({{.operation}}, REMOVE), equals({{.cookieCriteria.domain.regex}}, true), not(isNull({{.cookieCriteria.domain}})), not(isNull({{.cookieCriteria.path}})), isNull({{.cookieCriteria.name}}) )"
      },
      {
        "format": "Remove Cookie(s) if path equals {{.cookieCriteria.path.value}} and domain equals {{.cookieCriteria.domain.value}}",
        "condition": "and(equals({{.operation}}, REMOVE), not(isNull({{.cookieCriteria.domain}})), not(isNull({{.cookieCriteria.path}})), isNull({{.cookieCriteria.name}}) )"
      },
      {
        "format": "Remove Cookie(s) if name matches {{.cookieCriteria.name.value}} and path matches {{.cookieCriteria.path.value}} and domain matches {{.cookieCriteria.domain.value}}",
        "condition": "and(equals({{.operation}}, REMOVE), equals({{.cookieCriteria.path.regex}}, true), equals({{.cookieCriteria.domain.regex}}, true), equals({{.cookieCriteria.name.regex}}, true), not(isNull({{.cookieCriteria.name}})), not(isNull({{.cookieCriteria.domain}})), not(isNull({{.cookieCriteria.path}})) )"
      },
      {
        "format": "Remove Cookie(s) if name equals {{.cookieCriteria.name.value}} and path matches {{.cookieCriteria.path.value}} and domain matches {{.cookieCriteria.domain.value}}",
        "condition": "and(equals({{.operation}}, REMOVE), equals({{.cookieCriteria.path.regex}}, true), equals({{.cookieCriteria.domain.regex}}, true),  not(isNull({{.cookieCriteria.name}})), not(isNull({{.cookieCriteria.domain}})), not(isNull({{.cookieCriteria.path}})) )"
      },
      {
        "format": "Remove Cookie(s) if name matches {{.cookieCriteria.name.value}} and path matches {{.cookieCriteria.path.value}} and domain equals {{.cookieCriteria.domain.value}}",
        "condition": "and(equals({{.operation}}, REMOVE), equals({{.cookieCriteria.path.regex}}, true), equals({{.cookieCriteria.name.regex}}, true), not(isNull({{.cookieCriteria.name}})), not(isNull({{.cookieCriteria.domain}})), not(isNull({{.cookieCriteria.path}})) )"
      },
      {
        "format": "Remove Cookie(s) if name matches {{.cookieCriteria.name.value}} and path equals {{.cookieCriteria.path.value}} and domain matches {{.cookieCriteria.domain.value}}",
        "condition": "and(equals({{.operation}}, REMOVE), equals({{.cookieCriteria.domain.regex}}, true), equals({{.cookieCriteria.name.regex}}, true), not(isNull({{.cookieCriteria.name}})), not(isNull({{.cookieCriteria.domain}})), not(isNull({{.cookieCriteria.path}})) )"
      },
      {
        "format": "Remove Cookie(s) if name equals {{.cookieCriteria.name.value}} and path equals {{.cookieCriteria.path.value}} and domain matches {{.cookieCriteria.domain.value}}",
        "condition": "and(equals({{.operation}}, REMOVE), equals({{.cookieCriteria.domain.regex}}, true),  not(isNull({{.cookieCriteria.name}})), not(isNull({{.cookieCriteria.domain}})), not(isNull({{.cookieCriteria.path}})) )"
      },
      {
        "format": "Remove Cookie(s) if name matches {{.cookieCriteria.name.value}} and path equals {{.cookieCriteria.path.value}} and domain equals {{.cookieCriteria.domain.value}}",
        "condition": "and(equals({{.operation}}, REMOVE),   equals({{.cookieCriteria.name.regex}}, true), not(isNull({{.cookieCriteria.name}})), not(isNull({{.cookieCriteria.domain}})), not(isNull({{.cookieCriteria.path}})) )"
      },
      {
        "format": "Remove Cookie(s) if name equals {{.cookieCriteria.name.value}} and path matches {{.cookieCriteria.path.value}} and domain equals {{.cookieCriteria.domain.value}}",
        "condition": "and(equals({{.operation}}, REMOVE),   equals({{.cookieCriteria.path.regex}}, true), not(isNull({{.cookieCriteria.name}})), not(isNull({{.cookieCriteria.domain}})), not(isNull({{.cookieCriteria.path}})) )"
      },
      {
        "format": "Remove Cookie(s) if name equals {{.cookieCriteria.name.value}} and path equals {{.cookieCriteria.path.value}} and domain equals {{.cookieCriteria.domain.value}}",
        "condition": "and(equals({{.operation}}, REMOVE),  not(isNull({{.cookieCriteria.name}})), not(isNull({{.cookieCriteria.domain}})), not(isNull({{.cookieCriteria.path}})) )"
      },
      {
        "format": "Add Cookie {{.cookieAttributes.name.value}}={{.cookieAttributes.value.value}}",
        "condition": "and(equals({{.operation}}, ADD), not(isNull({{.cookieAttributes.name}})), not(isNull({{.cookieAttributes.value}})))"
      },
      {
        "format": "Add or Replace Cookie {{.cookieAttributes.name.value}}={{.cookieAttributes.value.value}}",
        "condition": "and(equals({{.operation}}, ADD_OR_REPLACE), not(isNull({{.cookieAttributes.name}})), not(isNull({{.cookieAttributes.value}})))"
      }
    ],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/ManageCookie",
        "title": "Manage Cookie",
        "properties": {
          "cookieAttributes": {
            "type": "object"
          },
          "cookieCriteria": {
            "type": "object"
          },
          "operation": {
            "type": "string",
            "enum": [
              "ADD",
              "ADD_OR_REPLACE",
              "REMOVE",
              "UPDATE"
            ],
            "default": "ADD"
          },
          "otherTargetMessageVariable": {
            "type": "string"
          },
          "target": {
            "type": "string"
          },
          "__name": {
            "type": "string"
          },
          "__nameOriginalOption": {
            "type": "boolean",
            "default": true
          },
          "__value": {
            "type": "string"
          },
          "__valueOriginalOption": {
            "type": "boolean",
            "default": true
          },
          "__version": {
            "type": "string"
          },
          "__versionOriginalOption": {
            "type": "boolean",
            "default": true
          },
          "__domain": {
            "type": "string"
          },
          "__domainOriginalOption": {
            "type": "boolean",
            "default": true
          },
          "__path": {
            "type": "string"
          },
          "__pathOriginalOption": {
            "type": "boolean",
            "default": true
          },
          "__maxAge": {
            "type": "string"
          },
          "__maxAgeOriginalOption": {
            "type": "boolean",
            "default": true
          },
          "__expires": {
            "type": "string"
          },
          "__expiresOriginalOption": {
            "type": "boolean",
            "default": true
          },
          "__comment": {
            "type": "string"
          },
          "__commentOriginalOption": {
            "type": "boolean",
            "default": true
          },
          "__sameSite": {
            "type": "string",
            "enum": [
              "None",
              "Lax",
              "Strict"
            ]
          },
          "__sameSiteOriginalOption": {
            "type": "boolean",
            "default": true
          },
          "__secure": {
            "type": "boolean",
            "default": false
          },
          "__secureOriginalOption": {
            "type": "boolean",
            "default": true
          },
          "__httpOnly": {
            "type": "boolean",
            "default": false
          },
          "__httpOnlyOriginalOption": {
            "type": "boolean",
            "default": true
          },
          "__matchName": {
            "type": "string"
          },
          "__matchNameRegExpOption": {
            "type": "boolean",
            "default": false
          },
          "__matchDomain": {
            "type": "string"
          },
          "__matchDomainRegExpOption": {
            "type": "boolean",
            "default": false
          },
          "__matchPath": {
            "type": "string"
          },
          "__matchPathRegExpOption": {
            "type": "boolean",
            "default": false
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Manage Cookie",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/target",
            "i18n": "target",
            "options": {
              "messageTarget": true,
              "otherTargetMessageVariableLabel": "otherTargetMessageVariable.label"
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/operation",
            "i18n": "operation",
            "options": {
              "markAsRequired": true
            }
          },
          {
            "type": "Group",
            "label": "Set Attributes",
            "rule": {
              "effect": "SHOW",
              "condition": {
                "scope": "#/properties/operation",
                "schema": {
                  "enum": [
                    "ADD",
                    "UPDATE",
                    "ADD_OR_REPLACE"
                  ]
                }
              }
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/__name",
                "options": {
                  "markAsRequired": true,
                  "placeholder": ""
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/__value",
                "options": {
                  "markAsRequired": true,
                  "placeholder": ""
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/__version",
                "options": {
                  "placeholder": ""
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/__domain",
                "options": {
                  "placeholder": ""
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/__path",
                "options": {
                  "placeholder": ""
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/__maxAge",
                "options": {
                  "placeholder": ""
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/__expires",
                "options": {
                  "format": "date-time",
                  "placeholder": ""
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/__comment",
                "options": {
                  "placeholder": ""
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/__sameSite",
                "options": {
                  "placeholder": ""
                }
              },
              {
                "type": "Group",
                "options": {
                  "groupType": "wrapCustomClass",
                  "customClass": "secure-wrapper"
                },
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/__secure",
                    "options": {
                      "markAsRequired": true
                    },
                    "rule": {
                      "effect": "ENABLE",
                      "condition": {
                        "schema": {
                          "anyOf": [
                            {
                              "properties": {
                                "operation": {
                                  "enum": [
                                    "ADD",
                                    "ADD_OR_REPLACE"
                                  ]
                                }
                              },
                              "required": [
                                "operation"
                              ]
                            },
                            {
                              "properties": {
                                "__secureOriginalOption": {
                                  "const": false
                                }
                              },
                              "required": [
                                "__secureOriginalOption"
                              ]
                            }
                          ]
                        }
                      }
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/__secureOriginalOption",
                    "i18n": "orgVal",
                    "options": {
                      "markAsRequired": true
                    },
                    "rule": {
                      "effect": "SHOW",
                      "condition": {
                        "scope": "#/properties/operation",
                        "schema": {
                          "const": "UPDATE"
                        }
                      }
                    }
                  }
                ]
              },
              {
                "type": "Group",
                "options": {
                  "groupType": "wrapCustomClass",
                  "customClass": "secure-wrapper http-wrapper"
                },
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/__httpOnly",
                    "i18n": "httpOnly",
                    "options": {
                      "markAsRequired": true
                    },
                    "rule": {
                      "effect": "ENABLE",
                      "condition": {
                        "schema": {
                          "anyOf": [
                            {
                              "properties": {
                                "operation": {
                                  "enum": [
                                    "ADD",
                                    "ADD_OR_REPLACE"
                                  ]
                                }
                              },
                              "required": [
                                "operation"
                              ]
                            },
                            {
                              "properties": {
                                "__httpOnlyOriginalOption": {
                                  "const": false
                                }
                              },
                              "required": [
                                "__httpOnlyOriginalOption"
                              ]
                            }
                          ]
                        }
                      }
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/__httpOnlyOriginalOption",
                    "i18n": "orgVal",
                    "options": {
                      "markAsRequired": true
                    },
                    "rule": {
                      "effect": "SHOW",
                      "condition": {
                        "scope": "#/properties/operation",
                        "schema": {
                          "const": "UPDATE"
                        }
                      }
                    }
                  }
                ]
              }
            ]
          },
          {
            "type": "Group",
            "i18n": "matchBy.label",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "matchby-wrapper"
            },
            "rule": {
              "effect": "SHOW",
              "condition": {
                "scope": "#/properties/operation",
                "schema": {
                  "enum": [
                    "UPDATE",
                    "REMOVE"
                  ]
                }
              }
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/__matchName",
                "i18n": "name"
              },
              {
                "type": "Control",
                "scope": "#/properties/__matchNameRegExpOption",
                "i18n": "regExp"
              },
              {
                "type": "Control",
                "scope": "#/properties/__matchPath"
              },
              {
                "type": "Control",
                "scope": "#/properties/__matchPathRegExpOption",
                "i18n": "regExp"
              },
              {
                "type": "Control",
                "scope": "#/properties/__matchDomain",
                "i18n": "domain"
              },
              {
                "type": "Control",
                "scope": "#/properties/__matchDomainRegExpOption",
                "i18n": "regExp"
              }
            ]
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/ManageCookie",
        "locale": "en",
        "content": {
          "setAttributes.label": "Set Attributes",
          "operation.label": "Operation",
          "operation.ADD": "Add",
          "operation.REMOVE": "Remove",
          "operation.UPDATE": "Update",
          "target.label": "Message Target",
          "otherTargetMessageVariable.label": "Context Variable",
          "operation.ADD_OR_REPLACE": "Add or Replace",
          "httpOnly.label": "Http only",
          "orgVal.label": "Original value",
          "name.label": "Name",
          "name.error": "At least one attribute must be updated.",
          "value.label": "Value",
          "version.label": "Version",
          "domain.label": "Domain",
          "path.label": "Path",
          "maxAge.label": "Max Age",
          "expires.label": "Expires",
          "comment.label": "Comment",
          "sameSiteHd.label": "Same Site",
          "sameSite": "Same Site",
          "sameSite.None": "None",
          "sameSite.Lax": "Lax",
          "sameSite.Strict": "Strict",
          "matchBy.label": "Match By",
          "regExp.label": "Regular expression",
          "version.error": "The version field must be an integer between 0 and 2147483647",
          "maxAge.error": "The max-age field must be an integer between 0 and 2147483647",
          "matchName.error": "At least one of name, path or domain to match must be specified"
        }
      }
    ]
  },
  {
    "configName": "ManipulateMultiValuedVariable",
    "displayNameFormats": [
      {
        "format": "Manipulate Multivalued Variable {{.targetVariableName}} append variable {{.sourceVariableName}}",
        "condition": "true"
      }
    ],
    "refVariables": [
      {
        "fieldPath": ".sourceVariableName",
        "refType": "IN",
        "dataType": "other"
      },
      {
        "fieldPath": ".targetVariableName",
        "refType": "OUT",
        "dataType": "other",
        "multivalued": true,
        "settable": true
      }
    ],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/ManipulateMultiValuedVariable",
        "title": "Manipulate Multivalued Variable",
        "properties": {
          "sourceVariableName": {
            "type": "string"
          },
          "targetVariableName": {
            "type": "string"
          },
          "__inlineAlerts": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Manipulate Multivalued Variable",
        "elements": [
          {
            "type": "Group",
            "i18n": "appendVar.label",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "multivariable-group"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/targetVariableName",
                "options": {
                  "markAsRequired": true,
                  "contextVariable": true,
                  "variableType": "output",
                  "allowedDataTypes": []
                },
                "i18n": "targetVariableName"
              },
              {
                "type": "Control",
                "scope": "#/properties/sourceVariableName",
                "options": {
                  "markAsRequired": true,
                  "contextVariable": true,
                  "variableType": "input",
                  "allowedDataTypes": []
                },
                "i18n": "sourceVariableName"
              },
              {
                "type": "Control",
                "scope": "#/properties/__inlineAlerts",
                "options": {
                  "inlineAlerts": "info"
                }
              }
            ]
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/ManipulateMultiValuedVariable",
        "locale": "en",
        "content": {
          "targetVariableName.label": "Target Multivalued Variable",
          "sourceVariableName.label": "Variable to append",
          "appendVar.label": "Append Variable",
          "warning": "Note: The target variable will be created if it does not exist."
        }
      }
    ]
  },
  {
    "configName": "MapValue",
    "refVariables": [
      {
        "fieldPath": ".outputVar",
        "refType": "OUT",
        "dataType": "string"
      }
    ],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/MapValue",
        "title": "Map Value",
        "properties": {
          "inputExpr": {
            "type": "string"
          },
          "mappings": {
            "type": "array",
            "items": {
              "$ref": "https://l7tech.com/2025/json-schema/assertions/sub-types/nameValuePair"
            }
          },
          "outputVar": {
            "type": "string"
          }
        }
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/sub-types/nameValuePair",
        "properties": {
          "key": {
            "type": "string",
            "title": "Pattern"
          },
          "value": {
            "type": "string",
            "title": "Result"
          }
        }
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/MapValue/Main",
        "title": "Map Value",
        "properties": {
          "MapValue": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/MapValue"
          },
          ".properties": {
            "type": "object",
            "properties": {
              ".enabled": {
                "type": "boolean",
                "default": true
              },
              ".left.comment": {
                "type": "string"
              },
              ".right.comment": {
                "type": "string"
              }
            }
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Map Value",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/inputExpr",
            "i18n": "inputExpr"
          },
          {
            "type": "Group",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "mappings-group"
            },
            "i18n": "mappings",
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/mappings",
                "i18n": "mappings",
                "options": {
                  "nameValueList": true,
                  "allowReorder": true,
                  "detail": {
                    "type": "VerticalLayout",
                    "elements": [
                      {
                        "type": "Control",
                        "scope": "#/properties/key",
                        "i18n": "key",
                        "options": {
                          "markAsRequired": true
                        }
                      },
                      {
                        "type": "Control",
                        "scope": "#/properties/value",
                        "i18n": "value"
                      }
                    ]
                  }
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/outputVar",
                "i18n": "outputVar"
              }
            ]
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/MapValue",
        "locale": "en",
        "content": {
          "mappings": "Mappings",
          "inputExpr.label": "Value To Map",
          "outputVar.label": "Output Variable",
          "key.label": "Pattern",
          "value.label": "Result"
        }
      }
    ]
  },
  {
    "configName": "MemberOfGroup",
    "displayNameFormats": [
      {
        "format": "Authenticate Group: {{.groupName}} from [{{.identityProviderOid}}]",
        "condition": "true"
      }
    ],
    "refEntities": [
      {
        "fieldPath": ".identityProviderOid",
        "refType": "GOID",
        "entityType": "IdpRef"
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Authenticate Group",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/target",
            "options": {
              "messageTarget": true,
              "otherTargetMessageVariableLabel": "assertion.common.target.otherTargetContextVariable"
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/__providerName",
            "i18n": "__providerName",
            "options": {
              "markAsRequired": true,
              "readonly": true
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/groupName",
            "label": "groupName",
            "options": {
              "markAsRequired": true,
              "readonly": true
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/__searchButton",
            "i18n": "__searchButton.text",
            "options": {
              "controlType": "Button",
              "variant": "outlined"
            }
          },
          {
            "type": "Group",
            "label": "Target Identity",
            "options": {
              "groupType": "ShowHide"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/identityTag",
                "i18n": "identityTag",
                "options": {
                  "identityTags": true
                }
              }
            ]
          }
        ]
      }
    ],
    "configSchemaPatches": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/MemberOfGroup",
        "patches": [
          {
            "op": "add",
            "path": "/properties/__searchButton",
            "value": {
              "type": "string"
            }
          },
          {
            "op": "add",
            "path": "/properties/__providerName",
            "value": {
              "type": "string"
            }
          }
        ]
      }
    ],
    "configDataPatches": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/MemberOfGroup#AfterEdit",
        "patches": [
          {
            "op": "remove",
            "path": "/__providerName"
          },
          {
            "op": "remove",
            "path": "/_enabled"
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/MemberOfGroup",
        "locale": "en",
        "content": {
          "__providerName.label": "Identity Provider",
          "groupName.label": "Group Name",
          "__searchButton.text": "Search Identity Provider",
          "search-modal.title": "Search Identity Provider",
          "search-modal.cancel-button": "Cancel",
          "search-modal.select-button": "Select Group",
          "search-modal.info": "Search for groups in the selected identity provider",
          "error.pattern": "Only alphanumeric, space, underline, dash, dot and comma characters allowed!"
        }
      }
    ]
  },
  {
    "configName": "MessageBuffering",
    "displayNameFormats": [
      {
        "format": "Configure Message Streaming: buffer immediately",
        "condition": "equals({{.alwaysBuffer}}, true)"
      },
      {
        "format": "Configure Message Streaming: enable streaming",
        "condition": "or(equals({{.alwaysBuffer}}, false), isNull({{.alwaysBuffer}}))"
      }
    ],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/MessageBuffering",
        "title": "Configure Message Streaming",
        "properties": {
          "alwaysBuffer": {
            "type": "boolean",
            "default": false,
            "enum": [
              true,
              false
            ]
          },
          "neverBuffer": {
            "type": "boolean",
            "default": true
          },
          "otherTargetMessageVariable": {
            "type": "string"
          },
          "target": {
            "type": "string",
            "enum": [
              "REQUEST",
              "RESPONSE",
              "OTHER"
            ],
            "default": "REQUEST"
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Configure Message Streaming",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/target",
            "options": {
              "messageTarget": true,
              "otherTargetMessageVariableLabel": "assertion.common.target.otherTargetContextVariable"
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/alwaysBuffer",
            "options": {
              "format": "radio",
              "useRowLayout": false,
              "helperText": "helper_text"
            },
            "i18n": "alwaysBuffer"
          },
          {
            "type": "Group",
            "i18n": "helpertext",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "message-buffering-helpertext"
            },
            "elements": []
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/MessageBuffering",
        "locale": "en",
        "content": {
          "alwaysBuffer.label": "Target Message Streaming",
          "alwaysBuffer.true": "Buffer immediately (no streaming)",
          "alwaysBuffer.false": "Enable streaming (no buffering)",
          "helpertext": "Streaming should be enabled only if you are certain the message body will be read only one more time."
        }
      }
    ]
  },
  {
    "configName": "MessageContextAssertion",
    "displayNameFormats": [
      {
        "format": "Capture Identity of Requestor",
        "condition": "true"
      }
    ],
    "refVariables": [],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/MessageContextAssertion",
        "title": "Capture Identity of Requestor",
        "properties": {
          "mappings": {
            "type": "array",
            "items": {
              "$ref": "https://l7tech.com/2025/json-schema/assertions/MessageContextAssertion:mappingInfo"
            }
          }
        }
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/MessageContextAssertion:mappingInfo",
        "properties": {
          "key": {
            "type": "string"
          },
          "mappingType": {
            "type": "string",
            "enum": [
              "IP_ADDRESS",
              "AUTH_USER",
              "CUSTOM_MAPPING"
            ],
            "default": "IP_ADDRESS"
          },
          "value": {
            "type": "string"
          }
        }
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/MessageContextAssertion/Main",
        "title": "Capture Identity of Requestor",
        "properties": {
          "MessageContextAssertion": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/MessageContextAssertion"
          },
          ".properties": {
            "type": "object",
            "properties": {
              ".enabled": {
                "type": "boolean",
                "default": true
              },
              ".left.comment": {
                "type": "string"
              },
              ".right.comment": {
                "type": "string"
              }
            }
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Capture Identity of Requestor",
        "elements": [
          {
            "type": "Group",
            "i18n": "addVariable.title",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "mapping-table-group"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/mappings",
                "i18n": "addVariable",
                "options": {
                  "nameValueList": true,
                  "label": "mappingList",
                  "disableAdd": false,
                  "detail": {
                    "type": "VerticalLayout",
                    "elements": [
                      {
                        "type": "Control",
                        "scope": "#/properties/mappingType",
                        "i18n": "mapping.mappingType",
                        "options": {
                          "hideColumn": true
                        }
                      },
                      {
                        "type": "Control",
                        "scope": "#/properties/key",
                        "i18n": "mapping.key",
                        "options": {
                          "markAsRequired": true
                        },
                        "rule": {
                          "effect": "ENABLE",
                          "condition": {
                            "scope": "#/properties/mappingType",
                            "schema": {
                              "const": "CUSTOM_MAPPING"
                            }
                          }
                        }
                      },
                      {
                        "type": "Control",
                        "scope": "#/properties/value",
                        "i18n": "mapping.value",
                        "rule": {
                          "effect": "ENABLE",
                          "condition": {
                            "scope": "#/properties/mappingType",
                            "schema": {
                              "const": "CUSTOM_MAPPING"
                            }
                          }
                        }
                      }
                    ]
                  }
                }
              }
            ]
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/MessageContextAssertion",
        "locale": "en",
        "content": {
          "addVariable.label": "Message Context Mapping",
          "addVariable.title": "Message Context Mappings",
          "mapping.key.label": "Key",
          "mapping.mappingType.label": "Type",
          "mapping.value.label": "Value",
          "mapping.mappingType.IP_ADDRESS": "IP Address",
          "mapping.mappingType.AUTH_USER": "Authenticated User",
          "mapping.mappingType.CUSTOM_MAPPING": "Custom Mapping",
          "mapping.key.error": "This key has invalid characters"
        }
      }
    ]
  },
  {
    "configName": "MqNativeRouting",
    "displayNameFormats": [
      {
        "format": "Get via MQ Native Queue {{.ssgActiveConnectorName}}",
        "condition": "equals({{.putToQueue}}, false)"
      },
      {
        "format": "Route via MQ Native Queue {{.ssgActiveConnectorName}}",
        "condition": "true"
      }
    ],
    "refVariables": [
      {
        "fieldPath": ".requestTarget.target",
        "refType": "IN",
        "dataType": "messageTarget"
      },
      {
        "fieldPath": ".responseTarget.otherTargetMessageVariable",
        "refType": "OUT",
        "dataType": "messageTarget"
      },
      {
        "fieldPath": ".requestTarget.otherTargetMessageVariable",
        "refType": "IN",
        "dataType": "message"
      },
      {
        "fieldPath": ".requestTarget.target",
        "refType": "IN",
        "dataType": "message"
      },
      {
        "fieldPath": ".responseTarget.target",
        "refType": "IN",
        "dataType": "message"
      },
      {
        "fieldPath": ".responseTarget.otherTargetMessageVariable",
        "refType": "OUT",
        "dataType": "message"
      },
      {
        "fieldPath": ".",
        "suffix": "mq.completion.code",
        "refType": "OUT",
        "dataType": "int"
      },
      {
        "fieldPath": ".",
        "suffix": "mq.reason.code",
        "refType": "OUT",
        "dataType": "int"
      }
    ],
    "refEntities": [
      {
        "fieldPath": ".ssgActiveConnectorGoid",
        "refType": "GOID",
        "entityType": "ActiveConnector"
      }
    ],
    "configSchemas": [
      {
        "$defs": {
          "MqNativeRouting:mqDynamicProperties": {
            "type": "object",
            "properties": {
              "queueName": {
                "type": "string"
              },
              "replyToQueue": {
                "type": "string"
              }
            }
          },
          "MqNativeRouting:mappingRuleSet": {
            "type": "object",
            "properties": {
              "passThroughHeaders": {
                "type": "boolean",
                "default": true
              },
              "passThroughMqMessageHeaders": {
                "type": "boolean",
                "default": true
              },
              "passThroughMqMessageProperties": {
                "type": "boolean",
                "default": true
              }
            }
          }
        },
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/MqNativeRouting",
        "title": "Route via MQ Native",
        "properties": {
          "currentSecurityHeaderHandling": {
            "type": "integer",
            "default": 0,
            "enum": [
              3,
              1,
              0
            ]
          },
          "dynamicMqRoutingProperties": {
            "$ref": "#/$defs/MqNativeRouting:mqDynamicProperties"
          },
          "messageOptions": {
            "type": "string"
          },
          "messageOptionsUsed": {
            "type": "boolean",
            "default": false
          },
          "openOptions": {
            "type": "string"
          },
          "openOptionsUsed": {
            "type": "boolean",
            "default": false
          },
          "putMessageTimeout": {
            "type": "string"
          },
          "putToQueue": {
            "type": "boolean",
            "default": true,
            "enum": [
              true,
              false
            ]
          },
          "recipientContext": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/sub-types/xmlSecurityRecipientContext"
          },
          "requestCopyHeaderToProperty": {
            "type": "boolean",
            "default": false
          },
          "requestCopyPropertyToHeader": {
            "type": "boolean",
            "default": false
          },
          "requestMessageAdvancedProperties": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string",
                  "default": "characterSet"
                },
                "value": {
                  "type": "string"
                }
              }
            }
          },
          "requestMqHeaderType": {
            "type": "string",
            "enum": [
              "ORIGINAL",
              "MQRFH2",
              "MQRFH1"
            ],
            "default": "ORIGINAL"
          },
          "requestMqNativeMessagePropertyRuleSet": {
            "$ref": "#/$defs/MqNativeRouting:mappingRuleSet"
          },
          "requestTarget": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/sub-types/messageTargetableSupport"
          },
          "responseCopyHeaderToProperty": {
            "type": "boolean",
            "default": false
          },
          "responseCopyPropertyToHeader": {
            "type": "boolean",
            "default": false
          },
          "responseMessageAdvancedProperties": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string",
                  "default": "characterSet"
                },
                "value": {
                  "type": "string"
                }
              }
            }
          },
          "responseMqHeaderType": {
            "type": "string",
            "enum": [
              "ORIGINAL",
              "MQRFH2",
              "MQRFH1"
            ],
            "default": "ORIGINAL"
          },
          "responseMqNativeMessagePropertyRuleSet": {
            "$ref": "#/$defs/MqNativeRouting:mappingRuleSet"
          },
          "responseSize": {
            "type": "string"
          },
          "responseTarget": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/sub-types/messageTargetableSupport"
          },
          "responseTimeout": {
            "type": "string"
          },
          "ssgActiveConnectorGoid": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/sub-types/goid"
          },
          "ssgActiveConnectorId": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/sub-types/goid"
          },
          "ssgActiveConnectorName": {
            "type": "string"
          },
          "xmlSecurityActorToPromote": {
            "type": "string"
          },
          "__createNewQueue": {
            "type": "string"
          },
          "__mqResponseTimeoutGlobalDefault": {
            "type": "boolean",
            "default": true
          },
          "__mqPutTimeoutGlobalDefault": {
            "type": "boolean",
            "default": true
          },
          "__responseMaximumMessageSize": {
            "type": "boolean"
          },
          "__responseMaximumMessageSizeOptions": {
            "type": "string",
            "enum": [
              "restrict",
              "unlimited"
            ]
          },
          "__selectedMqNative": {
            "type": "object"
          },
          "__displayQueueName": {
            "type": "boolean"
          },
          "__displayWaitForReply": {
            "type": "boolean"
          }
        }
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/sub-types/xmlSecurityRecipientContext",
        "properties": {
          "actor": {
            "type": "string"
          },
          "base64edX509Certificate": {
            "type": "string"
          }
        }
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/sub-types/messageTargetableSupport",
        "properties": {
          "otherTargetMessageVariable": {
            "type": "string"
          },
          "sourceUsedByGateway": {
            "type": "boolean",
            "default": true
          },
          "target": {
            "type": "string",
            "enum": [
              "REQUEST",
              "RESPONSE",
              "OTHER"
            ],
            "default": "REQUEST"
          },
          "targetModifiedByGateway": {
            "type": "boolean",
            "default": false
          }
        }
      },
      {
        "type": "string",
        "$id": "https://l7tech.com/2025/json-schema/assertions/sub-types/goid"
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Route via MQ Native",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/ssgActiveConnectorName",
            "i18n": "ssgActiveConnectorName"
          },
          {
            "type": "Control",
            "scope": "#/properties/__createNewQueue",
            "i18n": "createNewQueue.label",
            "options": {
              "controlType": "Button",
              "variant": "outlined",
              "readonly": true
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/dynamicMqRoutingProperties/properties/queueName",
            "i18n": "queueName",
            "options": {
              "markAsRequired": true
            },
            "rule": {
              "effect": "SHOW",
              "condition": {
                "scope": "#/properties/__displayQueueName",
                "schema": {
                  "const": true
                }
              }
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/dynamicMqRoutingProperties/properties/replyToQueue",
            "i18n": "replyToQueue",
            "options": {
              "markAsRequired": true
            },
            "rule": {
              "effect": "SHOW",
              "condition": {
                "scope": "#/properties/__displayWaitForReply",
                "schema": {
                  "const": true
                }
              }
            }
          },
          {
            "type": "Group",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "put-to-queue-group"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/putToQueue",
                "i18n": "putToQueue",
                "options": {
                  "format": "radio",
                  "useRowLayout": false
                }
              }
            ]
          },
          {
            "type": "Group",
            "label": "Target",
            "isExpanded": false,
            "options": {
              "groupType": "Accordion"
            },
            "elements": [
              {
                "type": "Group",
                "i18n": "target.advancedOptions",
                "options": {
                  "groupType": "wrapCustomClass",
                  "customClass": "rule-set-checkbox-group advanced-option-group"
                },
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/openOptionsUsed",
                    "i18n": "target.openOptionsUsed",
                    "options": {
                      "subUiSchema": {
                        "type": "Control",
                        "scope": "#/properties/openOptions",
                        "label": false,
                        "options": {
                          "markAsRequired": true
                        }
                      }
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/messageOptionsUsed",
                    "i18n": "target.messageOptionsUsed",
                    "options": {
                      "subUiSchema": {
                        "type": "Control",
                        "scope": "#/properties/messageOptions",
                        "label": false,
                        "options": {
                          "markAsRequired": true
                        }
                      }
                    }
                  }
                ]
              },
              {
                "type": "Control",
                "scope": "#/properties/currentSecurityHeaderHandling",
                "options": {
                  "wssSecurityHeaderHandling": true
                }
              },
              {
                "type": "Group",
                "i18n": "target.responseTimeoutHeading",
                "options": {
                  "groupType": "wrapCustomClass",
                  "customClass": "section-spacing-lg group-with-heading"
                },
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/__mqResponseTimeoutGlobalDefault",
                    "i18n": "target.__mqResponseTimeoutGlobalDefault"
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/responseTimeout",
                    "label": false,
                    "options": {
                      "markAsRequired": true
                    },
                    "rule": {
                      "effect": "SHOW",
                      "condition": {
                        "scope": "#/properties/__mqResponseTimeoutGlobalDefault",
                        "schema": {
                          "const": false
                        }
                      }
                    }
                  }
                ]
              },
              {
                "type": "Group",
                "i18n": "target.putMessageTimeoutHeading",
                "options": {
                  "groupType": "wrapCustomClass",
                  "customClass": "section-spacing group-with-heading"
                },
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/__mqPutTimeoutGlobalDefault",
                    "i18n": "target.__mqPutTimeoutGlobalDefault"
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/putMessageTimeout",
                    "label": false,
                    "options": {
                      "markAsRequired": true
                    },
                    "rule": {
                      "effect": "SHOW",
                      "condition": {
                        "scope": "#/properties/__mqPutTimeoutGlobalDefault",
                        "schema": {
                          "const": false
                        }
                      }
                    }
                  }
                ]
              }
            ]
          },
          {
            "type": "Group",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "request-accordion"
            },
            "elements": [
              {
                "type": "Group",
                "label": "Request",
                "isExpanded": false,
                "options": {
                  "groupType": "Accordion"
                },
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/requestTarget/properties/target",
                    "i18n": "request.requestTarget",
                    "options": {
                      "contextVariable": true,
                      "variableType": "input",
                      "allowedDataTypes": [
                        "message"
                      ]
                    }
                  },
                  {
                    "type": "Group",
                    "i18n": "request.passThroughHeaders.heading",
                    "options": {
                      "groupType": "wrapCustomClass",
                      "customClass": "section-spacing"
                    },
                    "elements": [
                      {
                        "type": "Control",
                        "scope": "#/properties/requestMqNativeMessagePropertyRuleSet/properties/passThroughHeaders",
                        "i18n": "request.passThroughHeaders"
                      }
                    ]
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/requestMessageAdvancedProperties",
                    "i18n": "request.requestMessageAdvancedProperties",
                    "options": {
                      "nameValueList": true,
                      "modalCallbackEvent": true,
                      "detail": {
                        "type": "VerticalLayout",
                        "elements": [
                          {
                            "type": "Control",
                            "scope": "#/properties/name",
                            "i18n": "request.requestMessageAdvancedProperties.name",
                            "options": {
                              "autocomplete": true,
                              "defaultOptions": [
                                {
                                  "label": "characterSet",
                                  "value": "characterSet"
                                },
                                {
                                  "label": "encoding",
                                  "value": "encoding"
                                },
                                {
                                  "label": "expiry",
                                  "value": "expiry"
                                },
                                {
                                  "label": "feedback",
                                  "value": "feedback"
                                },
                                {
                                  "label": "format",
                                  "value": "format"
                                },
                                {
                                  "label": "messageFlags",
                                  "value": "messageFlags"
                                },
                                {
                                  "label": "persistence",
                                  "value": "persistence"
                                },
                                {
                                  "label": "priority",
                                  "value": "priority"
                                },
                                {
                                  "label": "replyToQueueName",
                                  "value": "replyToQueueName"
                                },
                                {
                                  "label": "replyToQueueManagerName",
                                  "value": "replyToQueueManagerName"
                                }
                              ],
                              "allowUserProvidedInput": true
                            }
                          },
                          {
                            "type": "Control",
                            "scope": "#/properties/value",
                            "i18n": "request.requestMessageAdvancedProperties.value"
                          }
                        ]
                      }
                    }
                  },
                  {
                    "type": "Group",
                    "i18n": "request.properties.heading",
                    "options": {
                      "groupType": "wrapCustomClass",
                      "customClass": "section-spacing-lg rule-set-checkbox-group"
                    },
                    "elements": [
                      {
                        "type": "Control",
                        "scope": "#/properties/requestMqNativeMessagePropertyRuleSet/properties/passThroughMqMessageProperties",
                        "i18n": "request.passThroughMqMessageProperties"
                      },
                      {
                        "type": "Control",
                        "scope": "#/properties/requestCopyPropertyToHeader",
                        "i18n": "request.requestCopyPropertyToHeader"
                      }
                    ]
                  },
                  {
                    "type": "Group",
                    "i18n": "request.additionalHeaders.heading",
                    "options": {
                      "groupType": "wrapCustomClass",
                      "customClass": "section-spacing-lg rule-set-checkbox-group"
                    },
                    "elements": [
                      {
                        "type": "Control",
                        "scope": "#/properties/requestMqNativeMessagePropertyRuleSet/properties/passThroughMqMessageHeaders",
                        "i18n": "request.passThroughMqMessageHeaders"
                      },
                      {
                        "type": "Control",
                        "scope": "#/properties/requestCopyHeaderToProperty",
                        "i18n": "request.requestCopyHeaderToProperty"
                      }
                    ]
                  },
                  {
                    "type": "Group",
                    "options": {
                      "groupType": "wrapCustomClass",
                      "customClass": "section-spacing"
                    },
                    "elements": [
                      {
                        "type": "Control",
                        "scope": "#/properties/requestMqHeaderType",
                        "i18n": "request.requestMqHeaderType"
                      }
                    ]
                  }
                ]
              }
            ],
            "rule": {
              "effect": "SHOW",
              "condition": {
                "scope": "#/properties/putToQueue",
                "schema": {
                  "const": true
                }
              }
            }
          },
          {
            "type": "Group",
            "label": "Response",
            "isExpanded": false,
            "options": {
              "groupType": "Accordion"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/responseTarget/properties/target",
                "i18n": "response.responseTarget",
                "options": {
                  "markAsRequired": true,
                  "contextVariable": true,
                  "variableType": "output",
                  "allowedDataTypes": []
                }
              },
              {
                "type": "Group",
                "i18n": "response.passThroughHeaders.heading",
                "options": {
                  "groupType": "wrapCustomClass",
                  "customClass": "section-spacing"
                },
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/responseMqNativeMessagePropertyRuleSet/properties/passThroughHeaders",
                    "i18n": "response.passThroughHeaders"
                  }
                ]
              },
              {
                "type": "Control",
                "scope": "#/properties/responseMessageAdvancedProperties",
                "i18n": "response.responseMessageAdvancedProperties",
                "options": {
                  "nameValueList": true,
                  "modalCallbackEvent": true,
                  "detail": {
                    "type": "VerticalLayout",
                    "elements": [
                      {
                        "type": "Control",
                        "scope": "#/properties/name",
                        "i18n": "response.responseMessageAdvancedProperties.name",
                        "options": {
                          "autocomplete": true,
                          "defaultOptions": [
                            {
                              "label": "characterSet",
                              "value": "characterSet"
                            },
                            {
                              "label": "encoding",
                              "value": "encoding"
                            },
                            {
                              "label": "expiry",
                              "value": "expiry"
                            },
                            {
                              "label": "feedback",
                              "value": "feedback"
                            },
                            {
                              "label": "format",
                              "value": "format"
                            },
                            {
                              "label": "messageFlags",
                              "value": "messageFlags"
                            },
                            {
                              "label": "persistence",
                              "value": "persistence"
                            },
                            {
                              "label": "priority",
                              "value": "priority"
                            },
                            {
                              "label": "replyToQueueName",
                              "value": "replyToQueueName"
                            },
                            {
                              "label": "replyToQueueManagerName",
                              "value": "replyToQueueManagerName"
                            }
                          ],
                          "allowUserProvidedInput": true
                        }
                      },
                      {
                        "type": "Control",
                        "scope": "#/properties/value",
                        "i18n": "response.responseMessageAdvancedProperties.value"
                      }
                    ]
                  }
                }
              },
              {
                "type": "Group",
                "i18n": "response.properties.heading",
                "options": {
                  "groupType": "wrapCustomClass",
                  "customClass": "section-spacing-lg rule-set-checkbox-group"
                },
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/responseMqNativeMessagePropertyRuleSet/properties/passThroughMqMessageProperties",
                    "i18n": "response.passThroughMqMessageProperties"
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/responseCopyPropertyToHeader",
                    "i18n": "response.responseCopyPropertyToHeader"
                  }
                ]
              },
              {
                "type": "Group",
                "i18n": "response.additionalHeaders.heading",
                "options": {
                  "groupType": "wrapCustomClass",
                  "customClass": "section-spacing-lg rule-set-checkbox-group"
                },
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/responseMqNativeMessagePropertyRuleSet/properties/passThroughMqMessageHeaders",
                    "i18n": "response.passThroughMqMessageHeaders"
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/responseCopyHeaderToProperty",
                    "i18n": "response.responseCopyHeaderToProperty"
                  }
                ]
              },
              {
                "type": "Group",
                "options": {
                  "groupType": "wrapCustomClass",
                  "customClass": "section-spacing"
                },
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/responseMqHeaderType",
                    "i18n": "response.responseMqHeaderType"
                  }
                ]
              },
              {
                "type": "Control",
                "scope": "#/properties/__responseMaximumMessageSize",
                "i18n": "response.__responseMaximumMessageSize",
                "options": {
                  "subUiSchema": {
                    "type": "Control",
                    "scope": "#/properties/__responseMaximumMessageSizeOptions",
                    "label": false,
                    "options": {
                      "format": "radio",
                      "useRowLayout": false,
                      "defaultOptions": [
                        {
                          "label": "Restrict message size",
                          "value": "restrict"
                        },
                        {
                          "label": "Allow unlimited message size (not recommended)",
                          "value": "unlimited"
                        }
                      ],
                      "uiSchemasMap": {
                        "restrict": {
                          "type": "Control",
                          "scope": "#/properties/responseSize",
                          "i18n": "response.responseSize",
                          "options": {
                            "markAsRequired": true
                          }
                        }
                      }
                    }
                  }
                }
              }
            ]
          }
        ]
      }
    ],
    "configSchemaPatches": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/MqNativeRouting",
        "patches": [
          {
            "op": "add",
            "path": "/properties/requestTarget/properties/target/enum",
            "value": [
              "request",
              "response"
            ]
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/MqNativeRouting",
        "locale": "en",
        "content": {
          "ssgActiveConnectorName.label": "MQ Native Queue",
          "createNewQueue.label": "Create New Queue",
          "queueName.label": "Queue Name",
          "replyToQueue.label": "Wait for Reply on Specified Queue",
          "putToQueue.label": "Message Direction",
          "putToQueue.true": "Put to Queue",
          "putToQueue.false": "Get from Queue",
          "target.advancedOptions": "Advanced Options",
          "target.openOptionsUsed.label": "Open options",
          "target.openOptions.error": "The value for the Open Options must be a valid positive number or use context variables",
          "target.messageOptionsUsed.label": "Message options",
          "target.messageOptions.error": "The value for the Message Options must be a valid positive number or use context variables",
          "target.responseTimeoutHeading": "MQ Response Timeout (ms)",
          "target.__mqResponseTimeoutGlobalDefault.label": "Use global default",
          "target.responseTimeout.error": "The value for the response timeout must be a valid positive number or use context variables",
          "target.putMessageTimeoutHeading": "MQ PUT Timeout (ms)",
          "target.__mqPutTimeoutGlobalDefault.label": "Use global default",
          "target.putMessageTimeout.error": "The value for the put message timeout must be a valid positive number or use context variables",
          "request.requestTarget.label": "Message Source",
          "request.requestTarget.REQUEST": "Request",
          "request.requestTarget.RESPONSE": "Response",
          "request.requestTarget.OTHER": "Other",
          "request.otherTargetMessageVariable.label": "Target Variable",
          "request.passThroughHeaders.heading": "Message Descriptors",
          "request.passThroughHeaders.label": "Pass through all message descriptors",
          "request.requestMessageAdvancedProperties.label": "Message Descriptor",
          "request.requestMessageAdvancedProperties.name.label": "Name",
          "request.requestMessageAdvancedProperties.value.label": "Value",
          "request.properties.heading": "Properties",
          "request.passThroughMqMessageProperties.label": "Pass through",
          "request.requestCopyPropertyToHeader.label": "Copy to additional headers",
          "request.additionalHeaders.heading": "Additional Headers",
          "request.passThroughMqMessageHeaders.label": "Pass through",
          "request.requestCopyHeaderToProperty.label": "Copy to properties",
          "request.requestMqHeaderType.label": "Set Additional Header As",
          "request.requestMqHeaderType.ORIGINAL": "Original Format",
          "response.responseTarget.label": "Message Target",
          "response.otherTargetMessageVariable.label": "Target Variable",
          "response.responseTarget.REQUEST": "Request",
          "response.responseTarget.RESPONSE": "Response",
          "response.responseTarget.OTHER": "Message Variable",
          "response.passThroughHeaders.heading": "Message Descriptors",
          "response.passThroughHeaders.label": "Pass through all message descriptors",
          "response.responseMessageAdvancedProperties.label": "Message Descriptors",
          "response.responseMessageAdvancedProperties.name.label": "Name",
          "response.responseMessageAdvancedProperties.value.label": "Value",
          "response.properties.heading": "Properties",
          "response.passThroughMqMessageProperties.label": "Pass through",
          "response.responseCopyPropertyToHeader.label": "Copy to additional headers",
          "response.additionalHeaders.heading": "Additional Headers",
          "response.passThroughMqMessageHeaders.label": "Pass through",
          "response.responseCopyHeaderToProperty.label": "Copy to properties",
          "response.responseMqHeaderType.label": "Set Additional Header As",
          "response.responseMqHeaderType.ORIGINAL": "Original Format",
          "response.__responseMaximumMessageSize.label": "Override maximum message size",
          "response.responseSize.label": "Maximum Message Size (bytes)",
          "response.responseSize.error": "The Response Size must be a number between 1 and 2147483647 or a context variable."
        }
      }
    ]
  },
  {
    "configName": "NonSoapCheckVerifyResults",
    "displayNameFormats": [
      {
        "format": "(Non-SOAP) Check Results from XML Verification {{.xpathExpression.expression}}",
        "condition": "not(isNull({{.xpathExpression.expression}}))"
      },
      {
        "format": "(Non-SOAP) Check Results from XML Verification [XPath expression not set]",
        "condition": "true"
      }
    ],
    "refVariables": [],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "(Non-SOAP) Check Results from XML Verification",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/target",
            "options": {
              "messageTarget": true,
              "otherTargetMessageVariableLabel": "assertion.common.target.otherTargetContextVariable"
            }
          },
          {
            "type": "Group",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "xpath-expression-wrapper"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/xpathExpression",
                "i18n": "xpathExpression",
                "options": {
                  "editXPath": true
                }
              }
            ]
          },
          {
            "type": "Control",
            "i18n": "variablePrefix",
            "scope": "#/properties/variablePrefix"
          },
          {
            "type": "Group",
            "i18n": "gatherCertificateCredentials.heading",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "signature-options-heading"
            },
            "elements": [
              {
                "type": "Control",
                "i18n": "gatherCertificateCredentials",
                "scope": "#/properties/gatherCertificateCredentials"
              }
            ]
          },
          {
            "type": "Group",
            "i18n": "permittedSignatureMethodUris.heading",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "method-spacing"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/permittedSignatureMethodUris",
                "label": false,
                "options": {
                  "format": "checkbox"
                }
              }
            ]
          },
          {
            "type": "Group",
            "i18n": "permittedDigestMethodUris.heading",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "method-spacing"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/permittedDigestMethodUris",
                "label": false,
                "options": {
                  "format": "checkbox"
                }
              }
            ]
          }
        ]
      }
    ],
    "configSchemaPatches": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/NonSoapCheckVerifyResults",
        "patches": [
          {
            "op": "replace",
            "path": "/properties/permittedDigestMethodUris",
            "value": {
              "type": "array",
              "uniqueItems": true,
              "items": {
                "type": "string"
              }
            }
          },
          {
            "op": "replace",
            "path": "/properties/permittedSignatureMethodUris",
            "value": {
              "type": "array",
              "uniqueItems": true,
              "items": {
                "type": "string"
              }
            }
          }
        ]
      }
    ],
    "configDataPatches": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/NonSoapCheckVerifyResults#AfterEdit",
        "patches": [
          {
            "op": "test",
            "path": "/gatherCertificateCredentials",
            "value": true
          },
          {
            "op": "remove",
            "path": "/gatherCertificateCredentials"
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/NonSoapCheckVerifyResults",
        "locale": "en",
        "content": {
          "xpathExpression.label": "Signed Element(s) XPath",
          "variablePrefix.label": "Variable Prefix",
          "gatherCertificateCredentials.heading": "Signature Options",
          "gatherCertificateCredentials.label": "Gather signer certificate(s) as credentials",
          "permittedSignatureMethodUris.heading": "Permitted Signature Methods",
          "permittedDigestMethodUris.heading": "Permitted Digest Methods"
        }
      }
    ]
  },
  {
    "configName": "NonSoapDecryptElement",
    "displayNameFormats": [
      {
        "format": "(Non-SOAP) Decrypt XML Element {{.xpathExpression.expression}}",
        "condition": "and(not(isNull({{.xpathExpression.expression}})))"
      }
    ],
    "refVariables": [
      {
        "fieldPath": ".variablePrefix",
        "refType": "OUT",
        "dataType": "other",
        "prefixed": true
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".elementsDecrypted",
        "refType": "OUT",
        "dataType": "xml",
        "multivalued": true
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".encryptionMethodUris",
        "refType": "OUT",
        "dataType": "string",
        "multivalued": true
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".recipientCertificates",
        "refType": "OUT",
        "dataType": "cert",
        "multivalued": true
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".contentsOnly",
        "refType": "OUT",
        "dataType": "boolean",
        "multivalued": true,
        "condition": "{{.reportContentsOnly}}"
      },
      {
        "fieldPath": ".",
        "suffix": "elementsDecrypted",
        "refType": "OUT",
        "dataType": "xml",
        "multivalued": true,
        "condition": "isEmpty({{.variablePrefix}})"
      },
      {
        "fieldPath": ".",
        "suffix": "encryptionMethodUris",
        "refType": "OUT",
        "dataType": "string",
        "multivalued": true,
        "condition": "isEmpty({{.variablePrefix}})"
      },
      {
        "fieldPath": ".",
        "suffix": "recipientCertificates",
        "refType": "OUT",
        "dataType": "cert",
        "multivalued": true,
        "condition": "isEmpty({{.variablePrefix}})"
      },
      {
        "fieldPath": ".",
        "suffix": "contentsOnly",
        "refType": "OUT",
        "dataType": "boolean",
        "multivalued": true,
        "condition": "and(isEmpty({{.variablePrefix}}), {{.reportContentsOnly}})"
      }
    ],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/NonSoapDecryptElement",
        "title": "(Non-SOAP) Decrypt XML Element",
        "properties": {
          "otherTargetMessageVariable": {
            "type": "string"
          },
          "reportContentsOnly": {
            "type": "boolean",
            "default": false
          },
          "target": {
            "type": "string",
            "enum": [
              "REQUEST",
              "RESPONSE",
              "OTHER"
            ],
            "default": "REQUEST"
          },
          "variablePrefix": {
            "type": "string",
            "default": ""
          },
          "xpathExpression": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/sub-types/xpathExpression"
          }
        }
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/sub-types/xpathExpression",
        "properties": {
          "expression": {
            "type": "string"
          },
          "namespaces": {
            "type": "object"
          },
          "xpathVersion": {
            "type": "string",
            "enum": [
              "UNSPECIFIED",
              "XPATH_1_0",
              "XPATH_2_0"
            ],
            "default": "UNSPECIFIED"
          }
        }
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/NonSoapDecryptElement/Main",
        "title": "(Non-SOAP) Decrypt XML Element",
        "properties": {
          "NonSoapDecryptElement": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/NonSoapDecryptElement"
          },
          ".properties": {
            "type": "object",
            "properties": {
              ".enabled": {
                "type": "boolean",
                "default": true
              },
              ".left.comment": {
                "type": "string"
              },
              ".right.comment": {
                "type": "string"
              }
            }
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "(Non-SOAP) Decrypt XML Element",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/target",
            "i18n": "assertion.common.target",
            "options": {
              "messageTarget": true
            }
          },
          {
            "type": "Group",
            "options": {
              "groupType": "wrapCustomClass"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/xpathExpression",
                "i18n": "xpathExpression.expression",
                "options": {
                  "readonly": true,
                  "editXPath": true
                }
              }
            ]
          },
          {
            "type": "Control",
            "scope": "#/properties/variablePrefix",
            "i18n": "variablePrefix",
            "options": {
              "contextVariable": true,
              "markAsRequired": false,
              "variableType": "output",
              "allowedDataTypes": []
            }
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/NonSoapDecryptElement",
        "locale": "en",
        "content": {
          "xpathExpression.expression.label": "XPath",
          "variablePrefix.label": "Variable Prefix",
          "__editXPath.label": "Edit XPath"
        }
      }
    ]
  },
  {
    "configName": "NonSoapEncryptElement",
    "displayNameFormats": [
      {
        "format": "(Non-SOAP) Encrypt XML Element {{.xpathExpression.expression}}",
        "condition": "not(isNull({{.xpathExpression.expression}}))"
      },
      {
        "format": "(Non-SOAP) Encrypt XML Element [XPath expression not set]",
        "condition": "true"
      }
    ],
    "refVariables": [
      {
        "fieldPath": ".recipientCertContextVariableName",
        "refType": "OUT",
        "dataType": "other"
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "(Non-SOAP) Encrypt XML Element",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/target",
            "options": {
              "messageTarget": true,
              "otherTargetMessageVariableLabel": "assertion.common.target.otherTargetContextVariable"
            }
          },
          {
            "type": "Group",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "xpath-expression-wrapper"
            },
            "elements": [
              {
                "type": "Control",
                "i18n": "xpathExpression",
                "scope": "#/properties/xpathExpression",
                "options": {
                  "editXPath": true
                }
              }
            ]
          },
          {
            "type": "Group",
            "i18n": "encryptionSettings.heading",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "encryption-settings-heading",
              "labelColor": "bodyText"
            },
            "elements": [
              {
                "type": "Control",
                "i18n": "xencAlgorithm",
                "scope": "#/properties/xencAlgorithm"
              }
            ]
          },
          {
            "type": "Control",
            "i18n": "__recipientX509Certificate",
            "scope": "#/properties/__recipientX509Certificate"
          },
          {
            "type": "Group",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "certificate-elements"
            },
            "elements": [
              {
                "type": "Control",
                "i18n": "recipientCertificateBase64",
                "scope": "#/properties/recipientCertificateBase64",
                "options": {
                  "recipientCertificate": true
                },
                "rule": {
                  "effect": "SHOW",
                  "condition": {
                    "scope": "#/properties/__recipientX509Certificate",
                    "schema": {
                      "const": "specifyCertificate"
                    }
                  }
                }
              },
              {
                "type": "Control",
                "i18n": "recipientCertContextVariableName",
                "scope": "#/properties/recipientCertContextVariableName",
                "options": {
                  "contextVariable": true,
                  "markAsRequired": true,
                  "variableType": "output",
                  "allowedDataTypes": []
                },
                "rule": {
                  "effect": "SHOW",
                  "condition": {
                    "scope": "#/properties/__recipientX509Certificate",
                    "schema": {
                      "const": "useCertificateFromContextVariable"
                    }
                  }
                }
              }
            ]
          },
          {
            "type": "Group",
            "label": "Advanced",
            "isExpanded": false,
            "options": {
              "groupType": "Accordion"
            },
            "elements": [
              {
                "type": "Group",
                "options": {
                  "groupType": "wrapCustomClass",
                  "customClass": "advanced-fields"
                },
                "elements": [
                  {
                    "type": "Control",
                    "i18n": "advanced.includeEncryptedDataTypeAttribute",
                    "scope": "#/properties/includeEncryptedDataTypeAttribute",
                    "options": {
                      "subUiSchema": {
                        "type": "Control",
                        "i18n": "advanced.encryptedDataTypeAttribute",
                        "scope": "#/properties/encryptedDataTypeAttribute",
                        "options": {
                          "markAsRequired": true,
                          "customClass": "sub-schema-element"
                        }
                      }
                    }
                  }
                ]
              },
              {
                "type": "Group",
                "options": {
                  "groupType": "wrapCustomClass",
                  "customClass": "advanced-fields"
                },
                "elements": [
                  {
                    "type": "Control",
                    "i18n": "advanced.__addRecipientAttribute",
                    "scope": "#/properties/__addRecipientAttribute",
                    "options": {
                      "subUiSchema": {
                        "type": "Control",
                        "i18n": "advanced.encryptedKeyRecipientAttribute",
                        "scope": "#/properties/encryptedKeyRecipientAttribute",
                        "options": {
                          "markAsRequired": true,
                          "customClass": "sub-schema-element"
                        }
                      }
                    }
                  }
                ]
              },
              {
                "type": "Control",
                "i18n": "advanced.encryptContentsOnly",
                "scope": "#/properties/encryptContentsOnly"
              },
              {
                "type": "Control",
                "i18n": "advanced.useOaep",
                "scope": "#/properties/useOaep"
              }
            ]
          }
        ]
      }
    ],
    "configSchemaPatches": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/NonSoapEncryptElement",
        "patches": [
          {
            "op": "remove",
            "path": "/properties/encryptedDataTypeAttribute/default"
          },
          {
            "op": "add",
            "path": "/properties/__recipientX509Certificate",
            "value": {
              "type": "string",
              "enum": [
                "specifyCertificate",
                "useCertificateFromContextVariable"
              ]
            }
          },
          {
            "op": "add",
            "path": "/properties/__setCertificate",
            "value": {
              "type": "string"
            }
          },
          {
            "op": "add",
            "path": "/properties/__addRecipientAttribute",
            "value": {
              "type": "boolean"
            }
          }
        ]
      }
    ],
    "configDataPatches": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/NonSoapEncryptElement#AfterEdit",
        "patches": [
          {
            "op": "test",
            "path": "/encryptContentsOnly",
            "value": false
          },
          {
            "op": "remove",
            "path": "/encryptContentsOnly"
          }
        ]
      },
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/NonSoapEncryptElement#AfterEdit",
        "patches": [
          {
            "op": "test",
            "path": "/useOaep",
            "value": false
          },
          {
            "op": "remove",
            "path": "/useOaep"
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/NonSoapEncryptElement",
        "locale": "en",
        "content": {
          "xpathExpression.label": "Element(s) to Encrypt XPath",
          "encryptionSettings.heading": "Encryption Settings",
          "xencAlgorithm.label": "Encryption Method",
          "__recipientX509Certificate.label": "Recipient X.509 Certificate",
          "__recipientX509Certificate.specifyCertificate": "Specify Certificate",
          "__recipientX509Certificate.useCertificateFromContextVariable": "Use Certificate from Context Variable",
          "recipientCertificateBase64.label": "Recipient Certificate",
          "recipientCertificateBase64.error": "No Recipient Certificate is configured",
          "__setCertificate.label": "Set Certificate",
          "recipientCertContextVariableName.label": "Context Variable",
          "advanced.includeEncryptedDataTypeAttribute.label": "Add encrypted data type attribute",
          "advanced.encryptedDataTypeAttribute.label": "Encrypted Data Attribute",
          "advanced.__addRecipientAttribute.label": "Add recipient attribute",
          "advanced.encryptedKeyRecipientAttribute.label": "Recipient Attribute",
          "advanced.encryptContentsOnly.label": "Encrypt only element contents",
          "advanced.useOaep.label": "Use OAEP",
          "encryptedDataTypeAttribute.uri.error": "Encrypted Data Attribute should be valid URI"
        }
      }
    ]
  },
  {
    "configName": "NonSoapSignElement",
    "displayNameFormats": [
      {
        "format": "(Non-SOAP) Sign XML Element {{.xpathExpression.expression}}",
        "condition": "not(isNull({{.xpathExpression.expression}}))"
      },
      {
        "format": "(Non-SOAP) Sign XML Element [XPath expression not set]",
        "condition": "true"
      }
    ],
    "refVariables": [
      {
        "fieldPath": ".detachedSignatureVariableName",
        "refType": "OUT",
        "dataType": "other"
      }
    ],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/NonSoapSignElement",
        "title": "(Non-SOAP) Sign XML Element",
        "properties": {
          "customIdAttributeQname": {
            "type": "string"
          },
          "detachedSignatureVariableName": {
            "type": "string"
          },
          "digestAlgName": {
            "type": "string",
            "enum": [
              "Default",
              "SHA-1",
              "SHA-256",
              "SHA-384",
              "SHA-512"
            ],
            "default": "Default"
          },
          "dynamicPrivateKeyVariable": {
            "type": "string",
            "default": ""
          },
          "forceEnvelopedTransform": {
            "type": "boolean",
            "default": false
          },
          "keyAlias": {
            "type": "string"
          },
          "nonDefaultKeystoreId": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/sub-types/goid"
          },
          "otherTargetMessageVariable": {
            "type": "string"
          },
          "refDigestAlgName": {
            "type": "string",
            "enum": [
              "Default",
              "SHA-1",
              "SHA-256",
              "SHA-384",
              "SHA-512"
            ],
            "default": "Default"
          },
          "signatureLocation": {
            "type": "string",
            "enum": [
              "FIRST_CHILD",
              "LAST_CHILD"
            ],
            "default": "LAST_CHILD"
          },
          "target": {
            "type": "string",
            "enum": [
              "REQUEST",
              "RESPONSE",
              "OTHER"
            ],
            "default": "RESPONSE"
          },
          "usesDefaultKeyStore": {
            "type": "boolean",
            "default": true
          },
          "usesDynamicPrivateKey": {
            "type": "boolean",
            "default": false
          },
          "xpathExpression": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/sub-types/xpathExpression"
          },
          "__targetURIReference": {
            "type": "string",
            "enum": [
              "automatic",
              "specified"
            ],
            "default": "automatic"
          },
          "__signatureLocationBlock": {
            "type": "string",
            "enum": [
              "eachSignedElement",
              "detachedSignature"
            ],
            "default": "eachSignedElement"
          },
          "__privateKey": {
            "type": "string"
          }
        }
      },
      {
        "type": "string",
        "$id": "https://l7tech.com/2025/json-schema/assertions/sub-types/goid"
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/sub-types/xpathExpression",
        "properties": {
          "expression": {
            "type": "string"
          },
          "namespaces": {
            "type": "object"
          },
          "xpathVersion": {
            "type": "string",
            "enum": [
              "UNSPECIFIED",
              "XPATH_1_0",
              "XPATH_2_0"
            ],
            "default": "UNSPECIFIED"
          }
        }
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/NonSoapSignElement/Main",
        "title": "(Non-SOAP) Sign XML Element",
        "properties": {
          "NonSoapSignElement": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/NonSoapSignElement"
          },
          ".properties": {
            "type": "object",
            "properties": {
              ".enabled": {
                "type": "boolean",
                "default": true
              },
              ".left.comment": {
                "type": "string"
              },
              ".right.comment": {
                "type": "string"
              }
            }
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "(Non-SOAP) Sign XML Element",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/target",
            "options": {
              "messageTarget": true
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/xpathExpression",
            "i18n": "xpathExpression.expression",
            "options": {
              "markAsRequired": true,
              "editXPath": true
            }
          },
          {
            "type": "Group",
            "i18n": "targetURIReference.label",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "label-heading-style"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/__targetURIReference",
                "label": false,
                "options": {
                  "format": "radio",
                  "useRowLayout": false
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/customIdAttributeQname",
                "label": false,
                "rule": {
                  "effect": "SHOW",
                  "condition": {
                    "scope": "#/properties/__targetURIReference",
                    "schema": {
                      "const": "specified"
                    }
                  }
                }
              }
            ]
          },
          {
            "type": "Group",
            "i18n": "signatureLocationHeader.label",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "label-heading-style"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/__signatureLocationBlock",
                "label": false,
                "options": {
                  "format": "radio",
                  "uiSchemasMap": {
                    "eachSignedElement": {
                      "type": "Control",
                      "scope": "#/properties/signatureLocation",
                      "label": false,
                      "options": {
                        "markAsRequired": true
                      }
                    },
                    "detachedSignature": {
                      "type": "Group",
                      "options": {
                        "groupType": "wrapCustomClass"
                      },
                      "elements": [
                        {
                          "type": "Control",
                          "scope": "#/properties/detachedSignatureVariableName",
                          "label": false,
                          "options": {
                            "contextVariable": true,
                            "markAsRequired": true,
                            "variableType": "output",
                            "allowedDataTypes": []
                          }
                        },
                        {
                          "type": "Control",
                          "scope": "#/properties/forceEnvelopedTransform",
                          "i18n": "forceEnvelopedTransform",
                          "options": {
                            "format": "checkbox"
                          }
                        }
                      ]
                    }
                  }
                }
              }
            ]
          },
          {
            "type": "Group",
            "i18n": "signatureTypeHeader.label",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "label-heading-style"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/digestAlgName",
                "i18n": "digestAlgName",
                "options": {
                  "markAsRequired": true
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/refDigestAlgName",
                "i18n": "refDigestAlgName",
                "options": {
                  "markAsRequired": true
                }
              }
            ]
          },
          {
            "type": "Group",
            "i18n": "privateKey.label",
            "options": {
              "groupType": "ShowHide"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/__privateKey",
                "options": {
                  "privateKey": true,
                  "keyTypeOptions": [
                    "DEFAULT_KEY",
                    "CUSTOM_PRIVATE_KEY"
                  ]
                }
              }
            ]
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/NonSoapSignElement",
        "locale": "en",
        "content": {
          "xpathExpression.expression.label": "Element(s) to sign XPath",
          "targetURIReference.label": "Target URI Reference",
          "signatureTypeHeader.label": "Signature Type",
          "privateKey.label": "Signature Type",
          "signatureLocationHeader.label": "Signature Location",
          "signatureLocation.FIRST_CHILD": "First child of signed element",
          "signatureLocation.LAST_CHILD": "Last child of signed element",
          "__targetURIReference.automatic": "Automatic",
          "__targetURIReference.specified": "Specify ID attribute name",
          "forceEnvelopedTransform.label": "Include enveloped transform",
          "digestAlgName.label": "Signature Digest",
          "refDigestAlgName.label": "Reference Digest",
          "__signatureLocationBlock.eachSignedElement": "Add one signature to each signed element",
          "__signatureLocationBlock.detachedSignature": "Create detached signature and save in context variable",
          "common.error.attribute_format.field": "Attribute name should be in one of the formats: NAME, PREFIX:NAME, {URI}NAME, or {URI}PREFIX:NAME"
        }
      }
    ]
  },
  {
    "configName": "NonSoapVerifyElement",
    "displayNameFormats": [
      {
        "format": "(Non-SOAP) Verify XML Element {{.xpathExpression.expression}}",
        "condition": "not(isNull({{.xpathExpression.expression}}))"
      },
      {
        "format": "(Non-SOAP) Verify XML Element",
        "condition": "true"
      }
    ],
    "refVariables": [
      {
        "fieldPath": ".verifyCertificateVariableName",
        "refType": "IN",
        "dataType": "string"
      },
      {
        "fieldPath": ".variablePrefix",
        "refType": "OUT",
        "dataType": "other",
        "prefixed": true
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".elementsVerified",
        "refType": "OUT",
        "dataType": "xml",
        "multivalued": true
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".signatureMethodUris",
        "refType": "OUT",
        "dataType": "string",
        "multivalued": true
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".digestMethodUris",
        "refType": "OUT",
        "dataType": "string",
        "multivalued": true
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".signingCertificates",
        "refType": "OUT",
        "dataType": "cert",
        "multivalued": true
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".signatureValues",
        "refType": "OUT",
        "dataType": "string",
        "multivalued": true
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".signatureElements",
        "refType": "OUT",
        "dataType": "xml",
        "multivalued": true
      },
      {
        "fieldPath": ".",
        "suffix": "elementsVerified",
        "refType": "OUT",
        "dataType": "xml",
        "multivalued": true,
        "condition": "isEmpty({{.variablePrefix}})"
      },
      {
        "fieldPath": ".",
        "suffix": "signatureMethodUris",
        "refType": "OUT",
        "dataType": "string",
        "multivalued": true,
        "condition": "isEmpty({{.variablePrefix}})"
      },
      {
        "fieldPath": ".",
        "suffix": "digestMethodUris",
        "refType": "OUT",
        "dataType": "string",
        "multivalued": true,
        "condition": "isEmpty({{.variablePrefix}})"
      },
      {
        "fieldPath": ".",
        "suffix": "signingCertificates",
        "refType": "OUT",
        "dataType": "cert",
        "multivalued": true,
        "condition": "isEmpty({{.variablePrefix}})"
      },
      {
        "fieldPath": ".",
        "suffix": "signatureValues",
        "refType": "OUT",
        "dataType": "string",
        "multivalued": true,
        "condition": "isEmpty({{.variablePrefix}})"
      },
      {
        "fieldPath": ".",
        "suffix": "signatureElements",
        "refType": "OUT",
        "dataType": "xml",
        "multivalued": true,
        "condition": "isEmpty({{.variablePrefix}})"
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "(Non-SOAP) Verify XML Element",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/target",
            "options": {
              "messageTarget": true,
              "otherTargetMessageVariableLabel": "assertion.common.target.otherTargetContextVariable"
            }
          },
          {
            "type": "Group",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "xpath-expression-wrapper"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/xpathExpression",
                "i18n": "xpathExpression",
                "options": {
                  "editXPath": true
                }
              }
            ]
          },
          {
            "type": "Control",
            "i18n": "variablePrefix",
            "scope": "#/properties/variablePrefix",
            "options": {
              "contextVariable": true,
              "variableType": "output",
              "allowedDataTypes": []
            }
          },
          {
            "type": "Group",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "signature-settings-spacing"
            },
            "elements": [
              {
                "type": "Control",
                "i18n": "__signatureSettings",
                "scope": "#/properties/__signatureSettings"
              }
            ]
          },
          {
            "type": "VerticalLayout",
            "elements": [
              {
                "type": "Group",
                "options": {
                  "groupType": "wrapCustomClass",
                  "customClass": "certificate-row-elements"
                },
                "elements": [
                  {
                    "type": "Control",
                    "i18n": "__signatureValidationName",
                    "scope": "#/properties/__signatureValidationName",
                    "options": {
                      "readonly": true,
                      "markAsRequired": true
                    }
                  },
                  {
                    "type": "Control",
                    "i18n": "__selectCertificate.label",
                    "scope": "#/properties/__selectCertificate",
                    "options": {
                      "controlType": "Button",
                      "variant": "outlined",
                      "readonly": true
                    }
                  }
                ]
              },
              {
                "type": "Group",
                "options": {
                  "groupType": "wrapCustomClass",
                  "customClass": "certificate-row-elements"
                },
                "elements": [
                  {
                    "type": "Control",
                    "i18n": "__signatureValidationSubject",
                    "scope": "#/properties/__signatureValidationSubject",
                    "options": {
                      "readonly": true,
                      "markAsRequired": true
                    }
                  }
                ]
              },
              {
                "type": "Group",
                "options": {
                  "groupType": "wrapCustomClass",
                  "customClass": "certificate-row-elements"
                },
                "elements": [
                  {
                    "type": "Control",
                    "i18n": "__signatureValidationIssuedBy",
                    "scope": "#/properties/__signatureValidationIssuedBy",
                    "options": {
                      "readonly": true,
                      "markAsRequired": true
                    }
                  }
                ]
              }
            ],
            "rule": {
              "effect": "SHOW",
              "condition": {
                "scope": "#/properties/__signatureSettings",
                "schema": {
                  "const": "useCertificateForSignatureValidation"
                }
              }
            }
          },
          {
            "type": "Control",
            "i18n": "verifyCertificateName",
            "scope": "#/properties/verifyCertificateName",
            "options": {
              "markAsRequired": true
            },
            "rule": {
              "effect": "SHOW",
              "condition": {
                "scope": "#/properties/__signatureSettings",
                "schema": {
                  "const": "lookupCertificate"
                }
              }
            }
          },
          {
            "type": "Control",
            "i18n": "verifyCertificateVariableName",
            "scope": "#/properties/verifyCertificateVariableName",
            "options": {
              "markAsRequired": true,
              "contextVariable": true,
              "variableType": "input",
              "allowedDataTypes": []
            },
            "rule": {
              "effect": "SHOW",
              "condition": {
                "scope": "#/properties/__signatureSettings",
                "schema": {
                  "const": "useCertificateForContextVariable"
                }
              }
            }
          },
          {
            "type": "Group",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "checkbox-spacing"
            },
            "elements": [
              {
                "type": "Control",
                "i18n": "ignoreKeyInfo",
                "scope": "#/properties/ignoreKeyInfo"
              }
            ],
            "rule": {
              "effect": "HIDE",
              "condition": {
                "scope": "#/properties/__signatureSettings",
                "schema": {
                  "const": "expectKeyInfo"
                }
              }
            }
          },
          {
            "type": "Group",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "checkbox-spacing"
            },
            "elements": [
              {
                "type": "Control",
                "i18n": "__recognizeIdAttributes",
                "scope": "#/properties/__recognizeIdAttributes"
              }
            ]
          },
          {
            "type": "Control",
            "scope": "#/properties/customIdAttrs",
            "i18n": "customIdAttrs",
            "options": {
              "nameValueList": true,
              "customModalMaxWidth": "500px",
              "modalCallbackEvent": true,
              "detail": {
                "type": "VerticalLayout",
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/idAttribute",
                    "i18n": "idAttribute",
                    "options": {
                      "markAsRequired": true
                    }
                  }
                ]
              }
            },
            "rule": {
              "effect": "SHOW",
              "condition": {
                "scope": "#/properties/__recognizeIdAttributes",
                "schema": {
                  "const": true
                }
              }
            }
          }
        ]
      }
    ],
    "configSchemaPatches": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/NonSoapVerifyElement",
        "patches": [
          {
            "op": "replace",
            "path": "/properties/customIdAttrs/items",
            "value": {
              "type": "object",
              "$id": "https://l7tech.com/2025/json-schema/assertions/sub-types/fullQName",
              "properties": {
                "idAttribute": {
                  "type": "string",
                  "title": "ID Attribute"
                }
              }
            }
          },
          {
            "op": "add",
            "path": "/properties/__selectCertificate",
            "value": {
              "type": "string"
            }
          },
          {
            "op": "add",
            "path": "/properties/__signatureSettings",
            "value": {
              "type": "string",
              "enum": [
                "expectKeyInfo",
                "useCertificateForSignatureValidation",
                "lookupCertificate",
                "useCertificateForContextVariable"
              ]
            }
          },
          {
            "op": "add",
            "path": "/properties/__signatureValidationName",
            "value": {
              "type": "string"
            }
          },
          {
            "op": "add",
            "path": "/properties/__signatureValidationSubject",
            "value": {
              "type": "string"
            }
          },
          {
            "op": "add",
            "path": "/properties/__signatureValidationIssuedBy",
            "value": {
              "type": "string"
            }
          },
          {
            "op": "add",
            "path": "/properties/__recognizeIdAttributes",
            "value": {
              "type": "boolean"
            }
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/NonSoapVerifyElement",
        "locale": "en",
        "content": {
          "xpathExpression.label": "Signature Elements to Verify XPath",
          "variablePrefix.label": "Variable Prefix",
          "__signatureSettings.label": "Signature Settings",
          "__signatureSettings.expectKeyInfo": "Expect KeyInfo in signature element (default)",
          "__signatureSettings.useCertificateForSignatureValidation": "Use selected certificate for signature validation",
          "__signatureSettings.lookupCertificate": "Lookup certificate by name",
          "__signatureSettings.useCertificateForContextVariable": "Use certificate from context variable",
          "__signatureValidationName.label": "Name",
          "__selectCertificate.label": "Select Certificate",
          "__signatureValidationSubject.label": "Subject",
          "__signatureValidationIssuedBy.label": "Issued By",
          "verifyCertificateName.label": "Certificate Name",
          "verifyCertificateVariableName.label": "Context Variable",
          "ignoreKeyInfo.label": "Always override KeyInfo in signature element with selected certificate",
          "__recognizeIdAttributes.label": "Recognize only the following ID attributes",
          "idAttribute.label": "Please Enter an ID Attribute Name as Either NAME or {URI}NAME",
          "customIdAttrs.label": "Attribute",
          "customIdAttrs.error": "Atleast one custom attribute ID must be configured for Recognize Only the Following ID Attributes.",
          "customIdAttrs.idAttribute.duplicate.error": "Attribute with similar name already exists. Please give a different name.",
          "customIdAttrs.idAttribute.format.error": "Attribute name should be in one the the formats: NAME, PREFIX:NAME, {URI}NAME or {URI}PREFIX:NAME"
        }
      }
    ]
  },
  {
    "configName": "NtlmAuthentication",
    "refVariables": [
      {
        "fieldPath": ".variablePrefix",
        "refType": "OUT",
        "dataType": "other",
        "prefixed": true
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".sAMAccountName",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".sid",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".userAccountFlags",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".logonDomainName",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".session.key",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".fullName",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".homeDirectory",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".homeDirectoryDrive",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".sidGroups",
        "refType": "OUT",
        "dataType": "string",
        "multivalued": true
      }
    ],
    "refEntities": [
      {
        "fieldPath": ".ldapProviderOid",
        "refType": "GOID",
        "entityType": "IdpRef"
      }
    ],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/NtlmAuthentication",
        "title": "Require NTLM Authentication Credentials",
        "properties": {
          "ldapProviderName": {
            "type": "string"
          },
          "ldapProviderOid": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/sub-types/goid"
          },
          "maxConnectionDuration": {
            "type": "integer"
          },
          "maxConnectionIdleTime": {
            "type": "integer"
          },
          "realm": {
            "type": "string"
          },
          "variablePrefix": {
            "type": "string"
          },
          "__durationOption": {
            "type": "string",
            "enum": [
              "Default",
              "Custom"
            ],
            "default": "Default"
          },
          "__idleTimeOption": {
            "type": "string",
            "enum": [
              "Default",
              "Custom"
            ],
            "default": "Default"
          }
        }
      },
      {
        "type": "string",
        "$id": "https://l7tech.com/2025/json-schema/assertions/sub-types/goid"
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/NtlmAuthentication/Main",
        "title": "Require NTLM Authentication Credentials",
        "properties": {
          "NtlmAuthentication": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/NtlmAuthentication"
          },
          ".properties": {
            "type": "object",
            "properties": {
              ".enabled": {
                "type": "boolean",
                "default": true
              },
              ".left.comment": {
                "type": "string"
              },
              ".right.comment": {
                "type": "string"
              }
            }
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Require NTLM Authentication Credentials",
        "elements": [
          {
            "type": "Control",
            "i18n": "ldapProviderOid",
            "scope": "#/properties/ldapProviderOid",
            "options": {
              "markAsRequired": true
            }
          },
          {
            "type": "Group",
            "i18n": "connectionHeading",
            "options": {
              "groupType": "wrapCustomClass",
              "labelColor": "bodyText",
              "customClass": "connection-group"
            },
            "elements": [
              {
                "type": "Control",
                "i18n": "durationOption",
                "scope": "#/properties/__durationOption",
                "options": {
                  "format": "radio",
                  "useRowLayout": false,
                  "markAsRequired": true,
                  "uiSchemasMap": {
                    "Custom": {
                      "type": "VerticalLayout",
                      "elements": [
                        {
                          "type": "Control",
                          "i18n": "maxConnectionDuration",
                          "scope": "#/properties/maxConnectionDuration",
                          "options": {
                            "markAsRequired": true,
                            "maxLength": 10
                          }
                        }
                      ]
                    }
                  }
                }
              },
              {
                "type": "Control",
                "i18n": "idleTimeOption",
                "scope": "#/properties/__idleTimeOption",
                "options": {
                  "format": "radio",
                  "useRowLayout": false,
                  "markAsRequired": true,
                  "uiSchemasMap": {
                    "Custom": {
                      "type": "VerticalLayout",
                      "elements": [
                        {
                          "type": "Control",
                          "i18n": "maxConnectionIdleTime",
                          "scope": "#/properties/maxConnectionIdleTime",
                          "options": {
                            "markAsRequired": true,
                            "maxLength": 10
                          }
                        }
                      ]
                    }
                  }
                }
              }
            ]
          },
          {
            "type": "Control",
            "i18n": "variablePrefix",
            "scope": "#/properties/variablePrefix",
            "options": {
              "markAsRequired": true,
              "contextVariable": true,
              "variableType": "output",
              "allowedDataTypes": []
            }
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/NtlmAuthentication",
        "locale": "en",
        "content": {
          "connectionHeading": "Authenticated Connection Timeouts",
          "durationOption.label": "Max Duration",
          "idleTimeOption.label": "Max Idle Time",
          "ldapProviderOid.label": "LDAP Identity Provider",
          "variablePrefix.label": "Variable Prefix",
          "maxConnectionDuration.label": "Duration (seconds)",
          "maxConnectionDuration.error": "The max duration custom field must be number 0 and 2147483647",
          "maxConnectionIdleTime.label": "Idle Time (seconds)",
          "maxConnectionIdleTime.error": "The max idle time field must be number 0 and 2147483647"
        }
      }
    ]
  },
  {
    "configName": "OAuth2Introspection",
    "refVariables": [
      {
        "fieldPath": ".varPrefix",
        "refType": "OUT",
        "dataType": "other",
        "prefixed": true
      },
      {
        "fieldPath": ".varPrefix",
        "refType": "OUT",
        "dataType": "string",
        "suffix": ".issuer"
      },
      {
        "fieldPath": ".varPrefix",
        "refType": "OUT",
        "dataType": "string",
        "suffix": ".client_id"
      },
      {
        "fieldPath": ".varPrefix",
        "refType": "OUT",
        "dataType": "string",
        "suffix": ".exp"
      },
      {
        "fieldPath": ".varPrefix",
        "refType": "OUT",
        "dataType": "string",
        "suffix": ".scope"
      },
      {
        "fieldPath": ".varPrefix",
        "refType": "OUT",
        "dataType": "string",
        "suffix": ".aud"
      },
      {
        "fieldPath": ".varPrefix",
        "refType": "OUT",
        "dataType": "string",
        "suffix": ".username"
      },
      {
        "fieldPath": ".varPrefix",
        "refType": "OUT",
        "dataType": "string",
        "suffix": ".response",
        "condition": "{{.includeFullResponseDetails}}"
      },
      {
        "fieldPath": ".varPrefix",
        "refType": "OUT",
        "dataType": "string",
        "suffix": ".error"
      },
      {
        "fieldPath": ".varPrefix",
        "refType": "OUT",
        "dataType": "string",
        "suffix": ".error_description"
      },
      {
        "fieldPath": ".varPrefix",
        "refType": "OUT",
        "dataType": "string",
        "suffix": ".azp"
      }
    ],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/OAuth2Introspection",
        "title": "Require and Introspect OAuth2.0 Token",
        "properties": {
          "__fromRequester": {
            "type": "boolean",
            "default": true
          },
          "__useDefault": {
            "type": "boolean",
            "default": true
          },
          "token": {
            "type": "string"
          },
          "atLeastOneAudience": {
            "type": "boolean",
            "default": false
          },
          "atLeastOneScope": {
            "type": "boolean",
            "default": false
          },
          "audience": {
            "type": "string"
          },
          "includeFullResponseDetails": {
            "type": "boolean",
            "default": false
          },
          "scope": {
            "type": "string"
          },
          "tokenIssuerHint": {
            "type": "string"
          },
          "trustGatewayAsIssuer": {
            "type": "boolean",
            "default": false
          },
          "varPrefix": {
            "type": "string"
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Require and Introspect OAuth2.0 Token",
        "elements": [
          {
            "type": "Group",
            "i18n": "token",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "token-group-style"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/__fromRequester",
                "i18n": "__fromRequester"
              },
              {
                "type": "Control",
                "scope": "#/properties/token",
                "label": false,
                "options": {
                  "markAsRequired": true
                },
                "rule": {
                  "effect": "HIDE",
                  "condition": {
                    "scope": "#/properties/__fromRequester",
                    "schema": {
                      "const": true
                    }
                  }
                }
              }
            ]
          },
          {
            "type": "Group",
            "i18n": "token-issuer",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "token-Issuer-style"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/tokenIssuerHint",
                "label": false,
                "options": {
                  "defaultOptions": [
                    {
                      "label": "<Default>",
                      "value": "<Default>"
                    },
                    {
                      "label": "<Local>",
                      "value": "<Local>"
                    }
                  ],
                  "autocomplete": true,
                  "allowUserProvidedInput": true,
                  "markAsRequired": true
                }
              }
            ]
          },
          {
            "type": "Group",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "at-least-one-group"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/scope",
                "i18n": "require-scope"
              },
              {
                "type": "Control",
                "scope": "#/properties/atLeastOneScope",
                "i18n": "atleastone"
              }
            ]
          },
          {
            "type": "Group",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "at-least-one-group"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/audience",
                "i18n": "require-audience"
              },
              {
                "type": "Control",
                "scope": "#/properties/atLeastOneAudience",
                "i18n": "atleastone"
              }
            ]
          },
          {
            "type": "Group",
            "i18n": "output",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "output-group"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/varPrefix",
                "options": {
                  "markAsRequired": true
                },
                "i18n": "variable-prefix"
              },
              {
                "type": "Control",
                "scope": "#/properties/includeFullResponseDetails",
                "i18n": "full-response"
              }
            ]
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/OAuth2Introspection",
        "locale": "en",
        "content": {
          "token": "OAuth 2.0 Token",
          "token-issuer": "Token Issuer",
          "__fromRequester.label": "From Request",
          "__useDefault.label": "Use Default",
          "require-scope.label": "Require Scope",
          "require-audience.label": "Require Audience",
          "atleastone.label": "At least one",
          "variable-prefix.label": "Variable Prefix",
          "output": "Output",
          "full-response.label": "Include Full Introspection Response"
        }
      }
    ]
  },
  {
    "configName": "OdataValidation",
    "refVariables": [
      {
        "fieldPath": ".odataMetadataSource",
        "refType": "OUT",
        "dataType": "other",
        "prefixed": true
      },
      {
        "fieldPath": ".variablePrefix",
        "refType": "OUT",
        "dataType": "other",
        "prefixed": true
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".query.count",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".query.top",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".query.filter",
        "refType": "OUT",
        "dataType": "string",
        "multivalued": true
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".query.skip",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".query.orderby",
        "refType": "OUT",
        "dataType": "string",
        "multivalued": true
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".query.expand",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".query.format",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".query.inlinecount",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".query.select",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".query.customoptions",
        "refType": "OUT",
        "dataType": "string",
        "multivalued": true
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".query.pathsegments",
        "refType": "OUT",
        "dataType": "string",
        "multivalued": true
      }
    ],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/OdataValidation",
        "title": "Validate OData Request",
        "properties": {
          "actions": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "ALLOW_METADATA",
                "ALLOW_RAW_VALUE"
              ]
            }
          },
          "allowMetadata": {
            "type": "boolean",
            "default": false
          },
          "allowRawValue": {
            "type": "boolean",
            "default": false
          },
          "createOperation": {
            "type": "boolean",
            "default": true
          },
          "deleteOperation": {
            "type": "boolean",
            "default": false
          },
          "httpMethod": {
            "type": "string",
            "enum": [
              "AUTOMATIC",
              "GET",
              "POST",
              "PUT",
              "DELETE",
              "MERGE",
              "PATCH"
            ],
            "default": "AUTOMATIC"
          },
          "mergeOperation": {
            "type": "boolean",
            "default": false
          },
          "odataMetadataSource": {
            "type": "string"
          },
          "otherTargetMessageVariable": {
            "type": "string"
          },
          "partialUpdateOperation": {
            "type": "boolean",
            "default": false
          },
          "readOperation": {
            "type": "boolean",
            "default": true
          },
          "resourceUrl": {
            "type": "string"
          },
          "target": {
            "type": "string",
            "enum": [
              "REQUEST",
              "RESPONSE",
              "OTHER"
            ],
            "default": "REQUEST"
          },
          "updateOperation": {
            "type": "boolean",
            "default": true
          },
          "validatePayload": {
            "type": "boolean",
            "default": true
          },
          "variablePrefix": {
            "type": "string"
          }
        }
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/OdataValidation/Main",
        "title": "Validate OData Request",
        "properties": {
          "OdataValidation": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/OdataValidation"
          },
          ".properties": {
            "type": "object",
            "properties": {
              ".enabled": {
                "type": "boolean",
                "default": true
              },
              ".left.comment": {
                "type": "string"
              },
              ".right.comment": {
                "type": "string"
              }
            }
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Validate OData Request",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/target",
            "i18n": "target",
            "options": {
              "messageTarget": true,
              "otherTargetMessageVariableLabel": "otherTargetMessageVariableLabel"
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/odataMetadataSource",
            "i18n": "odataMetadataSource",
            "options": {
              "markAsRequired": true,
              "contextVariable": true,
              "variableType": "output",
              "allowedDataTypes": []
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/resourceUrl",
            "i18n": "resourceUrl",
            "options": {
              "markAsRequired": true
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/httpMethod",
            "i18n": "httpMethod",
            "options": {
              "markAsRequired": true
            }
          },
          {
            "type": "Group",
            "i18n": "actions.label",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "actions-group"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/allowMetadata",
                "i18n": "allowMetadata"
              },
              {
                "type": "Control",
                "scope": "#/properties/allowRawValue",
                "i18n": "allowRawValue"
              }
            ]
          },
          {
            "type": "Group",
            "i18n": "allowedOperations",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "allowedOperations-group"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/readOperation",
                "i18n": "readOperation"
              },
              {
                "type": "Control",
                "scope": "#/properties/deleteOperation",
                "i18n": "deleteOperation"
              },
              {
                "type": "Control",
                "scope": "#/properties/createOperation",
                "i18n": "createOperation"
              },
              {
                "type": "Control",
                "scope": "#/properties/mergeOperation",
                "i18n": "mergeOperation"
              },
              {
                "type": "Control",
                "scope": "#/properties/updateOperation",
                "i18n": "updateOperation"
              },
              {
                "type": "Control",
                "scope": "#/properties/partialUpdateOperation",
                "i18n": "partialUpdateOperation"
              }
            ]
          },
          {
            "type": "Control",
            "scope": "#/properties/validatePayload",
            "i18n": "validatePayload",
            "options": {
              "markAsRequired": true
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/variablePrefix",
            "options": {
              "markAsRequired": true,
              "contextVariable": true,
              "variableType": "output",
              "allowedDataTypes": []
            }
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/OdataValidation",
        "locale": "en",
        "content": {
          "common.error.required.field": "This is a required field",
          "common.error.invalid_variable.field": "Must start with a letter or underscore, and contains optional letters, digits, underscores, dashes, or periods.",
          "allowedOperations": "Allowed Operations",
          "target.label": "Message Target",
          "otherTargetMessageVariableLabel": "Context Variable",
          "readOperation.label": "GET",
          "deleteOperation.label": "DELETE",
          "createOperation.label": "POST",
          "mergeOperation.label": "MERGE",
          "updateOperation.label": "PUT",
          "partialUpdateOperation.label": "PATCH",
          "validatePayload.label": "Validate payload",
          "odataMetadataSource.label": "Service Metadata",
          "resourceUrl.label": "Resource",
          "httpMethod.label": "HTTP Method",
          "httpMethod.GET": "GET",
          "httpMethod.AUTOMATIC": "<Automatic>",
          "httpMethod.POST": "POST",
          "httpMethod.PUT": "PUT",
          "httpMethod.DELETE": "DELETE",
          "httpMethod.MERGE": "MERGE",
          "httpMethod.PATCH": "PATCH",
          "actions.label": "Actions",
          "allowMetadata.label": "Allow $metadata request",
          "allowRawValue.label": "Allow $value request"
        }
      }
    ]
  },
  {
    "configName": "OneOrMore",
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "At least one assertion must evaluate to true"
      }
    ]
  },
  {
    "configName": "OpenApi",
    "refVariables": [
      {
        "fieldPath": ".openApiDoc",
        "refType": "IN",
        "dataType": "other",
        "prefixed": true
      },
      {
        "fieldPath": ".prefix",
        "refType": "OUT",
        "dataType": "other",
        "prefixed": true
      },
      {
        "fieldPath": ".prefix",
        "suffix": ".servers",
        "refType": "OUT",
        "dataType": "string",
        "multivalued": true
      },
      {
        "fieldPath": ".prefix",
        "suffix": ".expandedPath",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".prefix",
        "suffix": ".validated",
        "refType": "OUT",
        "dataType": "boolean"
      },
      {
        "fieldPath": ".prefix",
        "suffix": ".path",
        "refType": "OUT",
        "dataType": "string",
        "condition": "and({{.validatePath}}, or(equals({{.target}}, REQUEST), and(equals({{.target}}, OTHER), not(equals({{.otherMessageType}}, RESPONSE)))))"
      },
      {
        "fieldPath": ".prefix",
        "suffix": ".method",
        "refType": "OUT",
        "dataType": "string",
        "condition": "and({{.validateMethod}}, or(equals({{.target}}, REQUEST), and(equals({{.target}}, OTHER), not(equals({{.otherMessageType}}, RESPONSE)))))"
      },
      {
        "fieldPath": ".prefix",
        "suffix": ".errors",
        "refType": "OUT",
        "dataType": "string",
        "multivalued": true
      },
      {
        "fieldPath": ".prefix",
        "suffix": ".errorDetails",
        "refType": "OUT",
        "dataType": "string",
        "multivalued": true
      },
      {
        "fieldPath": ".prefix",
        "suffix": ".status",
        "refType": "OUT",
        "dataType": "integer",
        "condition": "or(equals({{.target}}, RESPONSE), and(equals({{.target}}, OTHER), equals({{.otherMessageType}}, RESPONSE)))"
      },
      {
        "fieldPath": ".prefix",
        "suffix": ".security.requiredScope",
        "refType": "OUT",
        "dataType": "string",
        "condition": "and({{.requireSecurityCredentials}}, or(equals({{.target}}, REQUEST), and(equals({{.target}}, OTHER), not(equals({{.otherMessageType}}, RESPONSE)))))"
      },
      {
        "fieldPath": ".prefix",
        "suffix": ".security.apiKey.required",
        "refType": "OUT",
        "dataType": "boolean",
        "condition": "and({{.requireSecurityCredentials}}, or(equals({{.target}}, REQUEST), and(equals({{.target}}, OTHER), not(equals({{.otherMessageType}}, RESPONSE)))))"
      },
      {
        "fieldPath": ".prefix",
        "suffix": ".security.apiKey.found",
        "refType": "OUT",
        "dataType": "boolean",
        "condition": "and({{.requireSecurityCredentials}}, or(equals({{.target}}, REQUEST), and(equals({{.target}}, OTHER), not(equals({{.otherMessageType}}, RESPONSE)))))"
      },
      {
        "fieldPath": ".prefix",
        "suffix": ".security.http.required",
        "refType": "OUT",
        "dataType": "boolean",
        "condition": "and({{.requireSecurityCredentials}}, or(equals({{.target}}, REQUEST), and(equals({{.target}}, OTHER), not(equals({{.otherMessageType}}, RESPONSE)))))"
      },
      {
        "fieldPath": ".prefix",
        "suffix": ".security.http.found",
        "refType": "OUT",
        "dataType": "boolean",
        "condition": "and({{.requireSecurityCredentials}}, or(equals({{.target}}, REQUEST), and(equals({{.target}}, OTHER), not(equals({{.otherMessageType}}, RESPONSE)))))"
      },
      {
        "fieldPath": ".prefix",
        "suffix": ".security.oauth2.required",
        "refType": "OUT",
        "dataType": "boolean",
        "condition": "and({{.requireSecurityCredentials}}, or(equals({{.target}}, REQUEST), and(equals({{.target}}, OTHER), not(equals({{.otherMessageType}}, RESPONSE)))))"
      },
      {
        "fieldPath": ".prefix",
        "suffix": ".security.oauth2.found",
        "refType": "OUT",
        "dataType": "boolean",
        "condition": "and({{.requireSecurityCredentials}}, or(equals({{.target}}, REQUEST), and(equals({{.target}}, OTHER), not(equals({{.otherMessageType}}, RESPONSE)))))"
      },
      {
        "fieldPath": ".prefix",
        "suffix": ".security.openIdConnect.required",
        "refType": "OUT",
        "dataType": "boolean",
        "condition": "and({{.requireSecurityCredentials}}, or(equals({{.target}}, REQUEST), and(equals({{.target}}, OTHER), not(equals({{.otherMessageType}}, RESPONSE)))))"
      },
      {
        "fieldPath": ".prefix",
        "suffix": ".security.openIdConnect.found",
        "refType": "OUT",
        "dataType": "boolean",
        "condition": "and({{.requireSecurityCredentials}}, or(equals({{.target}}, REQUEST), and(equals({{.target}}, OTHER), not(equals({{.otherMessageType}}, RESPONSE)))))"
      },
      {
        "fieldPath": ".prefix",
        "suffix": ".security.mutualTLS.required",
        "refType": "OUT",
        "dataType": "boolean",
        "condition": "and({{.requireSecurityCredentials}}, or(equals({{.target}}, REQUEST), and(equals({{.target}}, OTHER), not(equals({{.otherMessageType}}, RESPONSE)))))"
      },
      {
        "fieldPath": ".prefix",
        "suffix": ".security.mutualTLS.found",
        "refType": "OUT",
        "dataType": "boolean",
        "condition": "and({{.requireSecurityCredentials}}, or(equals({{.target}}, REQUEST), and(equals({{.target}}, OTHER), not(equals({{.otherMessageType}}, RESPONSE)))))"
      }
    ],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/OpenApi",
        "title": "Validate Against OpenAPI Document",
        "properties": {
          "openApiDoc": {
            "type": "string"
          },
          "prefix": {
            "type": "string"
          },
          "requireSecurityCredentials": {
            "type": "boolean",
            "default": true
          },
          "serviceBase": {
            "type": "string",
            "default": ""
          },
          "strictValidation": {
            "type": "boolean",
            "default": false
          },
          "useOpenApiDocAsUrl": {
            "type": "boolean",
            "default": false
          },
          "validateBody": {
            "type": "boolean",
            "default": false
          },
          "validateHeaders": {
            "type": "boolean",
            "default": false
          },
          "validateMethod": {
            "type": "boolean",
            "default": true
          },
          "validatePath": {
            "type": "boolean",
            "default": true
          },
          "validateQueryParameters": {
            "type": "boolean",
            "default": false
          },
          "validateResponseStatus": {
            "type": "boolean",
            "default": false
          },
          "nonHttpMessage": {
            "type": "boolean",
            "default": false
          },
          "resourceUri": {
            "type": "string",
            "default": ""
          },
          "methodName": {
            "type": "string",
            "default": ""
          },
          "statusCode": {
            "type": "string",
            "default": ""
          },
          "otherMessageType": {
            "type": "string",
            "enum": [
              "REQUEST",
              "RESPONSE"
            ],
            "default": "REQUEST"
          },
          "target": {
            "type": "string",
            "enum": [
              "REQUEST",
              "RESPONSE",
              "OTHER"
            ],
            "default": "REQUEST"
          },
          "otherTargetMessageVariable": {
            "type": "string",
            "default": ""
          },
          "__documentVariable": {
            "type": "string",
            "enum": [
              "Document",
              "URL"
            ],
            "default": "Document"
          },
          "__securityAlerts": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "__strictAlerts": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Validate Against OpenAPI Document",
        "elements": [
          {
            "type": "Group",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "target-message-group"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/target",
                "i18n": "assertion.common.target",
                "options": {
                  "messageTarget": true
                }
              },
              {
                "type": "Group",
                "options": {
                  "groupType": "wrapCustomClass",
                  "customClass": "other-target-message-group"
                },
                "rule": {
                  "effect": "SHOW",
                  "condition": {
                    "scope": "#/properties/target",
                    "schema": {
                      "const": "OTHER"
                    }
                  }
                },
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/otherMessageType",
                    "i18n": "otherMessageType",
                    "options": {
                      "format": "radio",
                      "useRowLayout": false
                    }
                  }
                ]
              }
            ]
          },
          {
            "type": "Group",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "non-http-message"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/nonHttpMessage",
                "i18n": "nonHttpMessage"
              }
            ]
          },
          {
            "type": "Group",
            "i18n": "operationIdentification.title",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "non-http-group"
            },
            "rule": {
              "effect": "SHOW",
              "condition": {
                "type": "OR",
                "conditions": [
                  {
                    "scope": "#/properties/nonHttpMessage",
                    "schema": {
                      "const": true
                    }
                  },
                  {
                    "scope": "#/properties/target",
                    "schema": {
                      "const": "OTHER"
                    }
                  }
                ]
              }
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/resourceUri",
                "i18n": "resourceUri",
                "options": {
                  "markAsRequired": true
                },
                "rule": {
                  "effect": "SHOW",
                  "condition": {
                    "type": "OR",
                    "conditions": [
                      {
                        "scope": "#/properties/nonHttpMessage",
                        "schema": {
                          "const": true
                        }
                      },
                      {
                        "scope": "#/properties/target",
                        "schema": {
                          "const": "OTHER"
                        }
                      }
                    ]
                  }
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/methodName",
                "i18n": "methodName",
                "options": {
                  "markAsRequired": true
                },
                "rule": {
                  "effect": "SHOW",
                  "condition": {
                    "type": "OR",
                    "conditions": [
                      {
                        "scope": "#/properties/nonHttpMessage",
                        "schema": {
                          "const": true
                        }
                      },
                      {
                        "scope": "#/properties/target",
                        "schema": {
                          "const": "OTHER"
                        }
                      }
                    ]
                  }
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/statusCode",
                "i18n": "statusCode",
                "options": {
                  "markAsRequired": true
                },
                "rule": {
                  "effect": "SHOW",
                  "condition": {
                    "type": "OR",
                    "conditions": [
                      {
                        "type": "AND",
                        "conditions": [
                          {
                            "scope": "#/properties/target",
                            "schema": {
                              "const": "RESPONSE"
                            }
                          },
                          {
                            "scope": "#/properties/nonHttpMessage",
                            "schema": {
                              "const": true
                            }
                          }
                        ]
                      },
                      {
                        "type": "AND",
                        "conditions": [
                          {
                            "scope": "#/properties/target",
                            "schema": {
                              "const": "OTHER"
                            }
                          },
                          {
                            "scope": "#/properties/otherMessageType",
                            "schema": {
                              "const": "RESPONSE"
                            }
                          }
                        ]
                      }
                    ]
                  }
                }
              }
            ]
          },
          {
            "type": "Group",
            "i18n": "title",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "doc-url-group"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/__documentVariable",
                "i18n": "documentVariable"
              },
              {
                "type": "Control",
                "scope": "#/properties/openApiDoc",
                "options": {
                  "markAsRequired": true,
                  "contextVariable": true,
                  "variableType": "input",
                  "allowedDataTypes": []
                }
              }
            ]
          },
          {
            "type": "Control",
            "scope": "#/properties/serviceBase",
            "i18n": "serviceBase"
          },
          {
            "type": "Group",
            "i18n": "validateOptions.title",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "validate-group"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/validatePath",
                "i18n": "validatePath",
                "rule": {
                  "effect": "HIDE",
                  "condition": {
                    "type": "OR",
                    "conditions": [
                      {
                        "scope": "#/properties/nonHttpMessage",
                        "schema": {
                          "const": true
                        }
                      },
                      {
                        "scope": "#/properties/target",
                        "schema": {
                          "const": "RESPONSE"
                        }
                      },
                      {
                        "type": "AND",
                        "conditions": [
                          {
                            "scope": "#/properties/target",
                            "schema": {
                              "const": "OTHER"
                            }
                          },
                          {
                            "scope": "#/properties/otherMessageType",
                            "schema": {
                              "const": "RESPONSE"
                            }
                          }
                        ]
                      }
                    ]
                  }
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/validateMethod",
                "i18n": "validateMethod",
                "rule": {
                  "effect": "HIDE",
                  "condition": {
                    "type": "OR",
                    "conditions": [
                      {
                        "scope": "#/properties/nonHttpMessage",
                        "schema": {
                          "const": true
                        }
                      },
                      {
                        "scope": "#/properties/validatePath",
                        "schema": {
                          "const": false
                        }
                      },
                      {
                        "scope": "#/properties/target",
                        "schema": {
                          "const": "RESPONSE"
                        }
                      },
                      {
                        "type": "AND",
                        "conditions": [
                          {
                            "scope": "#/properties/target",
                            "schema": {
                              "const": "OTHER"
                            }
                          },
                          {
                            "scope": "#/properties/otherMessageType",
                            "schema": {
                              "const": "RESPONSE"
                            }
                          }
                        ]
                      }
                    ]
                  }
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/validateHeaders",
                "i18n": "validateHeaders",
                "rule": {
                  "effect": "SHOW",
                  "condition": {
                    "type": "AND",
                    "conditions": [
                      {
                        "scope": "#/properties/nonHttpMessage",
                        "schema": {
                          "const": false
                        }
                      },
                      {
                        "type": "OR",
                        "conditions": [
                          {
                            "type": "AND",
                            "conditions": [
                              {
                                "scope": "#/properties/validateMethod",
                                "schema": {
                                  "const": true
                                }
                              },
                              {
                                "type": "OR",
                                "conditions": [
                                  {
                                    "scope": "#/properties/target",
                                    "schema": {
                                      "const": "REQUEST"
                                    }
                                  },
                                  {
                                    "type": "AND",
                                    "conditions": [
                                      {
                                        "scope": "#/properties/target",
                                        "schema": {
                                          "const": "OTHER"
                                        }
                                      },
                                      {
                                        "scope": "#/properties/otherMessageType",
                                        "schema": {
                                          "const": "REQUEST"
                                        }
                                      }
                                    ]
                                  }
                                ]
                              }
                            ]
                          },
                          {
                            "scope": "#/properties/target",
                            "schema": {
                              "const": "RESPONSE"
                            }
                          },
                          {
                            "type": "AND",
                            "conditions": [
                              {
                                "scope": "#/properties/target",
                                "schema": {
                                  "const": "OTHER"
                                }
                              },
                              {
                                "scope": "#/properties/otherMessageType",
                                "schema": {
                                  "const": "RESPONSE"
                                }
                              }
                            ]
                          }
                        ]
                      }
                    ]
                  }
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/validateQueryParameters",
                "i18n": "validateQueryParameters",
                "rule": {
                  "effect": "SHOW",
                  "condition": {
                    "type": "AND",
                    "conditions": [
                      {
                        "scope": "#/properties/nonHttpMessage",
                        "schema": {
                          "const": false
                        }
                      },
                      {
                        "scope": "#/properties/validateMethod",
                        "schema": {
                          "const": true
                        }
                      },
                      {
                        "type": "OR",
                        "conditions": [
                          {
                            "scope": "#/properties/target",
                            "schema": {
                              "const": "REQUEST"
                            }
                          },
                          {
                            "type": "AND",
                            "conditions": [
                              {
                                "scope": "#/properties/target",
                                "schema": {
                                  "const": "OTHER"
                                }
                              },
                              {
                                "scope": "#/properties/otherMessageType",
                                "schema": {
                                  "const": "REQUEST"
                                }
                              }
                            ]
                          }
                        ]
                      }
                    ]
                  }
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/validateBody",
                "i18n": "validateBody",
                "rule": {
                  "effect": "SHOW",
                  "condition": {
                    "type": "AND",
                    "conditions": [
                      {
                        "scope": "#/properties/nonHttpMessage",
                        "schema": {
                          "const": false
                        }
                      },
                      {
                        "type": "OR",
                        "conditions": [
                          {
                            "type": "AND",
                            "conditions": [
                              {
                                "scope": "#/properties/validateMethod",
                                "schema": {
                                  "const": true
                                }
                              },
                              {
                                "type": "OR",
                                "conditions": [
                                  {
                                    "scope": "#/properties/target",
                                    "schema": {
                                      "const": "REQUEST"
                                    }
                                  },
                                  {
                                    "type": "AND",
                                    "conditions": [
                                      {
                                        "scope": "#/properties/target",
                                        "schema": {
                                          "const": "OTHER"
                                        }
                                      },
                                      {
                                        "scope": "#/properties/otherMessageType",
                                        "schema": {
                                          "const": "REQUEST"
                                        }
                                      }
                                    ]
                                  }
                                ]
                              }
                            ]
                          },
                          {
                            "scope": "#/properties/target",
                            "schema": {
                              "const": "RESPONSE"
                            }
                          },
                          {
                            "type": "AND",
                            "conditions": [
                              {
                                "scope": "#/properties/target",
                                "schema": {
                                  "const": "OTHER"
                                }
                              },
                              {
                                "scope": "#/properties/otherMessageType",
                                "schema": {
                                  "const": "RESPONSE"
                                }
                              }
                            ]
                          }
                        ]
                      }
                    ]
                  }
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/validateResponseStatus",
                "i18n": "validateResponseStatus",
                "rule": {
                  "effect": "SHOW",
                  "condition": {
                    "type": "AND",
                    "conditions": [
                      {
                        "scope": "#/properties/nonHttpMessage",
                        "schema": {
                          "const": false
                        }
                      },
                      {
                        "type": "OR",
                        "conditions": [
                          {
                            "scope": "#/properties/target",
                            "schema": {
                              "const": "RESPONSE"
                            }
                          },
                          {
                            "type": "AND",
                            "conditions": [
                              {
                                "scope": "#/properties/target",
                                "schema": {
                                  "const": "OTHER"
                                }
                              },
                              {
                                "scope": "#/properties/otherMessageType",
                                "schema": {
                                  "const": "RESPONSE"
                                }
                              }
                            ]
                          }
                        ]
                      }
                    ]
                  }
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/requireSecurityCredentials",
                "i18n": "requireSecurityCredentials",
                "rule": {
                  "effect": "SHOW",
                  "condition": {
                    "type": "AND",
                    "conditions": [
                      {
                        "scope": "#/properties/nonHttpMessage",
                        "schema": {
                          "const": false
                        }
                      },
                      {
                        "scope": "#/properties/validateMethod",
                        "schema": {
                          "const": true
                        }
                      },
                      {
                        "type": "OR",
                        "conditions": [
                          {
                            "scope": "#/properties/target",
                            "schema": {
                              "const": "REQUEST"
                            }
                          },
                          {
                            "type": "AND",
                            "conditions": [
                              {
                                "scope": "#/properties/target",
                                "schema": {
                                  "const": "OTHER"
                                }
                              },
                              {
                                "scope": "#/properties/otherMessageType",
                                "schema": {
                                  "const": "REQUEST"
                                }
                              }
                            ]
                          }
                        ]
                      }
                    ]
                  }
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/__securityAlerts",
                "options": {
                  "inlineAlerts": "warning"
                },
                "rule": {
                  "effect": "SHOW",
                  "condition": {
                    "scope": "#/properties/requireSecurityCredentials",
                    "schema": {
                      "const": true
                    }
                  }
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/strictValidation",
                "i18n": "strictValidation"
              },
              {
                "type": "Control",
                "scope": "#/properties/__strictAlerts",
                "options": {
                  "inlineAlerts": "warning"
                },
                "rule": {
                  "effect": "SHOW",
                  "condition": {
                    "scope": "#/properties/strictValidation",
                    "schema": {
                      "const": true
                    }
                  }
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/prefix",
                "i18n": "prefix",
                "options": {
                  "markAsRequired": true,
                  "contextVariable": true,
                  "variableType": "output",
                  "allowedDataTypes": []
                }
              }
            ]
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/OpenApi",
        "locale": "en",
        "content": {
          "title": "OpenAPI (or Swagger) Document Variable",
          "targetMessage.title": "Target Message",
          "validateOptions.title": "Validation Options",
          "operationIdentification.title": "Operation Identification",
          "serviceBase.label": "Service Base",
          "validatePath.label": "Validate path",
          "documentVariable.label": "Document Variable",
          "serviceBase.Document": "Document",
          "serviceBase.URL": "URL",
          "validateMethod.label": "Validate method",
          "validateHeaders.label": "Validate headers",
          "validateQueryParameters.label": "Validate query parameters",
          "validateBody.label": "Validate body (only JSON content type)",
          "validateResponseStatus.label": "Validate response status",
          "requireSecurityCredentials.label": "Require security credentials to be present",
          "strictValidation.label": "Strict mode validation",
          "prefix.label": "Variable Prefix",
          "nonHttpMessage.label": "Validate non-HTTP message (Kafka, JMS, etc)",
          "resourceUri.label": "Path",
          "methodName.label": "Method",
          "statusCode.label": "Status Code",
          "target.REQUEST": "Request",
          "target.RESPONSE": "Response",
          "target.OTHER": "Other Message Variable",
          "otherTargetMessageVariable.label": "Message Variable Name",
          "otherMessageType.label": "Target Message Variable Contains",
          "otherMessageType.REQUEST": "Request Message",
          "otherMessageType.RESPONSE": "Response Message",
          "requireSecurityCredentials.warning": "Credentials will not be authenticated by this validation option.",
          "strictValidation.warning": "This option is only for experimental purpose."
        }
      }
    ]
  },
  {
    "configName": "Operation",
    "displayNameFormats": [
      {
        "format": "Evaluate WSDL Operation '{{.operationName}}'",
        "condition": "not(isNull({{.operationName}}))"
      }
    ],
    "refVariables": [],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Evaluate WSDL Operation",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/operationName",
            "i18n": "operationName"
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/Operation",
        "locale": "en",
        "content": {
          "operationName.label": "Select the WSDL Operation to verify at runtime"
        }
      }
    ]
  },
  {
    "configName": "OtelMeter",
    "displayNameFormats": [
      {
        "format": "{{.name}}: Telemetry Metric []",
        "condition": "isNull({{.description}})"
      },
      {
        "format": "{{.name}}: Telemetry Metric [{{.description}}]",
        "condition": "true"
      }
    ],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/OtelMeter",
        "title": "Telemetry Metric",
        "properties": {
          "attributes": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string"
                },
                "value": {
                  "type": "string"
                }
              }
            }
          },
          "description": {
            "type": "string"
          },
          "measure": {
            "type": "string"
          },
          "telemetryName": {
            "type": "string",
            "default": ""
          },
          "type": {
            "type": "string",
            "enum": [
              "COUNTER",
              "UP_DOWN_COUNTER",
              "GAUGE",
              "HISTOGRAM"
            ]
          },
          "unit": {
            "type": "string"
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Telemetry Metric",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/telemetryName",
            "options": {
              "markAsRequired": true
            },
            "i18n": "telemetryName"
          },
          {
            "type": "Control",
            "scope": "#/properties/description",
            "i18n": "description"
          },
          {
            "type": "Control",
            "scope": "#/properties/type",
            "i18n": "type"
          },
          {
            "type": "Control",
            "scope": "#/properties/unit",
            "i18n": "unit"
          },
          {
            "type": "Control",
            "scope": "#/properties/measure",
            "options": {
              "markAsRequired": true
            },
            "i18n": "measure"
          },
          {
            "type": "Group",
            "i18n": "attributes.heading",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "otel-group"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/attributes",
                "i18n": "add",
                "options": {
                  "nameValueList": true,
                  "detail": {
                    "type": "VerticalLayout",
                    "elements": [
                      {
                        "type": "Control",
                        "scope": "#/properties/name",
                        "i18n": "attributes.name",
                        "options": {
                          "markAsRequired": true
                        }
                      },
                      {
                        "type": "Control",
                        "scope": "#/properties/value",
                        "i18n": "attributes.value",
                        "options": {
                          "markAsRequired": true
                        }
                      }
                    ]
                  }
                }
              }
            ]
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/OtelMeter",
        "locale": "en",
        "content": {
          "telemetryName.label": "Name",
          "description.label": "Description",
          "type.label": "Type",
          "type.COUNTER": "COUNTER",
          "type.UP_DOWN_COUNTER": "UP_DOWN_COUNTER",
          "type.GAUGE": "GAUGE",
          "type.HISTOGRAM": "HISTOGRAM",
          "unit.label": "Units",
          "measure.label": "Measure",
          "attributes.heading": "OTel Attributes",
          "attributes.label": "OTel Attributes",
          "add.label": "Attributes",
          "attributes.name.label": "Name",
          "attributes.value.label": "Value",
          "attributes.name.duplicate.error": "Attribute with similar name already exists. Please give a different name."
        }
      }
    ]
  },
  {
    "configName": "OversizedText",
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/OversizedText",
        "title": "Protect Against XML Document Structure Threats",
        "properties": {
          "limitAttrChars": {
            "type": "boolean",
            "default": true
          },
          "limitAttrNameChars": {
            "type": "boolean",
            "default": true
          },
          "limitNamespaceCount": {
            "type": "boolean",
            "default": false
          },
          "limitNamespacePrefixCount": {
            "type": "boolean",
            "default": false
          },
          "limitNestingDepth": {
            "type": "boolean",
            "default": true
          },
          "limitTextChars": {
            "type": "boolean",
            "default": true
          },
          "maxAttrChars": {
            "type": "integer"
          },
          "maxAttrNameChars": {
            "type": "integer"
          },
          "maxNamespaceCount": {
            "type": [
              "integer",
              "null"
            ]
          },
          "maxNamespacePrefixCount": {
            "type": [
              "integer",
              "null"
            ]
          },
          "maxNestingDepth": {
            "type": "integer"
          },
          "maxPayloadElements": {
            "type": [
              "integer",
              "null"
            ]
          },
          "maxTextChars": {
            "type": "integer"
          },
          "otherTargetMessageVariable": {
            "type": "string"
          },
          "requireValidSoapEnvelope": {
            "type": "boolean",
            "default": false
          },
          "target": {
            "type": "string",
            "enum": [
              "REQUEST",
              "RESPONSE",
              "OTHER"
            ],
            "default": "REQUEST"
          },
          "__limitPayloadElements": {
            "type": "boolean",
            "default": false
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Protect Against XML Document Structure Threats",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/target",
            "options": {
              "messageTarget": true,
              "otherTargetMessageVariableLabel": "assertion.common.target.otherTargetContextVariable"
            }
          },
          {
            "type": "Group",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "limits-wrapper"
            },
            "elements": [
              {
                "type": "Group",
                "i18n": "reject-if-limit-exceeded.label",
                "options": {
                  "groupType": "wrapCustomClass"
                },
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/limitTextChars",
                    "i18n": "limitTextChars",
                    "options": {
                      "subUiSchema": {
                        "type": "Control",
                        "scope": "#/properties/maxTextChars",
                        "label": false,
                        "options": {
                          "markAsRequired": true,
                          "maxLength": 10
                        }
                      }
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/limitAttrChars",
                    "i18n": "limitAttrChars",
                    "options": {
                      "subUiSchema": {
                        "type": "Control",
                        "scope": "#/properties/maxAttrChars",
                        "label": false,
                        "options": {
                          "markAsRequired": true,
                          "maxLength": 10
                        }
                      }
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/limitAttrNameChars",
                    "i18n": "limitAttrNameChars",
                    "options": {
                      "subUiSchema": {
                        "type": "Control",
                        "scope": "#/properties/maxAttrNameChars",
                        "label": false,
                        "options": {
                          "markAsRequired": true,
                          "maxLength": 10
                        }
                      }
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/limitNestingDepth",
                    "i18n": "limitNestingDepth",
                    "options": {
                      "subUiSchema": {
                        "type": "Control",
                        "scope": "#/properties/maxNestingDepth",
                        "label": false,
                        "options": {
                          "markAsRequired": true,
                          "maxLength": 6
                        }
                      }
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/limitNamespaceCount",
                    "i18n": "limitNamespaceCount",
                    "options": {
                      "subUiSchema": {
                        "type": "Control",
                        "scope": "#/properties/maxNamespaceCount",
                        "label": false,
                        "options": {
                          "markAsRequired": true,
                          "maxLength": 10
                        }
                      }
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/limitNamespacePrefixCount",
                    "i18n": "limitNamespacePrefixCount",
                    "options": {
                      "subUiSchema": {
                        "type": "Control",
                        "scope": "#/properties/maxNamespacePrefixCount",
                        "label": false,
                        "options": {
                          "markAsRequired": true,
                          "maxLength": 10
                        }
                      }
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/__limitPayloadElements",
                    "i18n": "limitPayloadElements",
                    "options": {
                      "subUiSchema": {
                        "type": "Control",
                        "scope": "#/properties/maxPayloadElements",
                        "label": false,
                        "options": {
                          "markAsRequired": true,
                          "maxLength": 10
                        }
                      }
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/requireValidSoapEnvelope",
                    "i18n": "requireValidSoapEnvelope"
                  }
                ]
              }
            ]
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/OversizedText",
        "locale": "en",
        "content": {
          "reject-if-limit-exceeded.label": "Reject if Following XML Structure Limits Are Exceeded.",
          "limitTextChars.label": "Contiguous text length (characters)",
          "limitAttrChars.label": "Attribute value length (characters)",
          "limitAttrNameChars.label": "Name length (characters)",
          "limitNestingDepth.label": "Nesting depth (levels)",
          "limitNamespaceCount.label": "Distinct namespace declarations count (number)",
          "limitNamespacePrefixCount.label": "Distinct namespace prefix declarations count (number)",
          "limitPayloadElements.label": "SOAP request payload elements count (payload elements)",
          "requireValidSoapEnvelope.label": "Require a valid SOAP envelope (one body, no trailers)",
          "field.error": "Must be a number between 0 and 2147483647.",
          "maxTextChars.error": "The text length field must be a number between 0 and 2147483647.",
          "maxAttrChars.error": "The attribute length field must be a number between 0 and 2147483647.",
          "maxAttrNameChars.error": "The attribute name length field must be a number between 0 and 2147483647.",
          "maxNestingDepth.error": "The maximum nesting depth field must be a number between 2 and 10000.",
          "maxNamespaceCount.error": "The distinct namespace declaration field must be a number between 1 and 2147483647.",
          "maxNamespacePrefixCount.error": "The distinct namespace prefix declaration field must be a number between 1 and 2147483647.",
          "maxPayloadElements.error": "The maximum payload count field must be a number between 1 and 2147483647."
        }
      }
    ]
  },
  {
    "configName": "ProcessRoutingStrategyResult",
    "displayNameFormats": [
      {
        "format": "Process Routing Strategy Result for {{.strategy#variable#expression}} as {{.feedback#variable#expression}}",
        "condition": "and(not(isNull({{.strategy}})),not(isNull({{.feedback}})))"
      }
    ],
    "refVariables": [
      {
        "fieldPath": ".feedback",
        "refType": "IN",
        "dataType": "other"
      },
      {
        "fieldPath": ".feedback",
        "suffix": ".current.route",
        "refType": "IN",
        "dataType": "other"
      },
      {
        "fieldPath": ".feedback",
        "suffix": ".current.latency",
        "refType": "IN",
        "dataType": "other"
      },
      {
        "fieldPath": ".feedback",
        "suffix": ".current.status",
        "refType": "IN",
        "dataType": "other"
      },
      {
        "fieldPath": ".feedback",
        "suffix": ".current.reasonCode",
        "refType": "IN",
        "dataType": "other"
      },
      {
        "fieldPath": ".strategy",
        "refType": "IN",
        "dataType": "other"
      }
    ],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/ProcessRoutingStrategyResult",
        "title": "Process Routing Strategy Result",
        "properties": {
          "feedback": {
            "type": "string"
          },
          "strategy": {
            "type": "string"
          }
        }
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/ProcessRoutingStrategyResult/Main",
        "title": "Process Routing Strategy Result",
        "properties": {
          "ProcessRoutingStrategyResult": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/ProcessRoutingStrategyResult"
          },
          ".properties": {
            "type": "object",
            "properties": {
              ".enabled": {
                "type": "boolean",
                "default": true
              },
              ".left.comment": {
                "type": "string"
              },
              ".right.comment": {
                "type": "string"
              }
            }
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Process Routing Strategy Result",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/strategy",
            "i18n": "strategy",
            "options": {
              "markAsRequired": true,
              "contextVariable": true,
              "variableType": "input",
              "allowedDataTypes": []
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/feedback",
            "i18n": "feedback",
            "options": {
              "markAsRequired": true,
              "contextVariable": true,
              "variableType": "input",
              "allowedDataTypes": []
            }
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/ProcessRoutingStrategyResult",
        "locale": "en",
        "content": {
          "strategy.label": "Routing Strategy Prefix",
          "feedback.label": "Feedback List"
        }
      }
    ]
  },
  {
    "configName": "ProcessRstrSoapResponse",
    "displayNameFormats": [
      {
        "format": "Process RSTR Response",
        "condition": "true"
      }
    ],
    "refVariables": [
      {
        "fieldPath": ".variablePrefix",
        "refType": "OUT",
        "dataType": "other",
        "prefixed": true
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".token",
        "refType": "OUT",
        "dataType": "xml"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".createTime",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".expiryTime",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".serverEntropy",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".keySize",
        "refType": "OUT",
        "dataType": "int"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".fullKey",
        "refType": "OUT",
        "dataType": "string"
      }
    ],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/ProcessRstrSoapResponse",
        "title": "Process RSTR Response",
        "properties": {
          "otherTargetMessageVariable": {
            "type": "string"
          },
          "target": {
            "type": "string",
            "enum": [
              "REQUEST",
              "RESPONSE",
              "OTHER"
            ],
            "default": "REQUEST"
          },
          "tokenType": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/sub-types/securityTokenType",
            "enum": [
              "<Any>",
              "SAML2 Assertion",
              "SAML Assertion",
              "WS-SC SecurityContextToken"
            ],
            "default": "<Any>"
          },
          "variablePrefix": {
            "type": "string"
          }
        }
      },
      {
        "type": "string",
        "$id": "https://l7tech.com/2025/json-schema/assertions/sub-types/securityTokenType"
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Process RSTR Response",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/target",
            "i18n": "target",
            "options": {
              "format": "radio",
              "useRowLayout": false
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/otherTargetMessageVariable",
            "i18n": "otherTargetMessageVariable",
            "options": {
              "required": true,
              "customClass": "common-conditional-field",
              "markAsRequired": true
            },
            "rule": {
              "effect": "SHOW",
              "condition": {
                "scope": "#/properties/target",
                "schema": {
                  "const": "OTHER"
                }
              }
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/tokenType",
            "i18n": "tokenType",
            "options": {
              "markAsRequired": true
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/variablePrefix",
            "options": {
              "markAsRequired": true,
              "contextVariable": true,
              "variableType": "output",
              "allowedDataTypes": []
            }
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/ProcessRstrSoapResponse",
        "locale": "en",
        "content": {
          "target.label": "Target",
          "target.REQUEST": "Request",
          "target.RESPONSE": "Response",
          "target.OTHER": "Other",
          "otherTargetMessageVariable.label": "Context Variable",
          "tokenType.label": "Token Type",
          "tokenType.<Any>": "<Any>",
          "tokenType.SAML2 Assertion": "SAML2 Assertion",
          "tokenType.SAML Assertion": "SAML Assertion",
          "tokenType.WS-SC SecurityContextToken": "WS-SC SecurityContextToken"
        }
      }
    ]
  },
  {
    "configName": "ProcessSamlAttributeQueryRequest",
    "refVariables": [
      {
        "fieldPath": ".variablePrefix",
        "refType": "OUT",
        "dataType": "other",
        "prefixed": true
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".attributes",
        "refType": "OUT",
        "dataType": "xml"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".subject",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".subject.nameQualifier",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".subject.spNameQualifier",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".subject.format",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".subject.spProvidedId",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".id",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".version",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".issueInstant",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".destination",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".consent",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".issuer",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".issuer.nameQualifier",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".issuer.spNameQualifier",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".issuer.format",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".issuer.spProvidedId",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".elementsDecrypted",
        "refType": "OUT",
        "dataType": "xml",
        "multivalued": true
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".encryptionMethodUris",
        "refType": "OUT",
        "dataType": "string",
        "multivalued": true
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".recipientCertificates",
        "refType": "OUT",
        "dataType": "cert",
        "multivalued": true
      }
    ],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/ProcessSamlAttributeQueryRequest",
        "title": "Process SAML Attribute Query Request",
        "properties": {
          "__allowIds": {
            "type": "array",
            "uniqueItems": true,
            "items": {
              "type": "string",
              "enum": [
                "allowNameId",
                "allowEncryptedId"
              ]
            }
          },
          "allowEncryptedId": {
            "type": "boolean",
            "default": false
          },
          "allowNameId": {
            "type": "boolean",
            "default": true
          },
          "attributeNameFormats": {
            "type": "string",
            "default": "urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified"
          },
          "customAttributeNameFormats": {
            "type": "string"
          },
          "customSubjectFormats": {
            "type": "string"
          },
          "decryptEncryptedId": {
            "type": "boolean",
            "default": false
          },
          "destination": {
            "type": "string"
          },
          "otherTargetMessageVariable": {
            "type": "string"
          },
          "requireAttributeNameFormat": {
            "type": "boolean",
            "default": false
          },
          "requireAttributes": {
            "type": "boolean",
            "default": false
          },
          "requireConsent": {
            "type": "boolean",
            "default": false
          },
          "requireDestination": {
            "type": "boolean",
            "default": false
          },
          "requireId": {
            "type": "boolean",
            "default": true
          },
          "requireIssueInstant": {
            "type": "boolean",
            "default": true
          },
          "requireIssuer": {
            "type": "boolean",
            "default": true
          },
          "requireSignature": {
            "type": "boolean",
            "default": false
          },
          "requireSubjectFormat": {
            "type": "boolean",
            "default": false
          },
          "requireVersion": {
            "type": "boolean",
            "default": true
          },
          "samlVersion": {
            "type": "string",
            "enum": [
              "SAML2"
            ],
            "default": "SAML2"
          },
          "soapEncapsulated": {
            "type": "boolean",
            "default": false
          },
          "subjectFormats": {
            "type": "string",
            "default": "urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified"
          },
          "target": {
            "type": "string",
            "enum": [
              "REQUEST",
              "RESPONSE",
              "OTHER"
            ],
            "default": "REQUEST"
          },
          "variablePrefix": {
            "type": "string"
          },
          "verifyAttributesAreUnique": {
            "type": "boolean",
            "default": true
          },
          "__attributeNameFormatsCustom": {
            "type": "boolean"
          },
          "__attributeNameFormats": {
            "type": "array",
            "uniqueItems": true,
            "items": {
              "type": "string",
              "enum": [
                "urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified",
                "urn:oasis:names:tc:SAML:2.0:attrname-format:uri",
                "urn:oasis:names:tc:SAML:2.0:attrname-format:basic",
                "Custom"
              ]
            }
          },
          "__subjectFormatsCustom": {
            "type": "boolean"
          },
          "__subjectFormats": {
            "type": "array",
            "uniqueItems": true,
            "items": {
              "type": "string",
              "enum": [
                "urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified",
                "urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress",
                "urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName",
                "urn:oasis:names:tc:SAML:1.1:nameid-format:WindowsDomainQualifiedName",
                "urn:oasis:names:tc:SAML:2.0:nameid-format:kerberos",
                "urn:oasis:names:tc:SAML:2.0:nameid-format:entity",
                "Custom"
              ]
            }
          }
        }
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/ProcessSamlAttributeQueryRequest/Main",
        "title": "Process SAML Attribute Query Request",
        "properties": {
          "ProcessSamlAttributeQueryRequest": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/ProcessSamlAttributeQueryRequest"
          },
          ".properties": {
            "type": "object",
            "properties": {
              ".enabled": {
                "type": "boolean",
                "default": true
              },
              ".left.comment": {
                "type": "string"
              },
              ".right.comment": {
                "type": "string"
              }
            }
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Process SAML Attribute Query Request",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/target",
            "options": {
              "messageTarget": true,
              "otherTargetMessageVariableLabel": "assertion.common.target.otherTargetContextVariable"
            }
          },
          {
            "type": "Group",
            "i18n": "attributeQueryHd",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "atribute-query-group"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/samlVersion",
                "i18n": "samlVersion",
                "options": {
                  "markAsRequired": true
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/soapEncapsulated",
                "i18n": "soapEncapsulated"
              }
            ]
          },
          {
            "type": "Group",
            "i18n": "requestHd",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "request-group"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/requireIssuer",
                "i18n": "requireIssuer"
              },
              {
                "type": "Control",
                "scope": "#/properties/requireSignature",
                "i18n": "requireSignature"
              },
              {
                "type": "Control",
                "scope": "#/properties/requireId",
                "i18n": "requireId"
              },
              {
                "type": "Control",
                "scope": "#/properties/requireVersion",
                "i18n": "requireVersion"
              },
              {
                "type": "Control",
                "scope": "#/properties/requireIssueInstant",
                "i18n": "requireIssueInstant"
              },
              {
                "type": "Control",
                "scope": "#/properties/requireConsent",
                "i18n": "requireConsent"
              },
              {
                "type": "Control",
                "scope": "#/properties/requireDestination",
                "i18n": "requireDestination",
                "options": {
                  "subUiSchema": {
                    "type": "Control",
                    "scope": "#/properties/destination",
                    "i18n": "destination"
                  }
                }
              }
            ]
          },
          {
            "type": "Group",
            "i18n": "subjectHd",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "subject-group"
            },
            "elements": [
              {
                "type": "Group",
                "i18n": "allowHd",
                "options": {
                  "groupType": "wrapCustomClass",
                  "customClass": "allow-group"
                },
                "elements": [
                  {
                    "type": "Control",
                    "label": false,
                    "i18n": "__allowIds",
                    "scope": "#/properties/__allowIds",
                    "options": {
                      "format": "checkbox"
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/decryptEncryptedId",
                    "i18n": "decryptEncryptedId",
                    "options": {
                      "customClass": "decryptEncryptedId-field"
                    },
                    "rule": {
                      "effect": "SHOW",
                      "condition": {
                        "scope": "#/properties/allowEncryptedId",
                        "schema": {
                          "const": true
                        }
                      }
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/requireSubjectFormat",
                    "i18n": "requireSubjectFormat"
                  }
                ]
              }
            ]
          },
          {
            "type": "Group",
            "i18n": "subjectFormats.label",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "formats-group"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/__subjectFormats",
                "label": false,
                "i18n": "__subjectFormats"
              },
              {
                "type": "Control",
                "scope": "#/properties/customSubjectFormats",
                "i18n": "customSubjectFormats",
                "options": {
                  "markAsRequired": true
                },
                "rule": {
                  "effect": "SHOW",
                  "condition": {
                    "scope": "#/properties/__subjectFormatsCustom",
                    "schema": {
                      "const": true
                    }
                  }
                }
              }
            ]
          },
          {
            "type": "Group",
            "i18n": "samlHd",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "saml-group"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/requireAttributes",
                "i18n": "requireAttributes"
              },
              {
                "type": "Control",
                "scope": "#/properties/verifyAttributesAreUnique",
                "i18n": "verifyAttributesAreUnique"
              },
              {
                "type": "Control",
                "scope": "#/properties/requireAttributeNameFormat",
                "i18n": "requireAttributeNameFormat"
              }
            ]
          },
          {
            "type": "Group",
            "i18n": "attributeNameFormats.label",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "formats-group"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/__attributeNameFormats",
                "label": false,
                "i18n": "__attributeNameFormats"
              },
              {
                "type": "Control",
                "scope": "#/properties/customAttributeNameFormats",
                "i18n": "customAttributeNameFormats",
                "options": {
                  "markAsRequired": true
                },
                "rule": {
                  "effect": "SHOW",
                  "condition": {
                    "scope": "#/properties/__attributeNameFormatsCustom",
                    "schema": {
                      "const": true
                    }
                  }
                }
              }
            ]
          },
          {
            "type": "Control",
            "scope": "#/properties/variablePrefix",
            "i18n": "variablePrefix",
            "options": {
              "markAsRequired": true,
              "contextVariable": true,
              "variableType": "output",
              "allowedDataTypes": []
            }
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/ProcessSamlAttributeQueryRequest",
        "locale": "en",
        "content": {
          "requestHd": "Request Validation",
          "allowHd": "Allow",
          "attributeQueryHd": "AttributeQuery Validation",
          "requireIssuer.label": "Issuer",
          "requireSignature.label": "Signature",
          "requireId.label": "ID",
          "requireIssueInstant.label": "IssueInstant",
          "requireVersion.label": "Version",
          "requireConsent.label": "Consent",
          "requireDestination.label": "Destination",
          "soapEncapsulated.label": "SOAP encapsulated",
          "samlVersion.label": "SAML Version",
          "samlVersion.SAML2": "2.0",
          "destination.label": "Destination",
          "subjectHd": "Subject Validation",
          "__allowIds.allowNameId": "NameID",
          "__allowIds.allowEncryptedId": "EncryptedID",
          "decryptEncryptedId.label": "Decrypt EncryptedID",
          "requireSubjectFormat.label": "Require format",
          "subjectFormats.label": "Allowed NameID Formats",
          "customSubjectFormats.label": "Format",
          "samlHd": "SAML Attribute Validation",
          "requireAttributes.label": "Require attribute(s)",
          "verifyAttributesAreUnique.label": "Verify unique Name + NameFormat",
          "requireAttributeNameFormat.label": "Require NameFormat",
          "attributeNameFormats.label": "Allowed NameFormats",
          "customAttributeNameFormats.label": "Format",
          "variablePrefix.label": "Variable Prefix",
          "allowEncryptedId.error": "Either NameID or EncryptedID must be allowed.",
          "subjectFormats.error": "Atleast one subject format or custom value must be configured",
          "attributeNameFormats.error": "Atleast one attribute NameFormat or custom value must be configured",
          "destination.error": "Invalid destination",
          "customSubjectFormats.error": "Invalid subject format",
          "customAttributeNameFormats.error": "Invalid name format",
          "variablePrefix.error": "Invalid syntax"
        }
      }
    ]
  },
  {
    "configName": "ProcessSamlAuthnRequest",
    "displayNameFormats": [
      {
        "format": "Process SAML Authentication Request, HTTP Post Binding; Verify Signature",
        "condition": "and(equals({{.samlProtocolBinding}}, HttpPost), equals({{.verifySignature}}, true))"
      },
      {
        "format": "Process SAML Authentication Request, HTTP Redirect Binding; Verify Signature",
        "condition": "and(equals({{.samlProtocolBinding}}, HttpRedirect), equals({{.verifySignature}}, true))"
      },
      {
        "format": "Process SAML Authentication Request, HTTP Post Binding",
        "condition": "equals({{.samlProtocolBinding}}, HttpPost)"
      },
      {
        "format": "Process SAML Authentication Request, HTTP Redirect Binding",
        "condition": "equals({{.samlProtocolBinding}}, HttpRedirect)"
      },
      {
        "format": "Process SAML Authentication Request; Verify Signature",
        "condition": "equals({{.verifySignature}}, true)"
      },
      {
        "format": "Process SAML Authentication Request",
        "condition": "true"
      }
    ],
    "refVariables": [
      {
        "fieldPath": ".variablePrefix",
        "refType": "OUT",
        "dataType": "other",
        "prefixed": true
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".subject",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".subject.nameQualifier",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".subject.spNameQualifier",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".subject.format",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".subject.spProvidedId",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".x509CertBase64",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".x509Cert",
        "refType": "OUT",
        "dataType": "cert"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".acsUrl",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".acsIndex",
        "refType": "OUT",
        "dataType": "int"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".attrcsIndex",
        "refType": "OUT",
        "dataType": "int"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".protocolBinding",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".providerName",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".forceAuthn",
        "refType": "OUT",
        "dataType": "boolean"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".isPassive",
        "refType": "OUT",
        "dataType": "boolean"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".id",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".version",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".issueInstant",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".destination",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".consent",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".issuer",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".issuer.nameQualifier",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".issuer.spNameQualifier",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".issuer.format",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".issuer.spProvidedId",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".request",
        "refType": "OUT",
        "dataType": "message"
      }
    ],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/ProcessSamlAuthnRequest",
        "title": "Process SAML Authentication Request",
        "properties": {
          "otherTargetMessageVariable": {
            "type": "string"
          },
          "__extractSAMLRequest": {
            "type": "boolean",
            "default": false
          },
          "requiredAssertionConsumerServiceIndex": {
            "type": "boolean",
            "default": false
          },
          "requiredAssertionConsumerServiceURL": {
            "type": "boolean",
            "default": false
          },
          "requiredAttributeConsumingServiceIndex": {
            "type": "boolean",
            "default": false
          },
          "requiredProtocolBinding": {
            "type": "boolean",
            "default": false
          },
          "requiredProviderName": {
            "type": "boolean",
            "default": false
          },
          "samlProtocolBinding": {
            "type": "string",
            "enum": [
              "HttpPost",
              "HttpRedirect"
            ],
            "default": "HttpPost"
          },
          "target": {
            "type": "string",
            "enum": [
              "REQUEST",
              "RESPONSE",
              "OTHER"
            ],
            "default": "REQUEST"
          },
          "variablePrefix": {
            "type": "string"
          },
          "verifySignature": {
            "type": "boolean",
            "default": true
          }
        }
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/ProcessSamlAuthnRequest/Main",
        "title": "Process SAML Authentication Request",
        "properties": {
          "ProcessSamlAuthnRequest": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/ProcessSamlAuthnRequest"
          },
          ".properties": {
            "type": "object",
            "properties": {
              ".enabled": {
                "type": "boolean",
                "default": true
              },
              ".left.comment": {
                "type": "string"
              },
              ".right.comment": {
                "type": "string"
              }
            }
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Process SAML Authentication Request",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/target",
            "options": {
              "messageTarget": true
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/__extractSAMLRequest",
            "i18n": "extractSAMLRequest"
          },
          {
            "type": "Control",
            "scope": "#/properties/verifySignature",
            "i18n": "verifySignature",
            "rule": {
              "effect": "SHOW",
              "condition": {
                "scope": "#/properties/samlProtocolBinding",
                "schema": {
                  "const": "HttpPost"
                }
              }
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/samlProtocolBinding",
            "i18n": "samlProtocolBinding",
            "rule": {
              "effect": "SHOW",
              "condition": {
                "scope": "#/properties/__extractSAMLRequest",
                "schema": {
                  "const": true
                }
              }
            }
          },
          {
            "type": "Group",
            "i18n": "additionalAttributesWrapperHd",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "additional-attributes-wrapper"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/requiredAssertionConsumerServiceIndex",
                "i18n": "requiredAssertionConsumerServiceIndex"
              },
              {
                "type": "Control",
                "scope": "#/properties/requiredAssertionConsumerServiceURL",
                "i18n": "requiredAssertionConsumerServiceURL"
              },
              {
                "type": "Control",
                "scope": "#/properties/requiredAttributeConsumingServiceIndex",
                "i18n": "requiredAttributeConsumingServiceIndex"
              },
              {
                "type": "Control",
                "scope": "#/properties/requiredProviderName",
                "i18n": "requiredProviderName"
              },
              {
                "type": "Control",
                "scope": "#/properties/requiredProtocolBinding",
                "i18n": "requiredProtocolBinding"
              }
            ]
          },
          {
            "type": "Control",
            "scope": "#/properties/variablePrefix",
            "i18n": "variablePrefix",
            "options": {
              "markAsRequired": true,
              "contextVariable": true,
              "variableType": "output",
              "allowedDataTypes": []
            }
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/ProcessSamlAuthnRequest",
        "locale": "en",
        "content": {
          "requiredAssertionConsumerServiceURL.label": "AssertionConsumerServiceURL",
          "verifySignature.label": "Verify Signature",
          "variablePrefix.label": "Variable Prefix",
          "requiredAssertionConsumerServiceIndex.label": "AssertionConsumerServiceIndex",
          "requiredAttributeConsumingServiceIndex.label": "AttributeConsumingServiceIndex",
          "requiredProviderName.label": "ProviderName",
          "requiredProtocolBinding.label": "ProtocolBinding",
          "additionalAttributesWrapperHd": "Additional Attributes Required",
          "extractSAMLRequest.label": "Extract SAML request from binding",
          "samlProtocolBinding.label": "Binding"
        }
      }
    ]
  },
  {
    "configName": "RESTGatewayManagement",
    "refVariables": [
      {
        "fieldPath": ".variablePrefix",
        "refType": "BOTH",
        "dataType": "other",
        "prefixed": true
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".action",
        "refType": "IN",
        "dataType": "other"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".uri",
        "refType": "IN",
        "dataType": "other"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".status",
        "refType": "OUT",
        "dataType": "string",
        "settable": true
      }
    ],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/RESTGatewayManagement",
        "title": "REST Manage Gateway",
        "properties": {
          "otherTargetMessageVariable": {
            "type": "string"
          },
          "target": {
            "type": "string",
            "enum": [
              "REQUEST",
              "RESPONSE",
              "OTHER"
            ]
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "REST Manage Gateway",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/target",
            "options": {
              "messageTarget": true,
              "otherTargetMessageVariableLabel": "assertion.common.target.otherTargetContextVariable"
            }
          }
        ]
      }
    ]
  },
  {
    "configName": "RadiusAuthenticate",
    "displayNameFormats": [
      {
        "format": "Authenticate Against Radius Server {{.host}} [{{.prefix}}]",
        "condition": "and(not(isNull({{.host}})),not(isNull({{.prefix}})))"
      }
    ],
    "refVariables": [
      {
        "fieldPath": ".prefix",
        "refType": "OUT",
        "dataType": "binary"
      },
      {
        "fieldPath": ".prefix",
        "suffix": ".reasonCode",
        "refType": "OUT",
        "dataType": "int"
      }
    ],
    "refEntities": [
      {
        "fieldPath": ".secretGoid",
        "refType": "GOID",
        "entityType": "Secret"
      }
    ],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/RadiusAuthenticate",
        "title": "Authenticate Against Radius Server",
        "properties": {
          "acctPort": {
            "type": "string"
          },
          "authPort": {
            "type": "string"
          },
          "authenticator": {
            "type": "string"
          },
          "host": {
            "type": "string"
          },
          "otherTargetMessageVariable": {
            "type": "string"
          },
          "prefix": {
            "type": "string"
          },
          "secretGoid": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/sub-types/goid"
          },
          "target": {
            "type": "string",
            "enum": [
              "REQUEST",
              "RESPONSE",
              "OTHER"
            ],
            "default": "REQUEST"
          },
          "timeout": {
            "type": "string"
          },
          "attributes": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string"
                },
                "value": {
                  "type": "string"
                }
              }
            }
          }
        }
      },
      {
        "type": "string",
        "$id": "https://l7tech.com/2025/json-schema/assertions/sub-types/goid"
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Authenticate Against Radius Server",
        "elements": [
          {
            "type": "Control",
            "i18n": "assertion.common.target",
            "scope": "#/properties/target",
            "options": {
              "messageTarget": true
            }
          },
          {
            "type": "Group",
            "i18n": "radiusConfiguration.label",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "label-heading-style"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/host",
                "i18n": "host",
                "options": {
                  "markAsRequired": true
                }
              },
              {
                "type": "VerticalLayout",
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/secretGoid",
                    "i18n": "secretGoid",
                    "options": {
                      "manageStoredPassword": true
                    }
                  }
                ]
              },
              {
                "type": "Control",
                "scope": "#/properties/authPort",
                "i18n": "authPort",
                "options": {
                  "markAsRequired": true
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/timeout",
                "i18n": "timeout",
                "options": {
                  "markAsRequired": true
                }
              },
              {
                "type": "Group",
                "i18n": "authenticatorProtocol.label",
                "options": {
                  "groupType": "wrapCustomClass",
                  "customClass": "label-heading-style"
                },
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/authenticator",
                    "i18n": "authenticator",
                    "options": {
                      "markAsRequired": true
                    }
                  }
                ]
              },
              {
                "type": "Group",
                "i18n": "groupAttributes.label",
                "options": {
                  "groupType": "wrapCustomClass",
                  "customClass": "attrib-heading-style"
                }
              },
              {
                "type": "Group",
                "options": {
                  "groupType": "wrapCustomClass",
                  "customClass": "attribute-table-style"
                },
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/attributes",
                    "i18n": "groupAttributes",
                    "options": {
                      "nameValueList": true,
                      "modalCallbackEvent": true,
                      "detail": {
                        "type": "VerticalLayout",
                        "elements": [
                          {
                            "type": "Control",
                            "scope": "#/properties/name",
                            "i18n": "attributes.columnLabel",
                            "options": {
                              "markAsRequired": true,
                              "autocomplete": true,
                              "defaultOptions": [],
                              "allowUserProvidedInput": false
                            }
                          },
                          {
                            "type": "Control",
                            "scope": "#/properties/value",
                            "i18n": "attributes.variableName",
                            "options": {
                              "markAsRequired": true
                            }
                          }
                        ]
                      }
                    }
                  }
                ]
              },
              {
                "type": "Control",
                "scope": "#/properties/prefix",
                "i18n": "prefix",
                "options": {
                  "markAsRequired": true,
                  "contextVariable": true,
                  "variableType": "output",
                  "allowedDataTypes": []
                }
              }
            ]
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/RadiusAuthenticate",
        "locale": "en",
        "content": {
          "radiusConfiguration.label": "Radius Server Configuration",
          "host.label": "Host",
          "secretGoid.label": "Manage Stored Passwords",
          "authPort.label": "Auth Port",
          "timeout.label": "Timeout (sec)",
          "authenticatorProtocol.label": "Authentication Protocol",
          "authenticator.label": "Authenticator",
          "groupAttributes.label": "Attributes",
          "attributes.columnLabel.label": "Name",
          "attributes.variableName.label": "Value",
          "prefix.label": "Radius Variable Prefix",
          "invalidAttributeName": "Attribute Name is not found in dictionary as noted and linked to from the assertion documentation",
          "invalidAttributeValue": "Attribute Value is not found in dictionary as noted and linked to from the assertion documentation",
          "common.error.required.field": "This is a required field",
          "common.error.invalid_port.field": "Port number must be in range 1 to 65535",
          "connections.error.valid-timeout": "The timeout value must be positive number",
          "common.error.duplicate_attribute_name": "Duplicate attribute name not allowed",
          "common.error.invalid_variable.field": "Must start with a letter or underscore, and contains optional letters, digits, underscores, dashes, or periods."
        }
      }
    ]
  },
  {
    "configName": "RaiseError",
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Raise Error"
      }
    ]
  },
  {
    "configName": "RateLimit",
    "displayNameFormats": [
      {
        "format": "Apply Rate Limit: up to {{.maxRequestsPerSecond}} msg/sec, shaped, per Authenticated user with {{.blackoutPeriodInSeconds}} sec blackout",
        "condition": "and(endsWith({{.counterName}}, ${request.authenticateduser}), equals({{.shapeRequests}}, true), or(equals({{.maxConcurrency}}, 0), isNull({{.maxConcurrency}})), not(isNull({{.blackoutPeriodInSeconds}})), equals({{.hardLimit}}, true))"
      },
      {
        "format": "Apply Rate Limit: up to {{.maxRequestsPerSecond}} msg/sec, shaped, per Client IP with {{.blackoutPeriodInSeconds}} sec blackout",
        "condition": "and(endsWith({{.counterName}}, ${request.tcp.remoteAddress}), equals({{.shapeRequests}}, true), or(equals({{.maxConcurrency}}, 0), isNull({{.maxConcurrency}})), not(isNull({{.blackoutPeriodInSeconds}})), equals({{.hardLimit}}, true))"
      },
      {
        "format": "Apply Rate Limit: up to {{.maxRequestsPerSecond}} msg/sec, shaped, per SOAP operation with {{.blackoutPeriodInSeconds}} sec blackout",
        "condition": "and(endsWith({{.counterName}}, ${request.soap.operation}), equals({{.shapeRequests}}, true), or(equals({{.maxConcurrency}}, 0), isNull({{.maxConcurrency}})), not(isNull({{.blackoutPeriodInSeconds}})), equals({{.hardLimit}}, true))"
      },
      {
        "format": "Apply Rate Limit: up to {{.maxRequestsPerSecond}} msg/sec, shaped, per SOAP namespace with {{.blackoutPeriodInSeconds}} sec blackout",
        "condition": "and(endsWith({{.counterName}}, ${request.soap.namespace}), equals({{.shapeRequests}}, true), or(equals({{.maxConcurrency}}, 0), isNull({{.maxConcurrency}})), not(isNull({{.blackoutPeriodInSeconds}})), equals({{.hardLimit}}, true))"
      },
      {
        "format": "Apply Rate Limit: up to {{.maxRequestsPerSecond}} msg/sec, shaped, per User or client IP with {{.blackoutPeriodInSeconds}} sec blackout",
        "condition": "and(endsWith({{.counterName}}, ${request.clientid}), equals({{.shapeRequests}}, true), or(equals({{.maxConcurrency}}, 0), isNull({{.maxConcurrency}})), not(isNull({{.blackoutPeriodInSeconds}})), equals({{.hardLimit}}, true))"
      },
      {
        "format": "Apply Rate Limit: up to {{.maxRequestsPerSecond}} msg/sec, shaped, per Gateway node with {{.blackoutPeriodInSeconds}} sec blackout",
        "condition": "and(contains({{.counterName}}, PRESET), equals({{.shapeRequests}}, true), or(equals({{.maxConcurrency}}, 0), isNull({{.maxConcurrency}})), not(isNull({{.blackoutPeriodInSeconds}})), equals({{.hardLimit}}, true))"
      },
      {
        "format": "Apply Rate Limit: up to {{.maxRequestsPerSecond}} msg/sec, shaped, per \"{{.counterName}}\" with {{.blackoutPeriodInSeconds}} sec blackout",
        "condition": "and(true, equals({{.shapeRequests}}, true), or(equals({{.maxConcurrency}}, 0), isNull({{.maxConcurrency}})), not(isNull({{.blackoutPeriodInSeconds}})), equals({{.hardLimit}}, true))"
      },
      {
        "format": "Apply Rate Limit: up to {{.maxRequestsPerSecond}} msg/sec, shaped, per Authenticated user",
        "condition": "and(endsWith({{.counterName}}, ${request.authenticateduser}), equals({{.shapeRequests}}, true), or(equals({{.maxConcurrency}}, 0), isNull({{.maxConcurrency}})), equals({{.hardLimit}}, true))"
      },
      {
        "format": "Apply Rate Limit: up to {{.maxRequestsPerSecond}} msg/sec, shaped, per Client IP",
        "condition": "and(endsWith({{.counterName}}, ${request.tcp.remoteAddress}), equals({{.shapeRequests}}, true), or(equals({{.maxConcurrency}}, 0), isNull({{.maxConcurrency}})), equals({{.hardLimit}}, true))"
      },
      {
        "format": "Apply Rate Limit: up to {{.maxRequestsPerSecond}} msg/sec, shaped, per SOAP operation",
        "condition": "and(endsWith({{.counterName}}, ${request.soap.operation}), equals({{.shapeRequests}}, true), or(equals({{.maxConcurrency}}, 0), isNull({{.maxConcurrency}})), equals({{.hardLimit}}, true))"
      },
      {
        "format": "Apply Rate Limit: up to {{.maxRequestsPerSecond}} msg/sec, shaped, per SOAP namespace",
        "condition": "and(endsWith({{.counterName}}, ${request.soap.namespace}), equals({{.shapeRequests}}, true), or(equals({{.maxConcurrency}}, 0), isNull({{.maxConcurrency}})), equals({{.hardLimit}}, true))"
      },
      {
        "format": "Apply Rate Limit: up to {{.maxRequestsPerSecond}} msg/sec, shaped, per User or client IP",
        "condition": "and(endsWith({{.counterName}}, ${request.clientid}), equals({{.shapeRequests}}, true), or(equals({{.maxConcurrency}}, 0), isNull({{.maxConcurrency}})), equals({{.hardLimit}}, true))"
      },
      {
        "format": "Apply Rate Limit: up to {{.maxRequestsPerSecond}} msg/sec, shaped, per Gateway node",
        "condition": "and(contains({{.counterName}}, PRESET), equals({{.shapeRequests}}, true), or(equals({{.maxConcurrency}}, 0), isNull({{.maxConcurrency}})), equals({{.hardLimit}}, true))"
      },
      {
        "format": "Apply Rate Limit: up to {{.maxRequestsPerSecond}} msg/sec, shaped, per \"{{.counterName}}\"",
        "condition": "and(true, equals({{.shapeRequests}}, true), or(equals({{.maxConcurrency}}, 0), isNull({{.maxConcurrency}})), equals({{.hardLimit}}, true))"
      },
      {
        "format": "Apply Rate Limit: up to {{.maxRequestsPerSecond}} msg/sec per Authenticated user with {{.blackoutPeriodInSeconds}} sec blackout",
        "condition": "and(endsWith({{.counterName}}, ${request.authenticateduser}), or(equals({{.maxConcurrency}}, 0), isNull({{.maxConcurrency}})), not(isNull({{.blackoutPeriodInSeconds}})), equals({{.hardLimit}}, true))"
      },
      {
        "format": "Apply Rate Limit: up to {{.maxRequestsPerSecond}} msg/sec per Client IP with {{.blackoutPeriodInSeconds}} sec blackout",
        "condition": "and(endsWith({{.counterName}}, ${request.tcp.remoteAddress}), or(equals({{.maxConcurrency}}, 0), isNull({{.maxConcurrency}})), not(isNull({{.blackoutPeriodInSeconds}})), equals({{.hardLimit}}, true))"
      },
      {
        "format": "Apply Rate Limit: up to {{.maxRequestsPerSecond}} msg/sec per SOAP operation with {{.blackoutPeriodInSeconds}} sec blackout",
        "condition": "and(endsWith({{.counterName}}, ${request.soap.operation}), or(equals({{.maxConcurrency}}, 0), isNull({{.maxConcurrency}})), not(isNull({{.blackoutPeriodInSeconds}})), equals({{.hardLimit}}, true))"
      },
      {
        "format": "Apply Rate Limit: up to {{.maxRequestsPerSecond}} msg/sec per SOAP namespace with {{.blackoutPeriodInSeconds}} sec blackout",
        "condition": "and(endsWith({{.counterName}}, ${request.soap.namespace}), or(equals({{.maxConcurrency}}, 0), isNull({{.maxConcurrency}})), not(isNull({{.blackoutPeriodInSeconds}})), equals({{.hardLimit}}, true))"
      },
      {
        "format": "Apply Rate Limit: up to {{.maxRequestsPerSecond}} msg/sec per User or client IP with {{.blackoutPeriodInSeconds}} sec blackout",
        "condition": "and(endsWith({{.counterName}}, ${request.clientid}), or(equals({{.maxConcurrency}}, 0), isNull({{.maxConcurrency}})), not(isNull({{.blackoutPeriodInSeconds}})), equals({{.hardLimit}}, true))"
      },
      {
        "format": "Apply Rate Limit: up to {{.maxRequestsPerSecond}} msg/sec per Gateway node with {{.blackoutPeriodInSeconds}} sec blackout",
        "condition": "and(contains({{.counterName}}, PRESET), or(equals({{.maxConcurrency}}, 0), isNull({{.maxConcurrency}})), not(isNull({{.blackoutPeriodInSeconds}})), equals({{.hardLimit}}, true))"
      },
      {
        "format": "Apply Rate Limit: up to {{.maxRequestsPerSecond}} msg/sec per \"{{.counterName}}\" with {{.blackoutPeriodInSeconds}} sec blackout",
        "condition": "and(true, or(equals({{.maxConcurrency}}, 0), isNull({{.maxConcurrency}})), not(isNull({{.blackoutPeriodInSeconds}})), equals({{.hardLimit}}, true))"
      },
      {
        "format": "Apply Rate Limit: up to {{.maxRequestsPerSecond}} msg/sec per Authenticated user",
        "condition": "and(endsWith({{.counterName}}, ${request.authenticateduser}), or(equals({{.maxConcurrency}}, 0), isNull({{.maxConcurrency}})), equals({{.hardLimit}}, true))"
      },
      {
        "format": "Apply Rate Limit: up to {{.maxRequestsPerSecond}} msg/sec per Client IP",
        "condition": "and(endsWith({{.counterName}}, ${request.tcp.remoteAddress}), or(equals({{.maxConcurrency}}, 0), isNull({{.maxConcurrency}})), equals({{.hardLimit}}, true))"
      },
      {
        "format": "Apply Rate Limit: up to {{.maxRequestsPerSecond}} msg/sec per SOAP operation",
        "condition": "and(endsWith({{.counterName}}, ${request.soap.operation}), or(equals({{.maxConcurrency}}, 0), isNull({{.maxConcurrency}})), equals({{.hardLimit}}, true))"
      },
      {
        "format": "Apply Rate Limit: up to {{.maxRequestsPerSecond}} msg/sec per SOAP namespace",
        "condition": "and(endsWith({{.counterName}}, ${request.soap.namespace}), or(equals({{.maxConcurrency}}, 0), isNull({{.maxConcurrency}})), equals({{.hardLimit}}, true))"
      },
      {
        "format": "Apply Rate Limit: up to {{.maxRequestsPerSecond}} msg/sec per User or client IP",
        "condition": "and(endsWith({{.counterName}}, ${request.clientid}), or(equals({{.maxConcurrency}}, 0), isNull({{.maxConcurrency}})), equals({{.hardLimit}}, true))"
      },
      {
        "format": "Apply Rate Limit: up to {{.maxRequestsPerSecond}} msg/sec per Gateway node",
        "condition": "and(contains({{.counterName}}, PRESET), or(equals({{.maxConcurrency}}, 0), isNull({{.maxConcurrency}})), equals({{.hardLimit}}, true))"
      },
      {
        "format": "Apply Rate Limit: up to {{.maxRequestsPerSecond}} msg/sec per \"{{.counterName}}\"",
        "condition": "and(true, or(equals({{.maxConcurrency}}, 0), isNull({{.maxConcurrency}})), equals({{.hardLimit}}, true))"
      },
      {
        "format": "Apply Rate Limit: up to {{.maxRequestsPerSecond}} msg/sec, shaped, per Authenticated user (concurrency {{.maxConcurrency}}) with {{.blackoutPeriodInSeconds}} sec blackout",
        "condition": "and(endsWith({{.counterName}}, ${request.authenticateduser}), equals({{.shapeRequests}}, true), not(or(equals({{.maxConcurrency}}, 0), isNull({{.maxConcurrency}}))), not(isNull({{.blackoutPeriodInSeconds}})), equals({{.hardLimit}}, true))"
      },
      {
        "format": "Apply Rate Limit: up to {{.maxRequestsPerSecond}} msg/sec, shaped, per Client IP (concurrency {{.maxConcurrency}}) with {{.blackoutPeriodInSeconds}} sec blackout",
        "condition": "and(endsWith({{.counterName}}, ${request.tcp.remoteAddress}), equals({{.shapeRequests}}, true), not(or(equals({{.maxConcurrency}}, 0), isNull({{.maxConcurrency}}))), not(isNull({{.blackoutPeriodInSeconds}})), equals({{.hardLimit}}, true))"
      },
      {
        "format": "Apply Rate Limit: up to {{.maxRequestsPerSecond}} msg/sec, shaped, per SOAP operation (concurrency {{.maxConcurrency}}) with {{.blackoutPeriodInSeconds}} sec blackout",
        "condition": "and(endsWith({{.counterName}}, ${request.soap.operation}), equals({{.shapeRequests}}, true), not(or(equals({{.maxConcurrency}}, 0), isNull({{.maxConcurrency}}))), not(isNull({{.blackoutPeriodInSeconds}})), equals({{.hardLimit}}, true))"
      },
      {
        "format": "Apply Rate Limit: up to {{.maxRequestsPerSecond}} msg/sec, shaped, per SOAP namespace (concurrency {{.maxConcurrency}}) with {{.blackoutPeriodInSeconds}} sec blackout",
        "condition": "and(endsWith({{.counterName}}, ${request.soap.namespace}), equals({{.shapeRequests}}, true), not(or(equals({{.maxConcurrency}}, 0), isNull({{.maxConcurrency}}))), not(isNull({{.blackoutPeriodInSeconds}})), equals({{.hardLimit}}, true))"
      },
      {
        "format": "Apply Rate Limit: up to {{.maxRequestsPerSecond}} msg/sec, shaped, per User or client IP (concurrency {{.maxConcurrency}}) with {{.blackoutPeriodInSeconds}} sec blackout",
        "condition": "and(endsWith({{.counterName}}, ${request.clientid}), equals({{.shapeRequests}}, true), not(or(equals({{.maxConcurrency}}, 0), isNull({{.maxConcurrency}}))), not(isNull({{.blackoutPeriodInSeconds}})), equals({{.hardLimit}}, true))"
      },
      {
        "format": "Apply Rate Limit: up to {{.maxRequestsPerSecond}} msg/sec, shaped, per Gateway node (concurrency {{.maxConcurrency}}) with {{.blackoutPeriodInSeconds}} sec blackout",
        "condition": "and(contains({{.counterName}}, PRESET), equals({{.shapeRequests}}, true), not(or(equals({{.maxConcurrency}}, 0), isNull({{.maxConcurrency}}))), not(isNull({{.blackoutPeriodInSeconds}})), equals({{.hardLimit}}, true))"
      },
      {
        "format": "Apply Rate Limit: up to {{.maxRequestsPerSecond}} msg/sec, shaped, per \"{{.counterName}}\" (concurrency {{.maxConcurrency}}) with {{.blackoutPeriodInSeconds}} sec blackout",
        "condition": "and(true, equals({{.shapeRequests}}, true), not(or(equals({{.maxConcurrency}}, 0), isNull({{.maxConcurrency}}))), not(isNull({{.blackoutPeriodInSeconds}})), equals({{.hardLimit}}, true))"
      },
      {
        "format": "Apply Rate Limit: up to {{.maxRequestsPerSecond}} msg/sec, shaped, per Authenticated user (concurrency {{.maxConcurrency}})",
        "condition": "and(endsWith({{.counterName}}, ${request.authenticateduser}), equals({{.shapeRequests}}, true), not(or(equals({{.maxConcurrency}}, 0), isNull({{.maxConcurrency}}))), equals({{.hardLimit}}, true))"
      },
      {
        "format": "Apply Rate Limit: up to {{.maxRequestsPerSecond}} msg/sec, shaped, per Client IP (concurrency {{.maxConcurrency}})",
        "condition": "and(endsWith({{.counterName}}, ${request.tcp.remoteAddress}), equals({{.shapeRequests}}, true), not(or(equals({{.maxConcurrency}}, 0), isNull({{.maxConcurrency}}))), equals({{.hardLimit}}, true))"
      },
      {
        "format": "Apply Rate Limit: up to {{.maxRequestsPerSecond}} msg/sec, shaped, per SOAP operation (concurrency {{.maxConcurrency}})",
        "condition": "and(endsWith({{.counterName}}, ${request.soap.operation}), equals({{.shapeRequests}}, true), not(or(equals({{.maxConcurrency}}, 0), isNull({{.maxConcurrency}}))), equals({{.hardLimit}}, true))"
      },
      {
        "format": "Apply Rate Limit: up to {{.maxRequestsPerSecond}} msg/sec, shaped, per SOAP namespace (concurrency {{.maxConcurrency}})",
        "condition": "and(endsWith({{.counterName}}, ${request.soap.namespace}), equals({{.shapeRequests}}, true), not(or(equals({{.maxConcurrency}}, 0), isNull({{.maxConcurrency}}))), equals({{.hardLimit}}, true))"
      },
      {
        "format": "Apply Rate Limit: up to {{.maxRequestsPerSecond}} msg/sec, shaped, per User or client IP (concurrency {{.maxConcurrency}})",
        "condition": "and(endsWith({{.counterName}}, ${request.clientid}), equals({{.shapeRequests}}, true), not(or(equals({{.maxConcurrency}}, 0), isNull({{.maxConcurrency}}))), equals({{.hardLimit}}, true))"
      },
      {
        "format": "Apply Rate Limit: up to {{.maxRequestsPerSecond}} msg/sec, shaped, per Gateway node (concurrency {{.maxConcurrency}})",
        "condition": "and(contains({{.counterName}}, PRESET), equals({{.shapeRequests}}, true), not(or(equals({{.maxConcurrency}}, 0), isNull({{.maxConcurrency}}))), equals({{.hardLimit}}, true))"
      },
      {
        "format": "Apply Rate Limit: up to {{.maxRequestsPerSecond}} msg/sec, shaped, per \"{{.counterName}}\" (concurrency {{.maxConcurrency}})",
        "condition": "and(true, equals({{.shapeRequests}}, true), not(or(equals({{.maxConcurrency}}, 0), isNull({{.maxConcurrency}}))), equals({{.hardLimit}}, true))"
      },
      {
        "format": "Apply Rate Limit: up to {{.maxRequestsPerSecond}} msg/sec per Authenticated user (concurrency {{.maxConcurrency}}) with {{.blackoutPeriodInSeconds}} sec blackout",
        "condition": "and(endsWith({{.counterName}}, ${request.authenticateduser}), not(or(equals({{.maxConcurrency}}, 0), isNull({{.maxConcurrency}}))), not(isNull({{.blackoutPeriodInSeconds}})), equals({{.hardLimit}}, true))"
      },
      {
        "format": "Apply Rate Limit: up to {{.maxRequestsPerSecond}} msg/sec per Client IP (concurrency {{.maxConcurrency}}) with {{.blackoutPeriodInSeconds}} sec blackout",
        "condition": "and(endsWith({{.counterName}}, ${request.tcp.remoteAddress}), not(or(equals({{.maxConcurrency}}, 0), isNull({{.maxConcurrency}}))), not(isNull({{.blackoutPeriodInSeconds}})), equals({{.hardLimit}}, true))"
      },
      {
        "format": "Apply Rate Limit: up to {{.maxRequestsPerSecond}} msg/sec per SOAP operation (concurrency {{.maxConcurrency}}) with {{.blackoutPeriodInSeconds}} sec blackout",
        "condition": "and(endsWith({{.counterName}}, ${request.soap.operation}), not(or(equals({{.maxConcurrency}}, 0), isNull({{.maxConcurrency}}))), not(isNull({{.blackoutPeriodInSeconds}})), equals({{.hardLimit}}, true))"
      },
      {
        "format": "Apply Rate Limit: up to {{.maxRequestsPerSecond}} msg/sec per SOAP namespace (concurrency {{.maxConcurrency}}) with {{.blackoutPeriodInSeconds}} sec blackout",
        "condition": "and(endsWith({{.counterName}}, ${request.soap.namespace}), not(or(equals({{.maxConcurrency}}, 0), isNull({{.maxConcurrency}}))), not(isNull({{.blackoutPeriodInSeconds}})), equals({{.hardLimit}}, true))"
      },
      {
        "format": "Apply Rate Limit: up to {{.maxRequestsPerSecond}} msg/sec per User or client IP (concurrency {{.maxConcurrency}}) with {{.blackoutPeriodInSeconds}} sec blackout",
        "condition": "and(endsWith({{.counterName}}, ${request.clientid}), not(or(equals({{.maxConcurrency}}, 0), isNull({{.maxConcurrency}}))), not(isNull({{.blackoutPeriodInSeconds}})), equals({{.hardLimit}}, true))"
      },
      {
        "format": "Apply Rate Limit: up to {{.maxRequestsPerSecond}} msg/sec per Gateway node (concurrency {{.maxConcurrency}}) with {{.blackoutPeriodInSeconds}} sec blackout",
        "condition": "and(contains({{.counterName}}, PRESET), not(or(equals({{.maxConcurrency}}, 0), isNull({{.maxConcurrency}}))), not(isNull({{.blackoutPeriodInSeconds}})), equals({{.hardLimit}}, true))"
      },
      {
        "format": "Apply Rate Limit: up to {{.maxRequestsPerSecond}} msg/sec per \"{{.counterName}}\" (concurrency {{.maxConcurrency}}) with {{.blackoutPeriodInSeconds}} sec blackout",
        "condition": "and(true, not(or(equals({{.maxConcurrency}}, 0), isNull({{.maxConcurrency}}))), not(isNull({{.blackoutPeriodInSeconds}})), equals({{.hardLimit}}, true))"
      },
      {
        "format": "Apply Rate Limit: up to {{.maxRequestsPerSecond}} msg/sec per Authenticated user (concurrency {{.maxConcurrency}})",
        "condition": "and(endsWith({{.counterName}}, ${request.authenticateduser}), not(or(equals({{.maxConcurrency}}, 0), isNull({{.maxConcurrency}}))), equals({{.hardLimit}}, true))"
      },
      {
        "format": "Apply Rate Limit: up to {{.maxRequestsPerSecond}} msg/sec per Client IP (concurrency {{.maxConcurrency}})",
        "condition": "and(endsWith({{.counterName}}, ${request.tcp.remoteAddress}), not(or(equals({{.maxConcurrency}}, 0), isNull({{.maxConcurrency}}))), equals({{.hardLimit}}, true))"
      },
      {
        "format": "Apply Rate Limit: up to {{.maxRequestsPerSecond}} msg/sec per SOAP operation (concurrency {{.maxConcurrency}})",
        "condition": "and(endsWith({{.counterName}}, ${request.soap.operation}), not(or(equals({{.maxConcurrency}}, 0), isNull({{.maxConcurrency}}))), equals({{.hardLimit}}, true))"
      },
      {
        "format": "Apply Rate Limit: up to {{.maxRequestsPerSecond}} msg/sec per SOAP namespace (concurrency {{.maxConcurrency}})",
        "condition": "and(endsWith({{.counterName}}, ${request.soap.namespace}), not(or(equals({{.maxConcurrency}}, 0), isNull({{.maxConcurrency}}))), equals({{.hardLimit}}, true))"
      },
      {
        "format": "Apply Rate Limit: up to {{.maxRequestsPerSecond}} msg/sec per User or client IP (concurrency {{.maxConcurrency}})",
        "condition": "and(endsWith({{.counterName}}, ${request.clientid}), not(or(equals({{.maxConcurrency}}, 0), isNull({{.maxConcurrency}}))), equals({{.hardLimit}}, true))"
      },
      {
        "format": "Apply Rate Limit: up to {{.maxRequestsPerSecond}} msg/sec per Gateway node (concurrency {{.maxConcurrency}})",
        "condition": "and(contains({{.counterName}}, PRESET), not(or(equals({{.maxConcurrency}}, 0), isNull({{.maxConcurrency}}))), equals({{.hardLimit}}, true))"
      },
      {
        "format": "Apply Rate Limit: up to {{.maxRequestsPerSecond}} msg/sec per \"{{.counterName}}\" (concurrency {{.maxConcurrency}})",
        "condition": "and(true, not(or(equals({{.maxConcurrency}}, 0), isNull({{.maxConcurrency}}))), equals({{.hardLimit}}, true))"
      },
      {
        "format": "Apply Rate Limit: average (over {{.windowSizeInSeconds}} seconds) {{.maxRequestsPerSecond}} msg/sec, shaped, per Authenticated user with {{.blackoutPeriodInSeconds}} sec blackout",
        "condition": "and(endsWith({{.counterName}}, ${request.authenticateduser}), equals({{.shapeRequests}}, true), or(equals({{.maxConcurrency}}, 0), isNull({{.maxConcurrency}})), not(isNull({{.blackoutPeriodInSeconds}})), equals({{.hardLimit}}, false))"
      },
      {
        "format": "Apply Rate Limit: average (over {{.windowSizeInSeconds}} seconds) {{.maxRequestsPerSecond}} msg/sec, shaped, per Client IP with {{.blackoutPeriodInSeconds}} sec blackout",
        "condition": "and(endsWith({{.counterName}}, ${request.tcp.remoteAddress}), equals({{.shapeRequests}}, true), or(equals({{.maxConcurrency}}, 0), isNull({{.maxConcurrency}})), not(isNull({{.blackoutPeriodInSeconds}})), equals({{.hardLimit}}, false))"
      },
      {
        "format": "Apply Rate Limit: average (over {{.windowSizeInSeconds}} seconds) {{.maxRequestsPerSecond}} msg/sec, shaped, per SOAP operation with {{.blackoutPeriodInSeconds}} sec blackout",
        "condition": "and(endsWith({{.counterName}}, ${request.soap.operation}), equals({{.shapeRequests}}, true), or(equals({{.maxConcurrency}}, 0), isNull({{.maxConcurrency}})), not(isNull({{.blackoutPeriodInSeconds}})), equals({{.hardLimit}}, false))"
      },
      {
        "format": "Apply Rate Limit: average (over {{.windowSizeInSeconds}} seconds) {{.maxRequestsPerSecond}} msg/sec, shaped, per SOAP namespace with {{.blackoutPeriodInSeconds}} sec blackout",
        "condition": "and(endsWith({{.counterName}}, ${request.soap.namespace}), equals({{.shapeRequests}}, true), or(equals({{.maxConcurrency}}, 0), isNull({{.maxConcurrency}})), not(isNull({{.blackoutPeriodInSeconds}})), equals({{.hardLimit}}, false))"
      },
      {
        "format": "Apply Rate Limit: average (over {{.windowSizeInSeconds}} seconds) {{.maxRequestsPerSecond}} msg/sec, shaped, per User or client IP with {{.blackoutPeriodInSeconds}} sec blackout",
        "condition": "and(endsWith({{.counterName}}, ${request.clientid}), equals({{.shapeRequests}}, true), or(equals({{.maxConcurrency}}, 0), isNull({{.maxConcurrency}})), not(isNull({{.blackoutPeriodInSeconds}})), equals({{.hardLimit}}, false))"
      },
      {
        "format": "Apply Rate Limit: average (over {{.windowSizeInSeconds}} seconds) {{.maxRequestsPerSecond}} msg/sec, shaped, per Gateway node with {{.blackoutPeriodInSeconds}} sec blackout",
        "condition": "and(contains({{.counterName}}, PRESET), equals({{.shapeRequests}}, true), or(equals({{.maxConcurrency}}, 0), isNull({{.maxConcurrency}})), not(isNull({{.blackoutPeriodInSeconds}})), equals({{.hardLimit}}, false))"
      },
      {
        "format": "Apply Rate Limit: average (over {{.windowSizeInSeconds}} seconds) {{.maxRequestsPerSecond}} msg/sec, shaped, per \"{{.counterName}}\" with {{.blackoutPeriodInSeconds}} sec blackout",
        "condition": "and(true, equals({{.shapeRequests}}, true), or(equals({{.maxConcurrency}}, 0), isNull({{.maxConcurrency}})), not(isNull({{.blackoutPeriodInSeconds}})), equals({{.hardLimit}}, false))"
      },
      {
        "format": "Apply Rate Limit: average (over {{.windowSizeInSeconds}} seconds) {{.maxRequestsPerSecond}} msg/sec, shaped, per Authenticated user",
        "condition": "and(endsWith({{.counterName}}, ${request.authenticateduser}), equals({{.shapeRequests}}, true), or(equals({{.maxConcurrency}}, 0), isNull({{.maxConcurrency}})), equals({{.hardLimit}}, false))"
      },
      {
        "format": "Apply Rate Limit: average (over {{.windowSizeInSeconds}} seconds) {{.maxRequestsPerSecond}} msg/sec, shaped, per Client IP",
        "condition": "and(endsWith({{.counterName}}, ${request.tcp.remoteAddress}), equals({{.shapeRequests}}, true), or(equals({{.maxConcurrency}}, 0), isNull({{.maxConcurrency}})), equals({{.hardLimit}}, false))"
      },
      {
        "format": "Apply Rate Limit: average (over {{.windowSizeInSeconds}} seconds) {{.maxRequestsPerSecond}} msg/sec, shaped, per SOAP operation",
        "condition": "and(endsWith({{.counterName}}, ${request.soap.operation}), equals({{.shapeRequests}}, true), or(equals({{.maxConcurrency}}, 0), isNull({{.maxConcurrency}})), equals({{.hardLimit}}, false))"
      },
      {
        "format": "Apply Rate Limit: average (over {{.windowSizeInSeconds}} seconds) {{.maxRequestsPerSecond}} msg/sec, shaped, per SOAP namespace",
        "condition": "and(endsWith({{.counterName}}, ${request.soap.namespace}), equals({{.shapeRequests}}, true), or(equals({{.maxConcurrency}}, 0), isNull({{.maxConcurrency}})), equals({{.hardLimit}}, false))"
      },
      {
        "format": "Apply Rate Limit: average (over {{.windowSizeInSeconds}} seconds) {{.maxRequestsPerSecond}} msg/sec, shaped, per User or client IP",
        "condition": "and(endsWith({{.counterName}}, ${request.clientid}), equals({{.shapeRequests}}, true), or(equals({{.maxConcurrency}}, 0), isNull({{.maxConcurrency}})), equals({{.hardLimit}}, false))"
      },
      {
        "format": "Apply Rate Limit: average (over {{.windowSizeInSeconds}} seconds) {{.maxRequestsPerSecond}} msg/sec, shaped, per Gateway node",
        "condition": "and(contains({{.counterName}}, PRESET), equals({{.shapeRequests}}, true), or(equals({{.maxConcurrency}}, 0), isNull({{.maxConcurrency}})), equals({{.hardLimit}}, false))"
      },
      {
        "format": "Apply Rate Limit: average (over {{.windowSizeInSeconds}} seconds) {{.maxRequestsPerSecond}} msg/sec, shaped, per \"{{.counterName}}\"",
        "condition": "and(true, equals({{.shapeRequests}}, true), or(equals({{.maxConcurrency}}, 0), isNull({{.maxConcurrency}})), equals({{.hardLimit}}, false))"
      },
      {
        "format": "Apply Rate Limit: average (over {{.windowSizeInSeconds}} seconds) {{.maxRequestsPerSecond}} msg/sec per Authenticated user with {{.blackoutPeriodInSeconds}} sec blackout",
        "condition": "and(endsWith({{.counterName}}, ${request.authenticateduser}), or(equals({{.maxConcurrency}}, 0), isNull({{.maxConcurrency}})), not(isNull({{.blackoutPeriodInSeconds}})), equals({{.hardLimit}}, false))"
      },
      {
        "format": "Apply Rate Limit: average (over {{.windowSizeInSeconds}} seconds) {{.maxRequestsPerSecond}} msg/sec per Client IP with {{.blackoutPeriodInSeconds}} sec blackout",
        "condition": "and(endsWith({{.counterName}}, ${request.tcp.remoteAddress}), or(equals({{.maxConcurrency}}, 0), isNull({{.maxConcurrency}})), not(isNull({{.blackoutPeriodInSeconds}})), equals({{.hardLimit}}, false))"
      },
      {
        "format": "Apply Rate Limit: average (over {{.windowSizeInSeconds}} seconds) {{.maxRequestsPerSecond}} msg/sec per SOAP operation with {{.blackoutPeriodInSeconds}} sec blackout",
        "condition": "and(endsWith({{.counterName}}, ${request.soap.operation}), or(equals({{.maxConcurrency}}, 0), isNull({{.maxConcurrency}})), not(isNull({{.blackoutPeriodInSeconds}})), equals({{.hardLimit}}, false))"
      },
      {
        "format": "Apply Rate Limit: average (over {{.windowSizeInSeconds}} seconds) {{.maxRequestsPerSecond}} msg/sec per SOAP namespace with {{.blackoutPeriodInSeconds}} sec blackout",
        "condition": "and(endsWith({{.counterName}}, ${request.soap.namespace}), or(equals({{.maxConcurrency}}, 0), isNull({{.maxConcurrency}})), not(isNull({{.blackoutPeriodInSeconds}})), equals({{.hardLimit}}, false))"
      },
      {
        "format": "Apply Rate Limit: average (over {{.windowSizeInSeconds}} seconds) {{.maxRequestsPerSecond}} msg/sec per User or client IP with {{.blackoutPeriodInSeconds}} sec blackout",
        "condition": "and(endsWith({{.counterName}}, ${request.clientid}), or(equals({{.maxConcurrency}}, 0), isNull({{.maxConcurrency}})), not(isNull({{.blackoutPeriodInSeconds}})), equals({{.hardLimit}}, false))"
      },
      {
        "format": "Apply Rate Limit: average (over {{.windowSizeInSeconds}} seconds) {{.maxRequestsPerSecond}} msg/sec per Gateway node with {{.blackoutPeriodInSeconds}} sec blackout",
        "condition": "and(contains({{.counterName}}, PRESET), or(equals({{.maxConcurrency}}, 0), isNull({{.maxConcurrency}})), not(isNull({{.blackoutPeriodInSeconds}})), equals({{.hardLimit}}, false))"
      },
      {
        "format": "Apply Rate Limit: average (over {{.windowSizeInSeconds}} seconds) {{.maxRequestsPerSecond}} msg/sec per \"{{.counterName}}\" with {{.blackoutPeriodInSeconds}} sec blackout",
        "condition": "and(true, or(equals({{.maxConcurrency}}, 0), isNull({{.maxConcurrency}})), not(isNull({{.blackoutPeriodInSeconds}})), equals({{.hardLimit}}, false))"
      },
      {
        "format": "Apply Rate Limit: average (over {{.windowSizeInSeconds}} seconds) {{.maxRequestsPerSecond}} msg/sec per Authenticated user",
        "condition": "and(endsWith({{.counterName}}, ${request.authenticateduser}), or(equals({{.maxConcurrency}}, 0), isNull({{.maxConcurrency}})), equals({{.hardLimit}}, false))"
      },
      {
        "format": "Apply Rate Limit: average (over {{.windowSizeInSeconds}} seconds) {{.maxRequestsPerSecond}} msg/sec per Client IP",
        "condition": "and(endsWith({{.counterName}}, ${request.tcp.remoteAddress}), or(equals({{.maxConcurrency}}, 0), isNull({{.maxConcurrency}})), equals({{.hardLimit}}, false))"
      },
      {
        "format": "Apply Rate Limit: average (over {{.windowSizeInSeconds}} seconds) {{.maxRequestsPerSecond}} msg/sec per SOAP operation",
        "condition": "and(endsWith({{.counterName}}, ${request.soap.operation}), or(equals({{.maxConcurrency}}, 0), isNull({{.maxConcurrency}})), equals({{.hardLimit}}, false))"
      },
      {
        "format": "Apply Rate Limit: average (over {{.windowSizeInSeconds}} seconds) {{.maxRequestsPerSecond}} msg/sec per SOAP namespace",
        "condition": "and(endsWith({{.counterName}}, ${request.soap.namespace}), or(equals({{.maxConcurrency}}, 0), isNull({{.maxConcurrency}})), equals({{.hardLimit}}, false))"
      },
      {
        "format": "Apply Rate Limit: average (over {{.windowSizeInSeconds}} seconds) {{.maxRequestsPerSecond}} msg/sec per User or client IP",
        "condition": "and(endsWith({{.counterName}}, ${request.clientid}), or(equals({{.maxConcurrency}}, 0), isNull({{.maxConcurrency}})), equals({{.hardLimit}}, false))"
      },
      {
        "format": "Apply Rate Limit: average (over {{.windowSizeInSeconds}} seconds) {{.maxRequestsPerSecond}} msg/sec per Gateway node",
        "condition": "and(contains({{.counterName}}, PRESET), or(equals({{.maxConcurrency}}, 0), isNull({{.maxConcurrency}})), equals({{.hardLimit}}, false))"
      },
      {
        "format": "Apply Rate Limit: average (over {{.windowSizeInSeconds}} seconds) {{.maxRequestsPerSecond}} msg/sec per \"{{.counterName}}\"",
        "condition": "and(true, or(equals({{.maxConcurrency}}, 0), isNull({{.maxConcurrency}})), equals({{.hardLimit}}, false))"
      },
      {
        "format": "Apply Rate Limit: average (over {{.windowSizeInSeconds}} seconds) {{.maxRequestsPerSecond}} msg/sec, shaped, per Authenticated user (concurrency {{.maxConcurrency}}) with {{.blackoutPeriodInSeconds}} sec blackout",
        "condition": "and(endsWith({{.counterName}}, ${request.authenticateduser}), equals({{.shapeRequests}}, true), not(or(equals({{.maxConcurrency}}, 0), isNull({{.maxConcurrency}}))), not(isNull({{.blackoutPeriodInSeconds}})), equals({{.hardLimit}}, false))"
      },
      {
        "format": "Apply Rate Limit: average (over {{.windowSizeInSeconds}} seconds) {{.maxRequestsPerSecond}} msg/sec, shaped, per Client IP (concurrency {{.maxConcurrency}}) with {{.blackoutPeriodInSeconds}} sec blackout",
        "condition": "and(endsWith({{.counterName}}, ${request.tcp.remoteAddress}), equals({{.shapeRequests}}, true), not(or(equals({{.maxConcurrency}}, 0), isNull({{.maxConcurrency}}))), not(isNull({{.blackoutPeriodInSeconds}})), equals({{.hardLimit}}, false))"
      },
      {
        "format": "Apply Rate Limit: average (over {{.windowSizeInSeconds}} seconds) {{.maxRequestsPerSecond}} msg/sec, shaped, per SOAP operation (concurrency {{.maxConcurrency}}) with {{.blackoutPeriodInSeconds}} sec blackout",
        "condition": "and(endsWith({{.counterName}}, ${request.soap.operation}), equals({{.shapeRequests}}, true), not(or(equals({{.maxConcurrency}}, 0), isNull({{.maxConcurrency}}))), not(isNull({{.blackoutPeriodInSeconds}})), equals({{.hardLimit}}, false))"
      },
      {
        "format": "Apply Rate Limit: average (over {{.windowSizeInSeconds}} seconds) {{.maxRequestsPerSecond}} msg/sec, shaped, per SOAP namespace (concurrency {{.maxConcurrency}}) with {{.blackoutPeriodInSeconds}} sec blackout",
        "condition": "and(endsWith({{.counterName}}, ${request.soap.namespace}), equals({{.shapeRequests}}, true), not(or(equals({{.maxConcurrency}}, 0), isNull({{.maxConcurrency}}))), not(isNull({{.blackoutPeriodInSeconds}})), equals({{.hardLimit}}, false))"
      },
      {
        "format": "Apply Rate Limit: average (over {{.windowSizeInSeconds}} seconds) {{.maxRequestsPerSecond}} msg/sec, shaped, per User or client IP (concurrency {{.maxConcurrency}}) with {{.blackoutPeriodInSeconds}} sec blackout",
        "condition": "and(endsWith({{.counterName}}, ${request.clientid}), equals({{.shapeRequests}}, true), not(or(equals({{.maxConcurrency}}, 0), isNull({{.maxConcurrency}}))), not(isNull({{.blackoutPeriodInSeconds}})), equals({{.hardLimit}}, false))"
      },
      {
        "format": "Apply Rate Limit: average (over {{.windowSizeInSeconds}} seconds) {{.maxRequestsPerSecond}} msg/sec, shaped, per Gateway node (concurrency {{.maxConcurrency}}) with {{.blackoutPeriodInSeconds}} sec blackout",
        "condition": "and(contains({{.counterName}}, PRESET), equals({{.shapeRequests}}, true), not(or(equals({{.maxConcurrency}}, 0), isNull({{.maxConcurrency}}))), not(isNull({{.blackoutPeriodInSeconds}})), equals({{.hardLimit}}, false))"
      },
      {
        "format": "Apply Rate Limit: average (over {{.windowSizeInSeconds}} seconds) {{.maxRequestsPerSecond}} msg/sec, shaped, per \"{{.counterName}}\" (concurrency {{.maxConcurrency}}) with {{.blackoutPeriodInSeconds}} sec blackout",
        "condition": "and(true, equals({{.shapeRequests}}, true), not(or(equals({{.maxConcurrency}}, 0), isNull({{.maxConcurrency}}))), not(isNull({{.blackoutPeriodInSeconds}})), equals({{.hardLimit}}, false))"
      },
      {
        "format": "Apply Rate Limit: average (over {{.windowSizeInSeconds}} seconds) {{.maxRequestsPerSecond}} msg/sec, shaped, per Authenticated user (concurrency {{.maxConcurrency}})",
        "condition": "and(endsWith({{.counterName}}, ${request.authenticateduser}), equals({{.shapeRequests}}, true), not(or(equals({{.maxConcurrency}}, 0), isNull({{.maxConcurrency}}))), equals({{.hardLimit}}, false))"
      },
      {
        "format": "Apply Rate Limit: average (over {{.windowSizeInSeconds}} seconds) {{.maxRequestsPerSecond}} msg/sec, shaped, per Client IP (concurrency {{.maxConcurrency}})",
        "condition": "and(endsWith({{.counterName}}, ${request.tcp.remoteAddress}), equals({{.shapeRequests}}, true), not(or(equals({{.maxConcurrency}}, 0), isNull({{.maxConcurrency}}))), equals({{.hardLimit}}, false))"
      },
      {
        "format": "Apply Rate Limit: average (over {{.windowSizeInSeconds}} seconds) {{.maxRequestsPerSecond}} msg/sec, shaped, per SOAP operation (concurrency {{.maxConcurrency}})",
        "condition": "and(endsWith({{.counterName}}, ${request.soap.operation}), equals({{.shapeRequests}}, true), not(or(equals({{.maxConcurrency}}, 0), isNull({{.maxConcurrency}}))), equals({{.hardLimit}}, false))"
      },
      {
        "format": "Apply Rate Limit: average (over {{.windowSizeInSeconds}} seconds) {{.maxRequestsPerSecond}} msg/sec, shaped, per SOAP namespace (concurrency {{.maxConcurrency}})",
        "condition": "and(endsWith({{.counterName}}, ${request.soap.namespace}), equals({{.shapeRequests}}, true), not(or(equals({{.maxConcurrency}}, 0), isNull({{.maxConcurrency}}))), equals({{.hardLimit}}, false))"
      },
      {
        "format": "Apply Rate Limit: average (over {{.windowSizeInSeconds}} seconds) {{.maxRequestsPerSecond}} msg/sec, shaped, per User or client IP (concurrency {{.maxConcurrency}})",
        "condition": "and(endsWith({{.counterName}}, ${request.clientid}), equals({{.shapeRequests}}, true), not(or(equals({{.maxConcurrency}}, 0), isNull({{.maxConcurrency}}))), equals({{.hardLimit}}, false))"
      },
      {
        "format": "Apply Rate Limit: average (over {{.windowSizeInSeconds}} seconds) {{.maxRequestsPerSecond}} msg/sec, shaped, per Gateway node (concurrency {{.maxConcurrency}})",
        "condition": "and(contains({{.counterName}}, PRESET), equals({{.shapeRequests}}, true), not(or(equals({{.maxConcurrency}}, 0), isNull({{.maxConcurrency}}))), equals({{.hardLimit}}, false))"
      },
      {
        "format": "Apply Rate Limit: average (over {{.windowSizeInSeconds}} seconds) {{.maxRequestsPerSecond}} msg/sec, shaped, per \"{{.counterName}}\" (concurrency {{.maxConcurrency}})",
        "condition": "and(equals({{.shapeRequests}}, true), not(or(equals({{.maxConcurrency}}, 0), isNull({{.maxConcurrency}}))), equals({{.hardLimit}}, false))"
      },
      {
        "format": "Apply Rate Limit: average (over {{.windowSizeInSeconds}} seconds) {{.maxRequestsPerSecond}} msg/sec per Authenticated user (concurrency {{.maxConcurrency}}) with {{.blackoutPeriodInSeconds}} sec blackout",
        "condition": "and(endsWith({{.counterName}}, ${request.authenticateduser}), not(or(equals({{.maxConcurrency}}, 0), isNull({{.maxConcurrency}}))), not(isNull({{.blackoutPeriodInSeconds}})), equals({{.hardLimit}}, false))"
      },
      {
        "format": "Apply Rate Limit: average (over {{.windowSizeInSeconds}} seconds) {{.maxRequestsPerSecond}} msg/sec per Client IP (concurrency {{.maxConcurrency}}) with {{.blackoutPeriodInSeconds}} sec blackout",
        "condition": "and(endsWith({{.counterName}}, ${request.tcp.remoteAddress}), not(or(equals({{.maxConcurrency}}, 0), isNull({{.maxConcurrency}}))), not(isNull({{.blackoutPeriodInSeconds}})), equals({{.hardLimit}}, false))"
      },
      {
        "format": "Apply Rate Limit: average (over {{.windowSizeInSeconds}} seconds) {{.maxRequestsPerSecond}} msg/sec per SOAP operation (concurrency {{.maxConcurrency}}) with {{.blackoutPeriodInSeconds}} sec blackout",
        "condition": "and(endsWith({{.counterName}}, ${request.soap.operation}), not(or(equals({{.maxConcurrency}}, 0), isNull({{.maxConcurrency}}))), not(isNull({{.blackoutPeriodInSeconds}})), equals({{.hardLimit}}, false))"
      },
      {
        "format": "Apply Rate Limit: average (over {{.windowSizeInSeconds}} seconds) {{.maxRequestsPerSecond}} msg/sec per SOAP namespace (concurrency {{.maxConcurrency}}) with {{.blackoutPeriodInSeconds}} sec blackout",
        "condition": "and(endsWith({{.counterName}}, ${request.soap.namespace}), not(or(equals({{.maxConcurrency}}, 0), isNull({{.maxConcurrency}}))), not(isNull({{.blackoutPeriodInSeconds}})), equals({{.hardLimit}}, false))"
      },
      {
        "format": "Apply Rate Limit: average (over {{.windowSizeInSeconds}} seconds) {{.maxRequestsPerSecond}} msg/sec per User or client IP (concurrency {{.maxConcurrency}}) with {{.blackoutPeriodInSeconds}} sec blackout",
        "condition": "and(endsWith({{.counterName}}, ${request.clientid}), not(or(equals({{.maxConcurrency}}, 0), isNull({{.maxConcurrency}}))), not(isNull({{.blackoutPeriodInSeconds}})), equals({{.hardLimit}}, false))"
      },
      {
        "format": "Apply Rate Limit: average (over {{.windowSizeInSeconds}} seconds) {{.maxRequestsPerSecond}} msg/sec per Gateway node (concurrency {{.maxConcurrency}}) with {{.blackoutPeriodInSeconds}} sec blackout",
        "condition": "and(contains({{.counterName}}, PRESET), not(or(equals({{.maxConcurrency}}, 0), isNull({{.maxConcurrency}}))), not(isNull({{.blackoutPeriodInSeconds}})), equals({{.hardLimit}}, false))"
      },
      {
        "format": "Apply Rate Limit: average (over {{.windowSizeInSeconds}} seconds) {{.maxRequestsPerSecond}} msg/sec per \"{{.counterName}}\" (concurrency {{.maxConcurrency}}) with {{.blackoutPeriodInSeconds}} sec blackout",
        "condition": "and(true, not(or(equals({{.maxConcurrency}}, 0), isNull({{.maxConcurrency}}))), not(isNull({{.blackoutPeriodInSeconds}})), equals({{.hardLimit}}, false))"
      },
      {
        "format": "Apply Rate Limit: average (over {{.windowSizeInSeconds}} seconds) {{.maxRequestsPerSecond}} msg/sec per Authenticated user (concurrency {{.maxConcurrency}})",
        "condition": "and(endsWith({{.counterName}}, ${request.authenticateduser}), not(or(equals({{.maxConcurrency}}, 0), isNull({{.maxConcurrency}}))), equals({{.hardLimit}}, false))"
      },
      {
        "format": "Apply Rate Limit: average (over {{.windowSizeInSeconds}} seconds) {{.maxRequestsPerSecond}} msg/sec per Client IP (concurrency {{.maxConcurrency}})",
        "condition": "and(endsWith({{.counterName}}, ${request.tcp.remoteAddress}), not(or(equals({{.maxConcurrency}}, 0), isNull({{.maxConcurrency}}))), equals({{.hardLimit}}, false))"
      },
      {
        "format": "Apply Rate Limit: average (over {{.windowSizeInSeconds}} seconds) {{.maxRequestsPerSecond}} msg/sec per SOAP operation (concurrency {{.maxConcurrency}})",
        "condition": "and(endsWith({{.counterName}}, ${request.soap.operation}), not(or(equals({{.maxConcurrency}}, 0), isNull({{.maxConcurrency}}))), equals({{.hardLimit}}, false))"
      },
      {
        "format": "Apply Rate Limit: average (over {{.windowSizeInSeconds}} seconds) {{.maxRequestsPerSecond}} msg/sec per SOAP namespace (concurrency {{.maxConcurrency}})",
        "condition": "and(endsWith({{.counterName}}, ${request.soap.namespace}), not(or(equals({{.maxConcurrency}}, 0), isNull({{.maxConcurrency}}))), equals({{.hardLimit}}, false))"
      },
      {
        "format": "Apply Rate Limit: average (over {{.windowSizeInSeconds}} seconds) {{.maxRequestsPerSecond}} msg/sec per User or client IP (concurrency {{.maxConcurrency}})",
        "condition": "and(endsWith({{.counterName}}, ${request.clientid}), not(or(equals({{.maxConcurrency}}, 0), isNull({{.maxConcurrency}}))), equals({{.hardLimit}}, false))"
      },
      {
        "format": "Apply Rate Limit: average (over {{.windowSizeInSeconds}} seconds) {{.maxRequestsPerSecond}} msg/sec per Gateway node (concurrency {{.maxConcurrency}})",
        "condition": "and(contains({{.counterName}}, PRESET), not(or(equals({{.maxConcurrency}}, 0), isNull({{.maxConcurrency}}))), equals({{.hardLimit}}, false))"
      },
      {
        "format": "Apply Rate Limit: average (over {{.windowSizeInSeconds}} seconds) {{.maxRequestsPerSecond}} msg/sec per \"{{.counterName}}\" (concurrency {{.maxConcurrency}})",
        "condition": "and(true, not(or(equals({{.maxConcurrency}}, 0), isNull({{.maxConcurrency}}))), equals({{.hardLimit}}, false))"
      }
    ],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/RateLimit",
        "title": "Apply Rate Limit",
        "properties": {
          "__limitEach": {
            "type": "string",
            "enum": [
              "User or client IP",
              "Authenticated user",
              "Client IP",
              "SOAP operation",
              "SOAP namespace",
              "Gateway node",
              "Custom"
            ]
          },
          "__limitExceeded": {
            "type": "string",
            "enum": [
              "Throttle",
              "Shape",
              "Log only"
            ]
          },
          "__maximumConcurrentRequest": {
            "type": "string",
            "enum": [
              "Unlimited",
              "Limit concurrent requests"
            ]
          },
          "__blackout": {
            "type": "boolean"
          },
          "counterName": {
            "type": "string"
          },
          "blackoutPeriodInSeconds": {
            "type": "string"
          },
          "hardLimit": {
            "type": "boolean"
          },
          "logOnly": {
            "type": "boolean"
          },
          "maxConcurrency": {
            "type": "string"
          },
          "maxRequestsPerSecond": {
            "type": "string"
          },
          "shapeRequests": {
            "type": "boolean"
          },
          "splitConcurrencyLimitAcrossNodes": {
            "type": "boolean"
          },
          "splitRateLimitAcrossNodes": {
            "type": "boolean"
          },
          "windowSizeInSeconds": {
            "type": "string"
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Apply Rate Limit",
        "elements": [
          {
            "type": "Group",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "rate-limit-header-group"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/maxRequestsPerSecond",
                "options": {
                  "markAsRequired": true
                },
                "i18n": "maxRequestsPerSecond"
              },
              {
                "type": "Control",
                "scope": "#/properties/splitRateLimitAcrossNodes",
                "options": {
                  "markAsRequired": true
                },
                "i18n": "splitRateLimitAcrossNodes"
              }
            ]
          },
          {
            "type": "Control",
            "scope": "#/properties/hardLimit",
            "options": {
              "markAsRequired": true
            },
            "i18n": "hardLimit"
          },
          {
            "type": "Control",
            "scope": "#/properties/windowSizeInSeconds",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "common-conditional-field",
              "markAsRequired": true
            },
            "rule": {
              "effect": "SHOW",
              "condition": {
                "scope": "#/properties/hardLimit",
                "schema": {
                  "const": true
                }
              }
            },
            "i18n": "windowSizeInSeconds"
          },
          {
            "type": "Control",
            "scope": "#/properties/__limitEach",
            "options": {
              "markAsRequired": true
            },
            "i18n": "limitEach"
          },
          {
            "type": "Control",
            "scope": "#/properties/counterName",
            "options": {
              "markAsRequired": true
            },
            "i18n": "custom",
            "rule": {
              "effect": "SHOW",
              "condition": {
                "scope": "#/properties/__limitEach",
                "schema": {
                  "const": "Custom"
                }
              }
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/__limitExceeded",
            "options": {
              "format": "radio",
              "markAsRequired": true,
              "useRowLayout": false
            },
            "i18n": "limitExceeded"
          },
          {
            "type": "Control",
            "scope": "#/properties/__blackout",
            "options": {
              "markAsRequired": true
            },
            "rule": {
              "effect": "HIDE",
              "condition": {
                "scope": "#/properties/__limitExceeded",
                "schema": {
                  "const": "Log only"
                }
              }
            },
            "i18n": "blackout"
          },
          {
            "type": "Control",
            "scope": "#/properties/blackoutPeriodInSeconds",
            "options": {
              "markAsRequired": true,
              "customClass": "common-conditional-field"
            },
            "rule": {
              "effect": "SHOW",
              "condition": {
                "scope": "#/properties/__blackout",
                "schema": {
                  "const": true
                }
              }
            },
            "i18n": "blackoutPeriodInSeconds"
          },
          {
            "type": "Control",
            "scope": "#/properties/__maximumConcurrentRequest",
            "options": {
              "format": "radio",
              "markAsRequired": true,
              "useRowLayout": false
            },
            "i18n": "maximumConcurrentRequest"
          },
          {
            "type": "Group",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "common-conditional-field"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/maxConcurrency",
                "options": {
                  "markAsRequired": true
                },
                "rule": {
                  "effect": "SHOW",
                  "condition": {
                    "scope": "#/properties/__maximumConcurrentRequest",
                    "schema": {
                      "const": "Limit concurrent requests"
                    }
                  }
                },
                "i18n": "maxConcurrency"
              },
              {
                "type": "Control",
                "scope": "#/properties/splitConcurrencyLimitAcrossNodes",
                "options": {
                  "markAsRequired": true
                },
                "i18n": "splitConcurrencyLimitAcrossNodes",
                "rule": {
                  "effect": "SHOW",
                  "condition": {
                    "scope": "#/properties/__maximumConcurrentRequest",
                    "schema": {
                      "const": "Limit concurrent requests"
                    }
                  }
                }
              }
            ]
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/RateLimit",
        "locale": "en",
        "content": {
          "blackoutPeriodInSeconds.label": "Blackout duration (seconds)",
          "custom.label": "Custom",
          "hardLimit.label": "Spread limit over window",
          "logOnly.label": "Log only",
          "maxConcurrency.label": "Max Concurrent Requests",
          "maxRequestsPerSecond.label": "Max requests per second",
          "shapeRequests.label": "Shape requests",
          "splitConcurrencyLimitAcrossNodes.label": "Cluster wide",
          "splitRateLimitAcrossNodes.label": "Cluster wide",
          "windowSizeInSeconds.label": "Window Duration (seconds)",
          "limitEach.label": "Limit each",
          "limitEach.User or client IP": "User or client IP",
          "limitEach.Authenticated user": "Authenticated user",
          "limitEach.Client IP": "Client IP",
          "limitEach.SOAP operation": "SOAP operation",
          "limitEach.SOAP namespace": "SOAP namespace",
          "limitEach.Gateway node": "Gateway node",
          "limitEach.Custom": "Custom",
          "limitExceeded.label": "When limit exceeded",
          "limitExceeded.Throttle": "Throttle",
          "limitExceeded.Shape": "Shape",
          "limitExceeded.Log only": "Log only",
          "maximumConcurrentRequest.label": "Maximum concurrent requests",
          "maximumConcurrentRequest.Unlimited": "Unlimited",
          "maximumConcurrentRequest.Limit concurrent requests": "Limit concurrent requests"
        }
      }
    ]
  },
  {
    "configName": "RateLimitQuery",
    "displayNameFormats": [
      {
        "format": "Query Rate Limit for limit per \"{{.counterName}}\"",
        "condition": "true"
      }
    ],
    "refVariables": [
      {
        "fieldPath": ".variablePrefix",
        "refType": "OUT",
        "dataType": "other",
        "prefixed": true
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".counter.name",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".counter.requestsremaining",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".counter.concurrency",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".counter.blackoutmillisremaining",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".",
        "suffix": "counter.name",
        "refType": "OUT",
        "dataType": "string",
        "condition": "isNull({{.variablePrefix}})"
      },
      {
        "fieldPath": ".",
        "suffix": "counter.requestsremaining",
        "refType": "OUT",
        "dataType": "string",
        "condition": "isNull({{.variablePrefix}})"
      },
      {
        "fieldPath": ".",
        "suffix": "counter.concurrency",
        "refType": "OUT",
        "dataType": "string",
        "condition": "isNull({{.variablePrefix}})"
      },
      {
        "fieldPath": ".",
        "suffix": "counter.blackoutmillisremaining",
        "refType": "OUT",
        "dataType": "string",
        "condition": "isNull({{.variablePrefix}})"
      }
    ],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/RateLimitQuery",
        "title": "Query Rate Limit",
        "properties": {
          "counterName": {
            "type": "string"
          },
          "variablePrefix": {
            "type": "string"
          }
        }
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/RateLimitQuery/Main",
        "title": "Query Rate Limit",
        "properties": {
          "RateLimitQuery": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/RateLimitQuery"
          },
          ".properties": {
            "type": "object",
            "properties": {
              ".enabled": {
                "type": "boolean",
                "default": true
              },
              ".left.comment": {
                "type": "string"
              },
              ".right.comment": {
                "type": "string"
              }
            }
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Query Rate Limit",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/counterName",
            "options": {
              "markAsRequired": true
            },
            "i18n": "counterName"
          },
          {
            "type": "Control",
            "scope": "#/properties/variablePrefix",
            "i18n": "variablePrefix",
            "options": {
              "contextVariable": true,
              "variableType": "output",
              "allowedDataTypes": []
            }
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/RateLimitQuery",
        "locale": "en",
        "content": {
          "counterName.label": "Existing Counter Name",
          "variablePrefix.label": "Variable Prefix"
        }
      }
    ]
  },
  {
    "configName": "RefreshOAuth2Token",
    "refVariables": [
      {
        "fieldPath": ".variablePrefix",
        "refType": "OUT",
        "dataType": "other",
        "multivalued": false,
        "prefixed": true,
        "settable": false
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Refresh OAuth 2.0 Token",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/variablePrefix",
            "i18n": "variablePrefix",
            "options": {
              "markAsRequired": true,
              "contextVariable": true,
              "variableType": "output",
              "allowedDataTypes": []
            }
          },
          {
            "type": "Group",
            "label": "Authorization Server",
            "isExpanded": true,
            "options": {
              "groupType": "Accordion"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/tokenEndpoint",
                "i18n": "tokenEndpoint",
                "options": {
                  "markAsRequired": true
                }
              },
              {
                "type": "Group",
                "i18n": "client",
                "options": {
                  "groupType": "wrapCustomClass",
                  "customClass": "sub-header"
                },
                "elements": [
                  {
                    "type": "Group",
                    "scope": "#/properties/isClientAuthHttpBasic",
                    "options": {
                      "format": "radio",
                      "useRowLayout": false
                    },
                    "i18n": "isClientAuthHttpBasic"
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/clientId",
                    "i18n": "clientId",
                    "options": {
                      "markAsRequired": true
                    }
                  },
                  {
                    "type": "Group",
                    "scope": "#/properties/__clientSecret",
                    "options": {
                      "format": "radio",
                      "useRowLayout": false,
                      "uiSchemasMap": {
                        "text": {
                          "type": "VerticalLayout",
                          "elements": [
                            {
                              "type": "Control",
                              "i18n": "clientSecretPlainText",
                              "scope": "#/properties/clientSecretPlainText",
                              "options": {
                                "markAsRequired": true,
                                "customClass": "client-group",
                                "format": "password"
                              }
                            }
                          ]
                        },
                        "password": {
                          "type": "Group",
                          "options": {
                            "groupType": "wrapCustomClass",
                            "customClass": "client-group"
                          },
                          "elements": [
                            {
                              "type": "Control",
                              "i18n": "clientSecretSecurePasswordGoid",
                              "scope": "#/properties/clientSecretSecurePasswordGoid",
                              "options": {
                                "markAsRequired": true
                              }
                            },
                            {
                              "type": "Control",
                              "i18n": "__paswordBtn",
                              "scope": "#/properties/__paswordBtn",
                              "options": {
                                "controlType": "Button",
                                "variant": "outlined",
                                "readonly": true
                              }
                            }
                          ]
                        }
                      }
                    },
                    "i18n": "__clientSecret"
                  }
                ]
              },
              {
                "type": "Group",
                "i18n": "requestParameters",
                "options": {
                  "groupType": "wrapCustomClass",
                  "customClass": "sub-header"
                },
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/refreshToken",
                    "i18n": "refreshToken",
                    "options": {
                      "markAsRequired": true
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/scope",
                    "i18n": "scope"
                  }
                ]
              }
            ]
          },
          {
            "type": "Group",
            "label": "Headers",
            "isExpanded": true,
            "options": {
              "groupType": "Accordion"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/headers",
                "i18n": "headers",
                "options": {
                  "nameValueList": true,
                  "detail": {
                    "type": "VerticalLayout",
                    "elements": [
                      {
                        "type": "Control",
                        "scope": "#/properties/name",
                        "i18n": "name",
                        "options": {
                          "markAsRequired": true
                        }
                      },
                      {
                        "type": "Control",
                        "scope": "#/properties/value",
                        "i18n": "value",
                        "options": {
                          "markAsRequired": true
                        }
                      }
                    ]
                  }
                }
              }
            ]
          }
        ]
      }
    ],
    "configSchemaPatches": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/RefreshOAuth2Token",
        "patches": [
          {
            "op": "add",
            "path": "/properties/isClientAuthHttpBasic/enum",
            "value": [
              true,
              false
            ]
          },
          {
            "op": "add",
            "path": "/properties/isClientAuthHttpBasic/default",
            "value": true
          },
          {
            "op": "add",
            "path": "/properties/__clientSecret",
            "value": {
              "type": "string",
              "enum": [
                "text",
                "password"
              ],
              "default": "text"
            }
          },
          {
            "op": "add",
            "path": "/properties/__paswordBtn",
            "value": {
              "type": "string"
            }
          },
          {
            "op": "replace",
            "path": "/properties/variablePrefix/default",
            "value": ""
          },
          {
            "op": "replace",
            "path": "/properties/clientSecretSecurePasswordGoid",
            "value": {
              "type": "string",
              "default": ""
            }
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/IdentityAttributes",
        "locale": "en",
        "content": {
          "tokenEndpoint.label": "Token Endpoint",
          "variablePrefix.label": "Variable Prefix",
          "client": "Client Authentication",
          "clientId.label": "Client ID",
          "isClientAuthHttpBasic.label": "Authentication Scheme",
          "isClientAuthHttpBasic.true": "HTTP Basic",
          "isClientAuthHttpBasic.false": "Request Body",
          "__clientSecret.label": "Client Secret",
          "__clientSecret.text": "Text",
          "__clientSecret.password": "Password Store",
          "__paswordBtn": "Manage Passowrds",
          "requestParameters": "Request Parameters",
          "refreshToken": "Refresh Token",
          "scope": "Scope",
          "error.duplicate.field": "The header already exists",
          "clientSecretPlainText.label": "Password",
          "clientSecretSecurePasswordGoid.label": "Label"
        }
      }
    ]
  },
  {
    "configName": "Regex",
    "displayNameFormats": [
      {
        "format": "Evaluate Regular Expression - {{.regexName}}",
        "condition": "not(isNull({{.regexName}}))"
      },
      {
        "format": "Evaluate Regular Expression - {{.regex}}",
        "condition": "and(not(isNull({{.regex}})), isNull({{.regexName}}))"
      },
      {
        "format": "Evaluate Regular Expression",
        "condition": "true"
      }
    ],
    "refVariables": [
      {
        "fieldPath": ".regexVar",
        "refType": "OUT",
        "dataType": "other",
        "prefixed": true
      },
      {
        "fieldPath": ".captureVar",
        "refType": "OUT",
        "dataType": "other",
        "prefixed": true
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Evaluate Regular Expression",
        "elements": [
          {
            "type": "Group",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "source-group"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/target",
                "options": {
                  "messageTarget": true
                }
              },
              {
                "type": "Control",
                "i18n": "regexName",
                "scope": "#/properties/regexName"
              },
              {
                "type": "Control",
                "scope": "#/properties/regex",
                "i18n": "regex",
                "options": {
                  "markAsRequired": true
                }
              },
              {
                "type": "Control",
                "i18n": "caseInsensitive",
                "scope": "#/properties/caseInsensitive"
              },
              {
                "type": "Control",
                "i18n": "regexVar",
                "scope": "#/properties/regexVar",
                "options": {
                  "contextVariable": true,
                  "variableType": "output",
                  "allowedDataTypes": []
                }
              },
              {
                "type": "Group",
                "i18n": "action",
                "options": {
                  "groupType": "wrapCustomClass",
                  "customClass": "action-group"
                },
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/__actionOptions",
                    "i18n": "actionOptions",
                    "label": "",
                    "options": {
                      "format": "radio",
                      "useRowLayout": false,
                      "uiSchemasMap": {
                        "DONT_PROCEED_PATTERN": {
                          "type": "Group",
                          "options": {
                            "groupType": "wrapCustomClass",
                            "customClass": "common-no-label-input"
                          },
                          "elements": [
                            {
                              "type": "Control",
                              "scope": "#/properties/__dontProceedOption",
                              "i18n": "dontProceedOption"
                            }
                          ]
                        },
                        "MATCH_REPLACE": {
                          "type": "VerticalLayout",
                          "elements": [
                            {
                              "type": "Control",
                              "scope": "#/properties/replacement"
                            },
                            {
                              "type": "Control",
                              "scope": "#/properties/__replaceOption",
                              "i18n": "replace",
                              "options": {
                                "subUiSchema": {
                                  "type": "Control",
                                  "i18n": "replaceRepeatCount",
                                  "scope": "#/properties/replaceRepeatCount",
                                  "options": {
                                    "minValue": 0
                                  }
                                }
                              }
                            }
                          ]
                        }
                      }
                    }
                  },
                  {
                    "type": "Control",
                    "i18n": "captureVar",
                    "scope": "#/properties/captureVar",
                    "options": {
                      "contextVariable": true,
                      "variableType": "output",
                      "allowedDataTypes": []
                    }
                  },
                  {
                    "type": "Control",
                    "i18n": "includeEntireExpressionCapture",
                    "scope": "#/properties/includeEntireExpressionCapture"
                  }
                ]
              },
              {
                "type": "Group",
                "i18n": "mime",
                "options": {
                  "groupType": "wrapCustomClass",
                  "customClass": "action-group"
                },
                "elements": [
                  {
                    "type": "Control",
                    "i18n": "mimePart",
                    "scope": "#/properties/mimePart"
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/__characterEncoding",
                    "i18n": "characterEncoding",
                    "options": {
                      "format": "radio",
                      "useRowLayout": false,
                      "uiSchemasMap": {
                        "Override": {
                          "type": "Group",
                          "options": {
                            "groupType": "wrapCustomClass",
                            "customClass": "common-no-label-input"
                          },
                          "elements": [
                            {
                              "type": "Control",
                              "scope": "#/properties/encoding",
                              "label": false
                            }
                          ]
                        }
                      }
                    }
                  }
                ]
              },
              {
                "type": "Group",
                "label": "Test",
                "options": {
                  "groupType": "Accordion"
                },
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/__testInput",
                    "options": {
                      "multiline": true,
                      "rows": 3
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/__testButton",
                    "i18n": "assertion.testButton.text",
                    "options": {
                      "controlType": "Button",
                      "variant": "outlined"
                    },
                    "rule": {
                      "effect": "DISABLE",
                      "condition": {
                        "scope": "#/properties/__testInput",
                        "schema": {
                          "maxLength": 0
                        }
                      }
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/__testOutput",
                    "i18n": "testOutput",
                    "options": {
                      "textHighlightEditor": true
                    }
                  }
                ]
              }
            ]
          }
        ]
      }
    ],
    "configSchemaPatches": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/Regex",
        "patches": [
          {
            "op": "add",
            "path": "/properties/__replaceOption",
            "value": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "op": "replace",
            "path": "/properties/mimePart",
            "value": {
              "type": "integer"
            }
          },
          {
            "op": "add",
            "path": "/properties/__testInput",
            "value": {
              "type": "string"
            }
          },
          {
            "op": "add",
            "path": "/properties/__testButton",
            "value": {
              "type": "string"
            }
          },
          {
            "op": "add",
            "path": "/properties/__testOutput",
            "value": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "text": {
                    "type": "string"
                  },
                  "highlight": {
                    "type": "boolean"
                  }
                }
              }
            }
          },
          {
            "op": "add",
            "path": "/properties/__actionOptions",
            "value": {
              "type": "string",
              "enum": [
                "PROCEED_PATTERN",
                "DONT_PROCEED_PATTERN",
                "MATCH_REPLACE"
              ],
              "default": "PROCEED_PATTERN"
            }
          },
          {
            "op": "add",
            "path": "/properties/__dontProceedOption",
            "value": {
              "type": "boolean"
            }
          },
          {
            "op": "add",
            "path": "/properties/__characterEncoding",
            "value": {
              "type": "string",
              "enum": [
                "Default",
                "Override"
              ],
              "default": "Default"
            }
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/Regex",
        "locale": "en",
        "content": {
          "regexName.label": "UI Display Name",
          "regex.label": "Regular Expression",
          "caseInsensitive.label": "Ignore case",
          "regexVar.label": "Context Variable (Expression at Runtime)",
          "action": "Action",
          "dontProceedOption.label": "Stop searching after first sucessful match",
          "replace.label": "Repeat successful replacements",
          "replaceRepeatCount.label": "Iteration Limit",
          "captureVar.label": "Context Variable",
          "includeEntireExpressionCapture.label": "Include Matched Substring In Capture",
          "mime": "MIME/Multipart Messages",
          "mimePart.label": "MIME Part",
          "characterEncoding.label": "Character Encoding",
          "otherTargetMessageVariable": "Message Variable",
          "actionOptions": "Action",
          "actionOptions.PROCEED_PATTERN": "Proceed if pattern matches",
          "actionOptions.DONT_PROCEED_PATTERN": "Don't proceed if pattern matches",
          "actionOptions.MATCH_REPLACE": "Match and replace (always proceed)",
          "testOutput": "Test Output",
          "mimePart.error": "MIME part must be number between 0 and 9999",
          "replaceRepeatCount.error": "Iteration Limit must be number between 0 and 9999"
        }
      }
    ]
  },
  {
    "configName": "RemoteDomainIdentityInjection",
    "displayNameFormats": [
      {
        "format": "Require Remote Domain Identity",
        "condition": "true"
      }
    ],
    "refEntities": [],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Require Remote Domain Identity",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/variablePrefix",
            "i18n": "variablePrefix",
            "options": {
              "markAsRequired": true
            }
          }
        ]
      }
    ],
    "configSchemaPatches": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/RemoteDomainIdentityInjection",
        "patches": [
          {
            "op": "remove",
            "path": "/properties/variablePrefix/default"
          },
          {
            "op": "add",
            "path": "/properties/variablePrefix/maxLength",
            "value": 40
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/RemoteDomainIdentityInjection",
        "locale": "en",
        "content": {
          "variablePrefix.label": "Context Variable Prefix"
        }
      }
    ]
  },
  {
    "configName": "RemoteIpRange",
    "displayNameFormats": [
      {
        "format": "Forbid access to IP Address Range [{{.startIp}}/{{.networkMask}}]",
        "condition": "and(equals({{.allowRange}}, false), not(isNull({{.startIp}})), not(isNull({{.networkMask}})))"
      },
      {
        "format": "Forbid access to IP Address Range [{{.startIp}}/24]",
        "condition": "and(equals({{.allowRange}}, false), not(isNull({{.startIp}})), isNull({{.networkMask}}))"
      },
      {
        "format": "Forbid access to IP Address Range [192.168.1.0/{{.networkMask}}]",
        "condition": "and(equals({{.allowRange}}, false), isNull({{.startIp}}), not(isNull({{.networkMask}})))"
      },
      {
        "format": "Forbid access to IP Address Range [192.168.1.0/24]",
        "condition": "and(equals({{.allowRange}}, false), isNull({{.startIp}}), isNull({{.networkMask}}))"
      },
      {
        "format": "Allow access to IP Address Range [{{.startIp}}/{{.networkMask}}]",
        "condition": "and(not(isNull({{.startIp}})), not(isNull({{.networkMask}})))"
      },
      {
        "format": "Allow access to IP Address Range [{{.startIp}}/24]",
        "condition": "and(not(isNull({{.startIp}})), isNull({{.networkMask}}))"
      },
      {
        "format": "Allow access to IP Address Range [192.168.1.0/{{.networkMask}}]",
        "condition": "and(isNull({{.startIp}}), not(isNull({{.networkMask}})))"
      },
      {
        "format": "Allow access to IP Address Range [192.168.1.0/24]",
        "condition": "and(isNull({{.startIp}}), isNull({{.networkMask}}))"
      }
    ],
    "refVariables": [
      {
        "fieldPath": ".ipSourceContextVariable",
        "refType": "IN",
        "dataType": "other"
      }
    ],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/RemoteIpRange",
        "title": "Restrict Access to IP Address Range",
        "properties": {
          "allowRange": {
            "type": "boolean",
            "default": true
          },
          "ipSourceContextVariable": {
            "type": "string"
          },
          "networkMask": {
            "type": "string"
          },
          "startIp": {
            "type": "string"
          },
          "__allowRange": {
            "type": "string",
            "default": "AUTH",
            "enum": [
              "AUTH",
              "FORBID"
            ]
          },
          "__ipSourceOption": {
            "type": "string",
            "default": "TCP",
            "enum": [
              "TCP",
              "CONTEXT_VAR"
            ]
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Restrict Access to IP Address Range",
        "elements": [
          {
            "type": "Control",
            "i18n": "__allowRange",
            "scope": "#/properties/__allowRange",
            "options": {
              "markAsRequired": true
            }
          },
          {
            "type": "Group",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "remote-ip-range-wrapper"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/startIp",
                "i18n": "startIp",
                "options": {
                  "markAsRequired": true
                }
              },
              {
                "type": "Label",
                "text": "/"
              },
              {
                "type": "Control",
                "scope": "#/properties/networkMask",
                "i18n": "networkMask",
                "options": {
                  "markAsRequired": true
                }
              }
            ]
          },
          {
            "type": "Control",
            "scope": "#/properties/__ipSourceOption",
            "i18n": "ipSourceOption",
            "options": {
              "format": "radio",
              "useRowLayout": false
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/ipSourceContextVariable",
            "label": false,
            "options": {
              "markAsRequired": true,
              "customClass": "common-conditional-field"
            },
            "rule": {
              "effect": "SHOW",
              "condition": {
                "scope": "#/properties/__ipSourceOption",
                "schema": {
                  "const": "CONTEXT_VAR"
                }
              }
            }
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/RemoteIpRange",
        "locale": "en",
        "content": {
          "startIp.label": "IP Address",
          "networkMask.label": "Mask",
          "__allowRange.label": "Action",
          "__allowRange.AUTH": "Authorize",
          "__allowRange.FORBID": "Forbid",
          "ipSourceOption.label": "Requestor IP Address Source",
          "ipSourceOption.TCP": "TCP",
          "ipSourceOption.CONTEXT_VAR": "Context Variable",
          "startIp.error": "Invalid address",
          "networkMask.error": "Invalid mask out of the range 1 ~ 32 / IPv4, 1 ~ 128 / IPv6",
          "ipSourceContextVariable.error": "The source for the requestor IP should either be TCP or be a context variable"
        }
      }
    ]
  },
  {
    "configName": "RemoveElement",
    "displayNameFormats": [
      {
        "format": "Remove XML Element(s) {{.elementFromVariable}}",
        "condition": "isNull({{.insertedElementLocation}})"
      },
      {
        "format": "Add XML Element(s) {{.elementToInsertVariable}} as First Child of {{.elementFromVariable}}",
        "condition": "and(not(isNull({{.elementToInsertVariable}})),equals({{.insertedElementLocation}}, FIRST_CHILD))"
      },
      {
        "format": "Add XML Element(s) {{.elementToInsertVariable}} as Last Child of {{.elementFromVariable}}",
        "condition": "and(not(isNull({{.elementToInsertVariable}})),equals({{.insertedElementLocation}}, LAST_CHILD))"
      },
      {
        "format": "Add XML Element(s) {{.elementToInsertVariable}} as Previous Sibling of {{.elementFromVariable}}",
        "condition": "and(not(isNull({{.elementToInsertVariable}})),equals({{.insertedElementLocation}}, PREVIOUS_SIBLING))"
      },
      {
        "format": "Add XML Element(s) {{.elementToInsertVariable}} as Next Sibling of {{.elementFromVariable}}",
        "condition": "and(not(isNull({{.elementToInsertVariable}})),equals({{.insertedElementLocation}}, NEXT_SIBLING))"
      }
    ],
    "refVariables": [
      {
        "fieldPath": ".elementFromVariable",
        "refType": "IN",
        "dataType": "other"
      },
      {
        "fieldPath": ".elementToInsertVariable",
        "refType": "IN",
        "dataType": "other"
      }
    ],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/RemoveElement",
        "title": "Add or Remove XML Element(s)",
        "properties": {
          "__element": {
            "type": "string",
            "enum": [
              "REMOVE_ELEMENT",
              "ADD_NEW_ELEMENT"
            ]
          },
          "elementFromVariable": {
            "type": "string"
          },
          "elementToInsertVariable": {
            "type": "string"
          },
          "insertedElementLocation": {
            "type": "string",
            "enum": [
              "FIRST_CHILD",
              "LAST_CHILD",
              "PREVIOUS_SIBLING",
              "NEXT_SIBLING"
            ]
          },
          "otherTargetMessageVariable": {
            "type": "string"
          },
          "target": {
            "type": "string",
            "enum": [
              "REQUEST",
              "RESPONSE",
              "OTHER"
            ]
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Add or Remove XML Element(s)",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/target",
            "i18n": "target",
            "options": {
              "required": true,
              "format": "radio",
              "useRowLayout": false
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/otherTargetMessageVariable",
            "i18n": "contextVariable",
            "options": {
              "required": true,
              "markAsRequired": true,
              "customClass": "common-conditional-field"
            },
            "rule": {
              "effect": "SHOW",
              "condition": {
                "scope": "#/properties/target",
                "schema": {
                  "const": "OTHER"
                }
              }
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/elementFromVariable",
            "i18n": "elementFromVariable",
            "options": {
              "markAsRequired": true,
              "contextVariable": true,
              "variableType": "input",
              "allowedDataTypes": []
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/__element",
            "i18n": "element"
          },
          {
            "type": "Group",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "remove-element-add-element"
            },
            "elements": [
              {
                "type": "Label",
                "text": "addElement"
              },
              {
                "type": "Control",
                "scope": "#/properties/insertedElementLocation",
                "i18n": "insertedElementLocation",
                "label": false
              },
              {
                "type": "Label",
                "text": "removeElement"
              }
            ],
            "rule": {
              "effect": "SHOW",
              "condition": {
                "scope": "#/properties/__element",
                "schema": {
                  "const": "ADD_NEW_ELEMENT"
                }
              }
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/elementToInsertVariable",
            "i18n": "elementToInsertVariable",
            "rule": {
              "effect": "SHOW",
              "condition": {
                "scope": "#/properties/__element",
                "schema": {
                  "const": "ADD_NEW_ELEMENT"
                }
              }
            },
            "options": {
              "markAsRequired": true,
              "contextVariable": true,
              "variableType": "input",
              "allowedDataTypes": []
            }
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/RemoveElement",
        "locale": "en",
        "content": {
          "contextVariable.label": "Context Variable",
          "target.label": "Message Target",
          "elementFromVariable.label": "Variable Name of Existing Element",
          "elementToInsertVariable.label": "Variable Name of New Element",
          "target.REQUEST": "Request",
          "target.RESPONSE": "Response",
          "target.OTHER": "Other",
          "element.REMOVE_ELEMENT": "Remove Element from Document",
          "element.ADD_NEW_ELEMENT": "Add New Element",
          "insertedElementLocation.FIRST_CHILD": "First Child",
          "insertedElementLocation.LAST_CHILD": "Last Child",
          "insertedElementLocation.PREVIOUS_SIBLING": "Previous Sibling",
          "insertedElementLocation.NEXT_SIBLING": "Next Sibling",
          "element.label": "Action",
          "addElement": "Add element as",
          "removeElement": "of existing element"
        }
      }
    ]
  },
  {
    "configName": "ReplaceTagContent",
    "displayNameFormats": [
      {
        "format": "Replace {{.searchFor}} in {{.tagsToSearch}} with",
        "condition": "and(not(isNull({{.searchFor}})), isEmpty({{.replaceWith}}) )"
      },
      {
        "format": "Replace {{.searchFor}} in {{.tagsToSearch}} with {{.replaceWith}}",
        "condition": "and(not(isNull({{.searchFor}})), not(isNull({{.replaceWith}})) )"
      },
      {
        "format": "Replace Tag Content",
        "condition": "true"
      }
    ],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/ReplaceTagContent",
        "title": "Replace Tag Content",
        "properties": {
          "caseSensitive": {
            "type": "boolean",
            "default": true
          },
          "__caseSensitiveVal": {
            "type": "boolean",
            "default": false
          },
          "otherTargetMessageVariable": {
            "type": "string"
          },
          "replaceWith": {
            "type": "string"
          },
          "searchFor": {
            "type": "string"
          },
          "tagsToSearch": {
            "type": "string"
          },
          "target": {
            "type": "string",
            "enum": [
              "REQUEST",
              "RESPONSE",
              "OTHER"
            ],
            "default": "REQUEST"
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Replace Tag Content",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/target",
            "options": {
              "messageTarget": true,
              "otherTargetMessageVariableLabel": "assertion.common.target.otherTargetContextVariable"
            }
          },
          {
            "type": "Group",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "searchfor-group"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/searchFor",
                "options": {
                  "markAsRequired": true
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/__caseSensitiveVal",
                "i18n": "caseSenstive"
              },
              {
                "type": "Control",
                "scope": "#/properties/replaceWith",
                "options": {
                  "markAsRequired": true
                }
              }
            ]
          },
          {
            "type": "Control",
            "scope": "#/properties/tagsToSearch",
            "i18n": "tagToSearch",
            "options": {
              "markAsRequired": true
            }
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/ReplaceTagContent",
        "locale": "en",
        "content": {
          "caseSenstive.label": "Ignore Case",
          "tagToSearch.label": "Within Tags (comma-separated)"
        }
      }
    ]
  },
  {
    "configName": "RequestSizeLimit",
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/RequestSizeLimit",
        "title": "Limit Message Size",
        "properties": {
          "entireMessage": {
            "type": "boolean",
            "default": true
          },
          "limit": {
            "type": "string"
          },
          "otherTargetMessageVariable": {
            "type": "string"
          },
          "target": {
            "type": "string"
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Limit Message Size",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/target",
            "i18n": "target",
            "options": {
              "messageTarget": true
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/limit",
            "i18n": "limit",
            "options": {
              "markAsRequired": true
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/entireMessage",
            "i18n": "entireMessage"
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/RequestSizeLimit",
        "locale": "en",
        "content": {
          "target.label": "Specify Size Limit For",
          "otherTargetMessageVariable.label": "Message Variable",
          "limit.label": "Message Size Limit (KBytes)",
          "entireMessage.label": "Exempt MIME attachments from the size limit",
          "limit.error": "The size limit field must be a number between 1 and 9007199254740991"
        }
      }
    ]
  },
  {
    "configName": "RequestSwA",
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Validate SOAP Attachments",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/__bindingName",
            "label": "Bindings"
          },
          {
            "type": "Control",
            "scope": "#/properties/__bindingOperations",
            "label": "Operations"
          },
          {
            "type": "Group",
            "i18n": "inputParam.label",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "input-param-group"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/__fileAttachment",
                "options": {
                  "fieldGroup": true,
                  "detail": {
                    "type": "VerticalLayout",
                    "elements": [
                      {
                        "type": "HorizontalLayout",
                        "elements": [
                          {
                            "type": "Control",
                            "scope": "#/properties/name",
                            "i18n": "name",
                            "options": {
                              "readOnly": true
                            }
                          },
                          {
                            "type": "Control",
                            "scope": "#/properties/contentTypes",
                            "i18n": "contentTypes",
                            "options": {
                              "readOnly": true
                            }
                          }
                        ]
                      },
                      {
                        "type": "HorizontalLayout",
                        "elements": [
                          {
                            "type": "Control",
                            "scope": "#/properties/maxLength",
                            "i18n": "maxLength"
                          },
                          {
                            "type": "Control",
                            "scope": "#/properties/requireSignature",
                            "i18n": "requireSignature",
                            "options": {
                              "markAsRequired": true
                            }
                          }
                        ]
                      }
                    ]
                  }
                }
              }
            ]
          }
        ]
      }
    ],
    "configSchemaPatches": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/RequestSwA",
        "patches": [
          {
            "op": "add",
            "path": "/properties/__bindingName",
            "value": {
              "type": "string"
            }
          },
          {
            "op": "add",
            "path": "/properties/__bindingOperations",
            "value": {
              "type": "string"
            }
          },
          {
            "op": "add",
            "path": "/properties/__fileAttachment",
            "value": {
              "type": "array",
              "items": {
                "type": "object"
              }
            }
          },
          {
            "op": "add",
            "path": "/properties/__fileAttachment/items/properties",
            "value": {
              "name": {
                "type": "string"
              },
              "maxLength": {
                "type": "integer"
              },
              "contentTypes": {
                "type": "string"
              },
              "requireSignature": {
                "type": "boolean",
                "default": false
              }
            }
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/RequestSwA",
        "locale": "en",
        "content": {
          "inputParam.label": "Input Parameters",
          "name.label": "Parameter Name",
          "contentTypes.label": "MIME Part Content Type",
          "maxLength.label": "MIME Part Max Length (KB)",
          "requireSignature.label": "Require signature",
          "invalid.maxLength.error": "Invalid maxLength. Value must be between 0 and 9999999999."
        }
      }
    ]
  },
  {
    "configName": "RequestWssKerberos",
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Require WS-Security Kerberos Token Profile Credentials",
        "elements": [
          {
            "type": "Group",
            "label": "WS-Security Recipient",
            "options": {
              "groupType": "ShowHide",
              "expanded": true
            },
            "elements": [
              {
                "type": "Control",
                "options": {
                  "wssRecipient": true
                }
              }
            ]
          }
        ]
      }
    ]
  },
  {
    "configName": "RequestXpath",
    "displayNameFormats": [
      {
        "format": "Request must match XPath {{.xpathExpression.expression}}",
        "condition": "not(isNull({{.xpathExpression.expression}}))"
      },
      {
        "format": "Evaluate Request XPath",
        "condition": "true"
      }
    ],
    "refVariables": [
      {
        "fieldPath": ".variablePrefix",
        "refType": "OUT",
        "dataType": "other",
        "prefixed": true
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".found",
        "refType": "OUT",
        "dataType": "boolean"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".count",
        "refType": "OUT",
        "dataType": "int"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".result",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".results",
        "refType": "OUT",
        "dataType": "string",
        "multivalued": true
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".element",
        "refType": "OUT",
        "dataType": "xml"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".elements",
        "refType": "OUT",
        "dataType": "xml",
        "multivalued": true
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Evaluate Request XPath",
        "elements": [
          {
            "type": "Group",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "xpath-group"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/xpathExpression",
                "i18n": "xpathExpression",
                "options": {
                  "editXPath": true
                }
              }
            ]
          },
          {
            "type": "Control",
            "scope": "#/properties/variablePrefix",
            "i18n": "variablePrefix",
            "options": {
              "contextVariable": true,
              "variableType": "output",
              "allowedDataTypes": []
            }
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/RequestXpath",
        "locale": "en",
        "content": {
          "xpathExpression.label": "XPath",
          "prefix.label": "Variable Prefix"
        }
      }
    ]
  },
  {
    "configName": "RequireWssEncryptedElement",
    "displayNameFormats": [
      {
        "format": "Require Encrypted Element {{.xpathExpression.expression}}",
        "condition": "not(isNull({{.xpathExpression.expression}}))"
      }
    ],
    "configSchemaPatches": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/RequireWssEncryptedElement",
        "patches": [
          {
            "op": "add",
            "path": "/properties/xEncAlgorithmList/items/enum",
            "value": [
              "http://www.w3.org/2001/04/xmlenc#aes128-cbc",
              "http://www.w3.org/2001/04/xmlenc#aes192-cbc",
              "http://www.w3.org/2001/04/xmlenc#aes256-cbc",
              "http://www.w3.org/2001/04/xmlenc#tripledes-cbc",
              "http://www.w3.org/2009/xmlenc11#aes128-gcm",
              "http://www.w3.org/2009/xmlenc11#aes256-gcm"
            ]
          },
          {
            "op": "add",
            "path": "/properties/xEncAlgorithmList/uniqueItems",
            "value": true
          }
        ]
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Require Encrypted Element",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/target",
            "options": {
              "messageTarget": true,
              "otherTargetMessageVariableLabel": "assertion.common.target.otherTargetContextVariable"
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/xpathExpression",
            "i18n": "xpathExpression",
            "options": {
              "editXPath": true
            }
          },
          {
            "type": "Group",
            "i18n": "enableEncryptionMethods",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "Encrypted-username-token-group"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/xEncAlgorithmList",
                "label": false,
                "options": {
                  "format": "checkbox",
                  "columns": 2
                }
              }
            ]
          },
          {
            "type": "Group",
            "label": "WS-Security Recipient",
            "options": {
              "groupType": "ShowHide"
            },
            "elements": [
              {
                "type": "Control",
                "options": {
                  "wssRecipient": true
                }
              }
            ]
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/RequireWssEncryptedElement",
        "locale": "en",
        "content": {
          "enableEncryptionMethods": "Encryption Method",
          "xEncAlgorithmList.http://www.w3.org/2001/04/xmlenc#aes128-cbc": "AES 128 CBC",
          "xEncAlgorithmList.http://www.w3.org/2001/04/xmlenc#aes192-cbc": "AES 192 CBC",
          "xEncAlgorithmList.http://www.w3.org/2001/04/xmlenc#aes256-cbc": "AES 256 CBC",
          "xEncAlgorithmList.http://www.w3.org/2001/04/xmlenc#tripledes-cbc": "Triple DES",
          "xEncAlgorithmList.http://www.w3.org/2009/xmlenc11#aes128-gcm": "AES 128 GCM",
          "xEncAlgorithmList.http://www.w3.org/2009/xmlenc11#aes256-gcm": "AES 256 GCM"
        }
      }
    ]
  },
  {
    "configName": "RequireWssSaml",
    "displayNameFormats": [
      {
        "format": "Require SAML Token v1 Authentication Statement",
        "condition": "and(equals({{.version}}, 1), not(isNull({{.authenticationStatement}})))"
      },
      {
        "format": "Require SAML Token v1 Authorization Decision Statement",
        "condition": "and(equals({{.version}}, 1), not(isNull({{.authorizationStatement}})))"
      },
      {
        "format": "Require SAML Token v1 Attribute Statement",
        "condition": "and(equals({{.version}}, 1), not(isNull({{.attributeStatement}})))"
      },
      {
        "format": "Require SAML Token",
        "condition": "true"
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Require SAML Token Profile (v1)",
        "elements": [
          {
            "type": "Categorization",
            "elements": [
              {
                "type": "Category",
                "label": "messageAndVersionStepTitle",
                "description": "messageAndVersionStepDescription",
                "validateFields": [
                  "otherTargetMessageVariable"
                ],
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/target",
                    "options": {
                      "messageTarget": true,
                      "otherTargetMessageVariableLabel": "assertion.common.target.otherTargetContextVariable"
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/__samlpResponseType",
                    "i18n": "samlpResponseType"
                  }
                ]
              },
              {
                "type": "Category",
                "label": "authenticationStatement",
                "description": "authenticationDescription",
                "validateFields": [
                  "authenticationMethods"
                ],
                "elements": [
                  {
                    "type": "Control",
                    "i18n": "messageAndVersionStepDescription",
                    "scope": "#/properties/authenticationStatement/properties/authenticationMethods",
                    "options": {
                      "multiSelect": true,
                      "placeholder": "Select Authentication Methods"
                    }
                  }
                ],
                "rule": {
                  "effect": "SHOW",
                  "condition": {
                    "scope": "#/properties/__samlpResponseType",
                    "schema": {
                      "const": "AUTHENTICATION"
                    }
                  }
                }
              },
              {
                "type": "Category",
                "label": "authorizationStatement",
                "description": "authorizationDescription",
                "validateFields": [
                  "authorizationStatement/resource",
                  "authorizationStatement/action"
                ],
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/authorizationStatement/properties/resource",
                    "i18n": "resource",
                    "options": {
                      "markAsRequired": true
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/authorizationStatement/properties/action",
                    "i18n": "action",
                    "options": {
                      "markAsRequired": true
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/authorizationStatement/properties/actionNamespace",
                    "i18n": "actionNamespace"
                  }
                ],
                "rule": {
                  "effect": "SHOW",
                  "condition": {
                    "scope": "#/properties/__samlpResponseType",
                    "schema": {
                      "const": "AUTHORIZATION"
                    }
                  }
                }
              },
              {
                "type": "Category",
                "label": "attributeStatementStepTitle",
                "description": "attributeStatementStepDescription",
                "validateFields": [
                  "name",
                  "value",
                  "nameFormat",
                  "attributeStatement"
                ],
                "elements": [
                  {
                    "type": "Group",
                    "i18n": "attributeStatement.attributes.label",
                    "options": {
                      "groupType": "wrapCustomClass",
                      "customClass": "label-heading-style"
                    },
                    "elements": [
                      {
                        "type": "Control",
                        "scope": "#/properties/attributeStatement/properties/attributes",
                        "i18n": "attributeStatement.attributes",
                        "options": {
                          "fieldGroup": true,
                          "buttonLabel": "attributeStatement.attributes.btn",
                          "detail": {
                            "type": "VerticalLayout",
                            "elements": [
                              {
                                "type": "Control",
                                "scope": "#/properties/name",
                                "i18n": "attributeStatement.attributes.name",
                                "options": {
                                  "markAsRequired": true
                                }
                              },
                              {
                                "type": "Control",
                                "scope": "#/properties/namespace",
                                "i18n": "attributeStatement.attributes.namespace"
                              },
                              {
                                "type": "Control",
                                "scope": "#/properties/__valueType",
                                "i18n": "attributeStatement.attributes.attributeValue",
                                "options": {
                                  "format": "radio",
                                  "subschemaPath": "properties.attributeStatement.properties.attributes.items",
                                  "uiSchemasMap": {
                                    "SPECIFIC": {
                                      "type": "VerticalLayout",
                                      "elements": [
                                        {
                                          "type": "Control",
                                          "scope": "#/properties/value",
                                          "options": {
                                            "multiline": true,
                                            "rows": 3
                                          }
                                        }
                                      ]
                                    }
                                  }
                                }
                              }
                            ]
                          }
                        }
                      }
                    ]
                  }
                ],
                "rule": {
                  "effect": "SHOW",
                  "condition": {
                    "scope": "#/properties/__samlpResponseType",
                    "schema": {
                      "const": "ATTRIBUTE"
                    }
                  }
                }
              },
              {
                "type": "Category",
                "label": "subjectStepTitle",
                "description": "subjectStepDescription",
                "validateFields": [
                  "__holderOfKey",
                  "__senderVouches",
                  "__bearer",
                  "noSubjectConfirmation"
                ],
                "elements": [
                  {
                    "type": "Group",
                    "i18n": "subjectConfirmationMethod.label",
                    "options": {
                      "groupType": "wrapCustomClass"
                    },
                    "elements": [
                      {
                        "type": "Control",
                        "scope": "#/properties/__holderOfKey",
                        "i18n": "holderOfKey",
                        "options": {
                          "format": "checkbox",
                          "subUiSchema": {
                            "type": "Control",
                            "scope": "#/properties/requireHolderOfKeyWithMessageSignature",
                            "i18n": "requireMessageSignature"
                          }
                        }
                      },
                      {
                        "type": "Control",
                        "scope": "#/properties/__senderVouches",
                        "i18n": "senderVouches",
                        "options": {
                          "format": "checkbox",
                          "subUiSchema": {
                            "type": "Control",
                            "scope": "#/properties/requireSenderVouchesWithMessageSignature",
                            "i18n": "requireMessageSignature"
                          }
                        }
                      },
                      {
                        "type": "Control",
                        "scope": "#/properties/__bearer",
                        "i18n": "bearer",
                        "options": {
                          "format": "checkbox"
                        }
                      },
                      {
                        "type": "Control",
                        "scope": "#/properties/noSubjectConfirmation",
                        "i18n": "noSubjectConfirmation",
                        "options": {
                          "format": "checkbox"
                        }
                      }
                    ]
                  }
                ]
              },
              {
                "type": "Category",
                "label": "nameIdentifier",
                "description": "nameIdentifierStepDescription",
                "validateFields": [
                  "nameFormats"
                ],
                "elements": [
                  {
                    "type": "Group",
                    "options": {
                      "groupType": "wrapCustomClass",
                      "customClass": "name-identifier-group"
                    },
                    "elements": [
                      {
                        "type": "Control",
                        "scope": "#/properties/nameFormats",
                        "i18n": "nameFormats",
                        "options": {
                          "format": "checkbox"
                        }
                      },
                      {
                        "type": "Control",
                        "i18n": "nameQualifier",
                        "scope": "#/properties/nameQualifier"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "Category",
                "label": "conditions",
                "description": "conditionsStepDescription",
                "validateFields": [
                  "maxExpiry",
                  "audienceRestriction"
                ],
                "elements": [
                  {
                    "type": "Group",
                    "options": {
                      "groupType": "wrapCustomClass",
                      "customClass": "time-unit-group-style"
                    },
                    "rule": {
                      "effect": "HIDE",
                      "condition": {
                        "scope": "#/properties/useSystemDefaultSessionDuration",
                        "schema": {
                          "const": true
                        }
                      }
                    },
                    "elements": [
                      {
                        "type": "Control",
                        "scope": "#/properties/checkAssertionValidity",
                        "i18n": "checkAssertionValidity"
                      },
                      {
                        "type": "Control",
                        "scope": "#/properties/maxExpiry",
                        "i18n": "maxExpiry",
                        "options": {
                          "markAsRequired": true,
                          "minValue": 0
                        }
                      },
                      {
                        "type": "Control",
                        "scope": "#/properties/timeUnit"
                      }
                    ]
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/audienceRestriction",
                    "i18n": "audienceRestriction"
                  }
                ]
              }
            ],
            "options": {
              "variant": "apimStepper",
              "wizardTitle": "requireWssSamlWizardTitle"
            }
          },
          {
            "type": "Group",
            "options": {
              "groupType": "ReadOnlyForm"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/target",
                "options": {
                  "messageTarget": true,
                  "otherTargetMessageVariableLabel": "assertion.common.target.otherTargetMessageVariable"
                }
              },
              {
                "type": "Group",
                "options": {
                  "groupType": "wrapCustomClass"
                },
                "elements": [
                  {
                    "type": "Group",
                    "label": "Authentication Statement",
                    "options": {
                      "groupType": "Accordion"
                    },
                    "elements": [
                      {
                        "type": "Control",
                        "i18n": "messageAndVersionStepDescription",
                        "scope": "#/properties/authenticationStatement/properties/authenticationMethods",
                        "options": {
                          "multiSelect": true,
                          "readonly": true
                        }
                      }
                    ]
                  }
                ],
                "rule": {
                  "effect": "SHOW",
                  "condition": {
                    "scope": "#/properties/__samlpResponseType",
                    "schema": {
                      "const": "AUTHENTICATION"
                    }
                  }
                }
              },
              {
                "type": "Group",
                "options": {
                  "groupType": "wrapCustomClass"
                },
                "elements": [
                  {
                    "type": "Group",
                    "label": "Authorization Statement",
                    "options": {
                      "groupType": "Accordion"
                    },
                    "elements": [
                      {
                        "type": "Control",
                        "scope": "#/properties/authorizationStatement/properties/resource",
                        "i18n": "resource"
                      },
                      {
                        "type": "Control",
                        "scope": "#/properties/authorizationStatement/properties/action",
                        "i18n": "action"
                      },
                      {
                        "type": "Control",
                        "scope": "#/properties/authorizationStatement/properties/actionNamespace",
                        "i18n": "actionNamespace"
                      }
                    ]
                  }
                ],
                "rule": {
                  "effect": "SHOW",
                  "condition": {
                    "scope": "#/properties/__samlpResponseType",
                    "schema": {
                      "const": "AUTHORIZATION"
                    }
                  }
                }
              },
              {
                "type": "Group",
                "options": {
                  "groupType": "wrapCustomClass"
                },
                "elements": [
                  {
                    "type": "Group",
                    "label": "Attribute Statement",
                    "options": {
                      "groupType": "Accordion"
                    },
                    "elements": [
                      {
                        "type": "Group",
                        "i18n": "attributeStatement.attributes.label",
                        "options": {
                          "groupType": "wrapCustomClass",
                          "customClass": "label-heading-style"
                        },
                        "elements": [
                          {
                            "type": "Control",
                            "scope": "#/properties/attributeStatement/properties/attributes",
                            "i18n": "attributeStatement.attributes",
                            "options": {
                              "fieldGroup": true,
                              "buttonLabel": "Add Attribute",
                              "detail": {
                                "type": "VerticalLayout",
                                "elements": [
                                  {
                                    "type": "Control",
                                    "scope": "#/properties/name",
                                    "i18n": "attributeStatement.attributes.name",
                                    "options": {
                                      "markAsRequired": true
                                    }
                                  },
                                  {
                                    "type": "Control",
                                    "scope": "#/properties/namespace",
                                    "i18n": "attributeStatement.attributes.namespace"
                                  },
                                  {
                                    "type": "Control",
                                    "scope": "#/properties/__valueType",
                                    "i18n": "attributeStatement.attributes.attributeValue",
                                    "options": {
                                      "format": "radio",
                                      "subschemaPath": "properties.attributeStatement.properties.attributes.items",
                                      "uiSchemasMap": {
                                        "SPECIFIC": {
                                          "type": "VerticalLayout",
                                          "elements": [
                                            {
                                              "type": "Control",
                                              "scope": "#/properties/value",
                                              "options": {
                                                "multiline": true,
                                                "rows": 3,
                                                "markAsRequired": true
                                              }
                                            }
                                          ]
                                        }
                                      }
                                    }
                                  }
                                ]
                              }
                            }
                          }
                        ]
                      }
                    ]
                  }
                ],
                "rule": {
                  "effect": "SHOW",
                  "condition": {
                    "scope": "#/properties/__samlpResponseType",
                    "schema": {
                      "const": "ATTRIBUTE"
                    }
                  }
                }
              },
              {
                "type": "Group",
                "options": {
                  "groupType": "wrapCustomClass"
                },
                "elements": [
                  {
                    "type": "Group",
                    "label": "Subject Confirmation",
                    "options": {
                      "groupType": "Accordion"
                    },
                    "elements": [
                      {
                        "type": "Group",
                        "i18n": "subjectConfirmationMethod.label",
                        "options": {
                          "groupType": "wrapCustomClass"
                        },
                        "elements": [
                          {
                            "type": "Control",
                            "scope": "#/properties/__holderOfKey",
                            "i18n": "holderOfKey",
                            "options": {
                              "format": "checkbox",
                              "subUiSchema": {
                                "type": "Control",
                                "scope": "#/properties/requireHolderOfKeyWithMessageSignature",
                                "i18n": "requireMessageSignature"
                              }
                            }
                          },
                          {
                            "type": "Control",
                            "scope": "#/properties/__senderVouches",
                            "i18n": "senderVouches",
                            "options": {
                              "format": "checkbox",
                              "subUiSchema": {
                                "type": "Control",
                                "scope": "#/properties/requireSenderVouchesWithMessageSignature",
                                "i18n": "requireMessageSignature"
                              }
                            }
                          },
                          {
                            "type": "Control",
                            "scope": "#/properties/__bearer",
                            "i18n": "bearer",
                            "options": {
                              "format": "checkbox"
                            }
                          },
                          {
                            "type": "Control",
                            "scope": "#/properties/noSubjectConfirmation",
                            "i18n": "noSubjectConfirmation",
                            "options": {
                              "format": "checkbox"
                            }
                          }
                        ]
                      },
                      {
                        "type": "Group",
                        "i18n": "subjectConfirmationData.label",
                        "options": {
                          "groupType": "wrapCustomClass"
                        },
                        "elements": [
                          {
                            "type": "Control",
                            "scope": "#/properties/subjectConfirmationDataRecipient",
                            "i18n": "subjectConfirmationDataRecipient"
                          },
                          {
                            "type": "Control",
                            "scope": "#/properties/subjectConfirmationDataCheckAddress",
                            "i18n": "subjectConfirmationDataCheckAddress",
                            "options": {
                              "format": "checkbox"
                            }
                          },
                          {
                            "type": "Control",
                            "scope": "#/properties/subjectConfirmationDataCheckValidity",
                            "i18n": "subjectConfirmationDataCheckValidity",
                            "options": {
                              "format": "checkbox"
                            }
                          }
                        ],
                        "rule": {
                          "effect": "SHOW",
                          "condition": {
                            "scope": "#",
                            "schema": {
                              "anyOf": [
                                {
                                  "properties": {
                                    "__bearer": {
                                      "const": true
                                    }
                                  }
                                },
                                {
                                  "properties": {
                                    "requireSenderVouchesWithMessageSignature": {
                                      "const": true
                                    }
                                  }
                                },
                                {
                                  "properties": {
                                    "requireHolderOfKeyWithMessageSignature": {
                                      "const": true
                                    }
                                  }
                                }
                              ]
                            }
                          }
                        }
                      }
                    ]
                  }
                ]
              },
              {
                "type": "Group",
                "options": {
                  "groupType": "wrapCustomClass"
                },
                "elements": [
                  {
                    "type": "Group",
                    "label": "Name Identifier",
                    "options": {
                      "groupType": "Accordion"
                    },
                    "elements": [
                      {
                        "type": "Control",
                        "scope": "#/properties/nameFormats",
                        "i18n": "nameFormats",
                        "options": {
                          "format": "checkbox"
                        }
                      },
                      {
                        "type": "Control",
                        "scope": "#/properties/nameQualifier",
                        "i18n": "nameQualifier"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "Group",
                "options": {
                  "groupType": "wrapCustomClass"
                },
                "elements": [
                  {
                    "type": "Group",
                    "label": "Conditions",
                    "options": {
                      "groupType": "Accordion"
                    },
                    "elements": [
                      {
                        "type": "Control",
                        "scope": "#/properties/checkAssertionValidity",
                        "i18n": "checkAssertionValidity"
                      },
                      {
                        "type": "Control",
                        "scope": "#/properties/maxExpiry",
                        "i18n": "maxExpiry"
                      },
                      {
                        "type": "Control",
                        "scope": "#/properties/timeUnit",
                        "i18n": "timeUnit"
                      },
                      {
                        "type": "Control",
                        "scope": "#/properties/audienceRestriction",
                        "i18n": "audienceRestriction"
                      }
                    ]
                  }
                ]
              }
            ]
          },
          {
            "type": "Group",
            "label": "WS-Security Recipient",
            "options": {
              "groupType": "ShowHide"
            },
            "elements": [
              {
                "type": "Control",
                "options": {
                  "wssRecipient": true
                }
              }
            ]
          }
        ]
      }
    ],
    "configSchemaPatches": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/RequireWssSaml",
        "patches": [
          {
            "op": "add",
            "path": "/properties/__bearer",
            "value": {
              "type": "boolean"
            }
          },
          {
            "op": "add",
            "path": "/properties/__holderOfKey",
            "value": {
              "type": "boolean",
              "default": true
            }
          },
          {
            "op": "add",
            "path": "/properties/__senderVouches",
            "value": {
              "type": "boolean"
            }
          },
          {
            "op": "replace",
            "path": "/properties/nameFormats",
            "value": {
              "type": "array",
              "uniqueItems": true,
              "items": {
                "type": "string",
                "enum": [
                  "urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName",
                  "urn:oasis:names:tc:SAML:2.0:nameid-format:entity",
                  "urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress",
                  "urn:oasis:names:tc:SAML:2.0:nameid-format:persistent",
                  "urn:oasis:names:tc:SAML:1.1:nameid-format:WindowsDomainQualifiedName",
                  "urn:oasis:names:tc:SAML:2.0:nameid-format:transient",
                  "urn:oasis:names:tc:SAML:2.0:nameid-format:kerberos",
                  "urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified"
                ]
              }
            }
          },
          {
            "op": "add",
            "path": "/properties/attributeStatement/properties/attributes/items/properties/__nameFormatType",
            "value": {
              "type": "string",
              "enum": [
                "UNSPECIFIED",
                "URI_REF",
                "BASIC",
                "OTHER"
              ],
              "default": "UNSPECIFIED"
            }
          },
          {
            "op": "add",
            "path": "/properties/__samlpResponseType",
            "value": {
              "type": "string",
              "enum": [
                "AUTHENTICATION",
                "AUTHORIZATION",
                "ATTRIBUTE"
              ],
              "default": "AUTHENTICATION"
            }
          },
          {
            "op": "add",
            "path": "/properties/attributeStatement/properties/attributes/items/properties/__valueType",
            "value": {
              "type": "string",
              "enum": [
                "NON_EMPTY",
                "SPECIFIC"
              ],
              "default": "SPECIFIC"
            }
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/RequireWssSaml",
        "locale": "en",
        "content": {
          "requireWssSamlWizardTitle": "SAML Protocol Profile Wizard (v1)",
          "messageAndVersionStepTitle": "Message Target, SAML Version and  Statement",
          "messageAndVersionStepDescription": "Select the SAML Statement Type you wish to configure.",
          "samlVersion.label": "SAML Version",
          "authenticationStatement": "Authentication Methods",
          "authorizationStatement": "Authorization Statement",
          "subjectStepTitle": "Subject Confirmation",
          "subjectStepDescription": "Specify one or more subject confirmations that will be accepted by the gateway and whether the message signature is required as the proof material.",
          "subjectConfirmationMethod.label": "Subject Confirmation Methods",
          "holderOfKey.label": "Holder of key",
          "requireMessageSignature.label": "Require message signature",
          "senderVouches.label": "Sender vouches",
          "bearer.label": "Bearer",
          "noSubjectConfirmation.label": "None",
          "nameIdentifier": "Name Identifier",
          "nameIdentifierStepDescription": "Specify one or more name formats that will be accepted by the gateway and the optional subject name qualifier.",
          "nameFormats.label": "Format",
          "nameQualifier.label": "Name Qualifier",
          "nameFormats.urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName": "X.509 subject name",
          "nameFormats.urn:oasis:names:tc:SAML:2.0:nameid-format:entity": "Entity identifier",
          "nameFormats.urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress": "Email address",
          "nameFormats.urn:oasis:names:tc:SAML:2.0:nameid-format:persistent": "Persistent identifier",
          "nameFormats.urn:oasis:names:tc:SAML:1.1:nameid-format:WindowsDomainQualifiedName": "Windows domain qualified name",
          "nameFormats.urn:oasis:names:tc:SAML:2.0:nameid-format:transient": "Transient identifier",
          "nameFormats.urn:oasis:names:tc:SAML:2.0:nameid-format:kerberos": "Kerberos principal name",
          "nameFormats.urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified": "Unspecified",
          "conditions": "Conditions",
          "conditionsStepDescription": "Optionally indicate whether the token's validity period should be checked, whether the token's expiry time should be further restricted, or whether to restrict the audience for the SAML token.",
          "checkAssertionValidity.label": "Check assertion validity period",
          "maxExpiry.label": "Maximum Expiry Time",
          "timeUnit.ms": "Milliseconds",
          "timeUnit.s": "Seconds",
          "timeUnit.m": "Minutes",
          "timeUnit.h": "Hours",
          "timeUnit.d": "Days",
          "audienceRestriction": "Audience Restriction",
          "configureValidation": "Configure Validation",
          "subjectConfirmationData.label": "Subject Confirmation Data",
          "subjectConfirmationDataRecipient.label": "Recipient",
          "subjectConfirmationDataCheckAddress.label": "Check address",
          "subjectConfirmationDataCheckValidity.label": "Check validity period",
          "attributeStatementStepTitle": "Attribute Statement",
          "attributeStatementStepDescription": "Specify the SAML attributes that the SAML statement MUST describe; the Attribute Name [required] The Attribute Namespace [optional] and the AttributeValue",
          "attributeStatement.attributes.label": "Attributes",
          "attributeStatement.attributes.name.label": "Attribute Name",
          "attributeStatement.attributes.namespace.label": "Attribute Namespace",
          "attributeStatement.attributes.nameFormatType.UNSPECIFIED": "Unspecified",
          "attributeStatement.attributes.nameFormatType.URI_REF": "URI Reference",
          "attributeStatement.attributes.nameFormatType.BASIC": "Basic",
          "attributeStatement.attributes.nameFormatType.OTHER": "Other",
          "attributeStatement.nameFormat.label": "Attribute Name Format",
          "attributeStatement.attributes.attributeValue.label": "Attribute Value",
          "attributeStatement.attributes.attributeValue.SPECIFIC": "Specific value",
          "attributeStatement.attributes.attributeValue.NON_EMPTY": "Allow any non-empty value",
          "authenticationDescription": "Specify one or more accepted authentication methods that the SAML statement must assert. ",
          "authorizationDescription": "Specify  the resource that the SAML statement MUST describe, the rResource Action, and the Action Namespace",
          "assertionValidity": "Subject Confirmation",
          "resource.label": "Resource",
          "action.label": "Resource Action",
          "actionNamespace": "Action Namespace",
          "samlpResponseType.label": "SAML Statement",
          "samlpResponseType.AUTHENTICATION": "Authentication Statement",
          "samlpResponseType.AUTHORIZATION": "Authorization Decision Statement",
          "samlpResponseType.ATTRIBUTE": "Attribute Statement",
          "atleast.one.subject.required": "Atleast one subject confirmation method selected",
          "atleast.one.format.required": "Atleast one format selected",
          "attributeStatement.attributes.btn": "Add Attribute",
          "attributeStatement.attributes.err-text": "One attribute is required",
          "audienceRestriction.contains.invalid.characters": "Invalid characters",
          "maxExpiry.exceeds.allowed.length": "Maximum expiry time limit exceeds"
        }
      }
    ]
  },
  {
    "configName": "RequireWssSaml2",
    "displayNameFormats": [
      {
        "format": "Require SAML Token Authentication Statement",
        "condition": "and(equals({{.version}}, 0), not(isNull({{.authenticationStatement}})))"
      },
      {
        "format": "Require SAML Token Authorization Decision Statement",
        "condition": "and(equals({{.version}}, 0), not(isNull({{.authorizationStatement}})))"
      },
      {
        "format": "Require SAML Token Attribute Statement",
        "condition": "and(equals({{.version}}, 0), not(isNull({{.attributeStatement}})))"
      },
      {
        "format": "Require SAML Token v2 Authentication Statement",
        "condition": "and(equals({{.version}}, 2), not(isNull({{.authenticationStatement}})))"
      },
      {
        "format": "Require SAML Token v2 Authorization Decision Statement",
        "condition": "and(equals({{.version}}, 2), not(isNull({{.authorizationStatement}})))"
      },
      {
        "format": "Require SAML Token v2 Attribute Statement",
        "condition": "and(equals({{.version}}, 2), not(isNull({{.attributeStatement}})))"
      },
      {
        "format": "Require SAML Token",
        "condition": "true"
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Require SAML Token Profile (v2)",
        "elements": [
          {
            "type": "Categorization",
            "elements": [
              {
                "type": "Category",
                "label": "messageAndVersionStepTitle",
                "description": "messageAndVersionStepDescription",
                "validateFields": [
                  "otherTargetMessageVariable"
                ],
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/target",
                    "options": {
                      "messageTarget": true,
                      "otherTargetMessageVariableLabel": "assertion.common.target.otherTargetContextVariable"
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/__samlVersion",
                    "i18n": "samlVersion"
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/__samlpResponseType",
                    "i18n": "samlpResponseType"
                  }
                ]
              },
              {
                "type": "Category",
                "label": "authenticationStatement",
                "description": "authenticationDescription",
                "validateFields": [
                  "authenticationMethods"
                ],
                "elements": [
                  {
                    "type": "Control",
                    "i18n": "messageAndVersionStepDescription",
                    "scope": "#/properties/authenticationStatement/properties/authenticationMethods",
                    "options": {
                      "multiSelect": true,
                      "placeholder": "Select Authentication Methods"
                    }
                  }
                ],
                "rule": {
                  "effect": "SHOW",
                  "condition": {
                    "scope": "#/properties/__samlpResponseType",
                    "schema": {
                      "const": "AUTHENTICATION"
                    }
                  }
                }
              },
              {
                "type": "Category",
                "label": "authorizationStatement",
                "description": "authorizationDescription",
                "validateFields": [
                  "authorizationStatement/resource",
                  "authorizationStatement/action"
                ],
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/authorizationStatement/properties/resource",
                    "i18n": "resource",
                    "options": {
                      "markAsRequired": true
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/authorizationStatement/properties/action",
                    "i18n": "action",
                    "options": {
                      "markAsRequired": true
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/authorizationStatement/properties/actionNamespace",
                    "i18n": "actionNamespace"
                  }
                ],
                "rule": {
                  "effect": "SHOW",
                  "condition": {
                    "scope": "#/properties/__samlpResponseType",
                    "schema": {
                      "const": "AUTHORIZATION"
                    }
                  }
                }
              },
              {
                "type": "Category",
                "label": "attributeStatementStepTitle",
                "description": "attributeStatementStepDescription",
                "validateFields": [
                  "name",
                  "value",
                  "nameFormat",
                  "attributeStatement"
                ],
                "elements": [
                  {
                    "type": "Group",
                    "i18n": "attributeStatement.attributes.label",
                    "options": {
                      "groupType": "wrapCustomClass",
                      "customClass": "label-heading-style"
                    },
                    "elements": [
                      {
                        "type": "Control",
                        "scope": "#/properties/attributeStatement/properties/attributes",
                        "i18n": "attributeStatement.attributes",
                        "options": {
                          "fieldGroup": true,
                          "buttonLabel": "attributeStatement.attributes.btn",
                          "detail": {
                            "type": "VerticalLayout",
                            "elements": [
                              {
                                "type": "Control",
                                "scope": "#/properties/name",
                                "i18n": "attributeStatement.attributes.name",
                                "options": {
                                  "markAsRequired": true
                                }
                              },
                              {
                                "type": "Control",
                                "scope": "#/properties/namespace",
                                "i18n": "attributeStatement.attributes.namespace",
                                "rule": {
                                  "effect": "SHOW",
                                  "condition": {
                                    "scope": "#/properties/__samlVersion",
                                    "schema": {
                                      "const": "0"
                                    }
                                  }
                                }
                              },
                              {
                                "type": "Group",
                                "options": {
                                  "groupType": "wrapCustomClass"
                                },
                                "elements": [
                                  {
                                    "type": "Group",
                                    "i18n": "attributeStatement.nameFormat.label",
                                    "options": {
                                      "groupType": "wrapCustomClass",
                                      "customClass": "samlp-response-eval-two-elements"
                                    },
                                    "elements": [
                                      {
                                        "type": "HorizontalLayout",
                                        "elements": [
                                          {
                                            "type": "Control",
                                            "scope": "#/properties/__nameFormatType",
                                            "i18n": "attributeStatement.attributes.nameFormatType"
                                          },
                                          {
                                            "type": "Control",
                                            "scope": "#/properties/nameFormat",
                                            "options": {
                                              "markAsRequired": true
                                            },
                                            "rule": {
                                              "effect": "ENABLE",
                                              "condition": {
                                                "scope": "#/properties/__nameFormatType",
                                                "schema": {
                                                  "const": "OTHER"
                                                }
                                              }
                                            }
                                          }
                                        ]
                                      }
                                    ]
                                  }
                                ],
                                "rule": {
                                  "effect": "SHOW",
                                  "condition": {
                                    "scope": "#/properties/__samlVersion",
                                    "schema": {
                                      "enum": [
                                        "0",
                                        "2"
                                      ]
                                    }
                                  }
                                }
                              },
                              {
                                "type": "Control",
                                "scope": "#/properties/__valueType",
                                "i18n": "attributeStatement.attributes.attributeValue",
                                "options": {
                                  "format": "radio",
                                  "subschemaPath": "properties.attributeStatement.properties.attributes.items",
                                  "uiSchemasMap": {
                                    "SPECIFIC": {
                                      "type": "VerticalLayout",
                                      "elements": [
                                        {
                                          "type": "Control",
                                          "scope": "#/properties/value",
                                          "options": {
                                            "multiline": true,
                                            "rows": 3
                                          }
                                        }
                                      ]
                                    }
                                  }
                                }
                              }
                            ]
                          }
                        }
                      }
                    ]
                  }
                ],
                "rule": {
                  "effect": "SHOW",
                  "condition": {
                    "scope": "#/properties/__samlpResponseType",
                    "schema": {
                      "const": "ATTRIBUTE"
                    }
                  }
                }
              },
              {
                "type": "Category",
                "label": "subjectStepTitle",
                "description": "subjectStepDescription",
                "validateFields": [
                  "__holderOfKey",
                  "__senderVouches",
                  "__bearer",
                  "noSubjectConfirmation"
                ],
                "elements": [
                  {
                    "type": "Group",
                    "i18n": "subjectConfirmationMethod.label",
                    "options": {
                      "groupType": "wrapCustomClass"
                    },
                    "elements": [
                      {
                        "type": "Control",
                        "scope": "#/properties/__holderOfKey",
                        "i18n": "holderOfKey",
                        "options": {
                          "format": "checkbox",
                          "subUiSchema": {
                            "type": "Control",
                            "scope": "#/properties/requireHolderOfKeyWithMessageSignature",
                            "i18n": "requireMessageSignature"
                          }
                        }
                      },
                      {
                        "type": "Control",
                        "scope": "#/properties/__senderVouches",
                        "i18n": "senderVouches",
                        "options": {
                          "format": "checkbox",
                          "subUiSchema": {
                            "type": "Control",
                            "scope": "#/properties/requireSenderVouchesWithMessageSignature",
                            "i18n": "requireMessageSignature"
                          }
                        }
                      },
                      {
                        "type": "Control",
                        "scope": "#/properties/__bearer",
                        "i18n": "bearer",
                        "options": {
                          "format": "checkbox"
                        }
                      },
                      {
                        "type": "Control",
                        "scope": "#/properties/noSubjectConfirmation",
                        "i18n": "noSubjectConfirmation",
                        "options": {
                          "format": "checkbox"
                        }
                      }
                    ]
                  },
                  {
                    "type": "Group",
                    "elements": [
                      {
                        "type": "Group",
                        "i18n": "subjectConfirmationData.label",
                        "options": {
                          "groupType": "wrapCustomClass",
                          "customClass": "subject-confirmation-style"
                        },
                        "elements": [
                          {
                            "type": "Control",
                            "scope": "#/properties/subjectConfirmationDataRecipient",
                            "i18n": "subjectConfirmationDataRecipient"
                          },
                          {
                            "type": "Control",
                            "scope": "#/properties/subjectConfirmationDataCheckAddress",
                            "i18n": "subjectConfirmationDataCheckAddress",
                            "options": {
                              "format": "checkbox"
                            }
                          },
                          {
                            "type": "Control",
                            "scope": "#/properties/subjectConfirmationDataCheckValidity",
                            "i18n": "subjectConfirmationDataCheckValidity",
                            "options": {
                              "format": "checkbox"
                            }
                          }
                        ]
                      }
                    ],
                    "rule": {
                      "effect": "SHOW",
                      "condition": {
                        "schema": {
                          "anyOf": [
                            {
                              "properties": {
                                "__bearer": {
                                  "const": true
                                }
                              }
                            },
                            {
                              "properties": {
                                "__holderOfKey": {
                                  "const": true
                                }
                              }
                            },
                            {
                              "properties": {
                                "__senderVouches": {
                                  "const": true
                                }
                              }
                            }
                          ]
                        }
                      }
                    }
                  }
                ]
              },
              {
                "type": "Category",
                "label": "nameIdentifier",
                "description": "nameIdentifierStepDescription",
                "validateFields": [
                  "nameFormats"
                ],
                "elements": [
                  {
                    "type": "Group",
                    "options": {
                      "groupType": "wrapCustomClass",
                      "customClass": "name-identifier-group"
                    },
                    "elements": [
                      {
                        "type": "Control",
                        "scope": "#/properties/nameFormats",
                        "i18n": "nameFormats",
                        "options": {
                          "format": "checkbox"
                        }
                      },
                      {
                        "type": "Control",
                        "i18n": "nameQualifier",
                        "scope": "#/properties/nameQualifier"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "Category",
                "label": "conditions",
                "description": "conditionsStepDescription",
                "validateFields": [
                  "maxExpiry",
                  "audienceRestriction"
                ],
                "elements": [
                  {
                    "type": "Group",
                    "options": {
                      "groupType": "wrapCustomClass",
                      "customClass": "time-unit-group-style"
                    },
                    "rule": {
                      "effect": "HIDE",
                      "condition": {
                        "scope": "#/properties/useSystemDefaultSessionDuration",
                        "schema": {
                          "const": true
                        }
                      }
                    },
                    "elements": [
                      {
                        "type": "Control",
                        "scope": "#/properties/checkAssertionValidity",
                        "i18n": "checkAssertionValidity"
                      },
                      {
                        "type": "Control",
                        "scope": "#/properties/maxExpiry",
                        "i18n": "maxExpiry",
                        "options": {
                          "markAsRequired": true,
                          "minValue": 0
                        }
                      },
                      {
                        "type": "Control",
                        "scope": "#/properties/timeUnit"
                      }
                    ]
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/audienceRestriction",
                    "i18n": "audienceRestriction"
                  }
                ]
              }
            ],
            "options": {
              "variant": "apimStepper",
              "wizardTitle": "requireWssSaml2WizardTitle"
            }
          },
          {
            "type": "Group",
            "options": {
              "groupType": "ReadOnlyForm"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/target",
                "options": {
                  "messageTarget": true
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/__samlVersion",
                "i18n": "samlVersion"
              },
              {
                "type": "Group",
                "options": {
                  "groupType": "wrapCustomClass"
                },
                "elements": [
                  {
                    "type": "Group",
                    "label": "Authentication Statement",
                    "options": {
                      "groupType": "Accordion"
                    },
                    "elements": [
                      {
                        "type": "Control",
                        "i18n": "messageAndVersionStepDescription",
                        "scope": "#/properties/authenticationStatement/properties/authenticationMethods",
                        "options": {
                          "multiSelect": true,
                          "readonly": true
                        }
                      }
                    ]
                  }
                ],
                "rule": {
                  "effect": "SHOW",
                  "condition": {
                    "scope": "#/properties/__samlpResponseType",
                    "schema": {
                      "const": "AUTHENTICATION"
                    }
                  }
                }
              },
              {
                "type": "Group",
                "options": {
                  "groupType": "wrapCustomClass"
                },
                "elements": [
                  {
                    "type": "Group",
                    "label": "Authorization Statement",
                    "options": {
                      "groupType": "Accordion"
                    },
                    "elements": [
                      {
                        "type": "Control",
                        "scope": "#/properties/authorizationStatement/properties/resource",
                        "i18n": "resource"
                      },
                      {
                        "type": "Control",
                        "scope": "#/properties/authorizationStatement/properties/action",
                        "i18n": "action"
                      },
                      {
                        "type": "Control",
                        "scope": "#/properties/authorizationStatement/properties/actionNamespace",
                        "i18n": "actionNamespace"
                      }
                    ]
                  }
                ],
                "rule": {
                  "effect": "SHOW",
                  "condition": {
                    "scope": "#/properties/__samlpResponseType",
                    "schema": {
                      "const": "AUTHORIZATION"
                    }
                  }
                }
              },
              {
                "type": "Group",
                "options": {
                  "groupType": "wrapCustomClass"
                },
                "elements": [
                  {
                    "type": "Group",
                    "label": "Attribute Statement",
                    "options": {
                      "groupType": "Accordion"
                    },
                    "elements": [
                      {
                        "type": "Group",
                        "i18n": "attributeStatement.attributes.label",
                        "options": {
                          "groupType": "wrapCustomClass",
                          "customClass": "label-heading-style"
                        },
                        "elements": [
                          {
                            "type": "Control",
                            "scope": "#/properties/attributeStatement/properties/attributes",
                            "i18n": "attributeStatement.attributes",
                            "options": {
                              "fieldGroup": true,
                              "buttonLabel": "Add Attribute",
                              "detail": {
                                "type": "VerticalLayout",
                                "elements": [
                                  {
                                    "type": "Control",
                                    "scope": "#/properties/name",
                                    "i18n": "attributeStatement.attributes.name",
                                    "options": {
                                      "markAsRequired": true
                                    }
                                  },
                                  {
                                    "type": "Control",
                                    "scope": "#/properties/namespace",
                                    "i18n": "attributeStatement.attributes.namespace",
                                    "rule": {
                                      "effect": "SHOW",
                                      "condition": {
                                        "scope": "#/properties/__samlVersion",
                                        "schema": {
                                          "const": "0"
                                        }
                                      }
                                    }
                                  },
                                  {
                                    "type": "Group",
                                    "options": {
                                      "groupType": "wrapCustomClass"
                                    },
                                    "elements": [
                                      {
                                        "type": "Group",
                                        "i18n": "attributeStatement.nameFormat.label",
                                        "options": {
                                          "groupType": "wrapCustomClass",
                                          "customClass": "samlp-response-eval-two-elements"
                                        },
                                        "elements": [
                                          {
                                            "type": "HorizontalLayout",
                                            "elements": [
                                              {
                                                "type": "Control",
                                                "scope": "#/properties/__nameFormatType",
                                                "i18n": "attributeStatement.attributes.nameFormatType"
                                              },
                                              {
                                                "type": "Control",
                                                "scope": "#/properties/nameFormat",
                                                "options": {
                                                  "markAsRequired": true
                                                }
                                              }
                                            ]
                                          }
                                        ]
                                      }
                                    ],
                                    "rule": {
                                      "effect": "SHOW",
                                      "condition": {
                                        "scope": "#/properties/__samlVersion",
                                        "schema": {
                                          "const": "2"
                                        }
                                      }
                                    }
                                  },
                                  {
                                    "type": "Control",
                                    "scope": "#/properties/friendlyName",
                                    "i18n": "attributeStatement.attributes.friendlyName",
                                    "rule": {
                                      "effect": "SHOW",
                                      "condition": {
                                        "scope": "#/properties/__samlVersion",
                                        "schema": {
                                          "const": "2"
                                        }
                                      }
                                    }
                                  },
                                  {
                                    "type": "Control",
                                    "scope": "#/properties/__valueType",
                                    "i18n": "attributeStatement.attributes.attributeValue",
                                    "options": {
                                      "format": "radio",
                                      "subschemaPath": "properties.attributeStatement.properties.attributes.items",
                                      "uiSchemasMap": {
                                        "SPECIFIC": {
                                          "type": "VerticalLayout",
                                          "elements": [
                                            {
                                              "type": "Control",
                                              "scope": "#/properties/value",
                                              "options": {
                                                "multiline": true,
                                                "rows": 3,
                                                "markAsRequired": true
                                              }
                                            }
                                          ]
                                        }
                                      }
                                    }
                                  }
                                ]
                              }
                            }
                          }
                        ]
                      }
                    ]
                  }
                ],
                "rule": {
                  "effect": "SHOW",
                  "condition": {
                    "scope": "#/properties/__samlpResponseType",
                    "schema": {
                      "const": "ATTRIBUTE"
                    }
                  }
                }
              },
              {
                "type": "Group",
                "options": {
                  "groupType": "wrapCustomClass"
                },
                "elements": [
                  {
                    "type": "Group",
                    "label": "Subject Confirmation",
                    "options": {
                      "groupType": "Accordion"
                    },
                    "elements": [
                      {
                        "type": "Group",
                        "i18n": "subjectConfirmationMethod.label",
                        "options": {
                          "groupType": "wrapCustomClass"
                        },
                        "elements": [
                          {
                            "type": "Control",
                            "scope": "#/properties/__holderOfKey",
                            "i18n": "holderOfKey",
                            "options": {
                              "format": "checkbox",
                              "subUiSchema": {
                                "type": "Control",
                                "scope": "#/properties/requireHolderOfKeyWithMessageSignature",
                                "i18n": "requireMessageSignature"
                              }
                            }
                          },
                          {
                            "type": "Control",
                            "scope": "#/properties/__senderVouches",
                            "i18n": "senderVouches",
                            "options": {
                              "format": "checkbox",
                              "subUiSchema": {
                                "type": "Control",
                                "scope": "#/properties/requireSenderVouchesWithMessageSignature",
                                "i18n": "requireMessageSignature"
                              }
                            }
                          },
                          {
                            "type": "Control",
                            "scope": "#/properties/__bearer",
                            "i18n": "bearer",
                            "options": {
                              "format": "checkbox"
                            }
                          },
                          {
                            "type": "Control",
                            "scope": "#/properties/noSubjectConfirmation",
                            "i18n": "noSubjectConfirmation",
                            "options": {
                              "format": "checkbox"
                            }
                          }
                        ]
                      },
                      {
                        "type": "Group",
                        "i18n": "subjectConfirmationData.label",
                        "options": {
                          "groupType": "wrapCustomClass"
                        },
                        "elements": [
                          {
                            "type": "Control",
                            "scope": "#/properties/subjectConfirmationDataRecipient",
                            "i18n": "subjectConfirmationDataRecipient"
                          },
                          {
                            "type": "Control",
                            "scope": "#/properties/subjectConfirmationDataCheckAddress",
                            "i18n": "subjectConfirmationDataCheckAddress",
                            "options": {
                              "format": "checkbox"
                            }
                          },
                          {
                            "type": "Control",
                            "scope": "#/properties/subjectConfirmationDataCheckValidity",
                            "i18n": "subjectConfirmationDataCheckValidity",
                            "options": {
                              "format": "checkbox"
                            }
                          }
                        ],
                        "rule": {
                          "effect": "SHOW",
                          "condition": {
                            "scope": "#",
                            "schema": {
                              "anyOf": [
                                {
                                  "properties": {
                                    "__bearer": {
                                      "const": true
                                    }
                                  }
                                },
                                {
                                  "properties": {
                                    "requireSenderVouchesWithMessageSignature": {
                                      "const": true
                                    }
                                  }
                                },
                                {
                                  "properties": {
                                    "requireHolderOfKeyWithMessageSignature": {
                                      "const": true
                                    }
                                  }
                                }
                              ]
                            }
                          }
                        }
                      }
                    ]
                  }
                ]
              },
              {
                "type": "Group",
                "options": {
                  "groupType": "wrapCustomClass"
                },
                "elements": [
                  {
                    "type": "Group",
                    "label": "Name Identifier",
                    "options": {
                      "groupType": "Accordion"
                    },
                    "elements": [
                      {
                        "type": "Control",
                        "scope": "#/properties/nameFormats",
                        "i18n": "nameFormats",
                        "options": {
                          "format": "checkbox"
                        }
                      },
                      {
                        "type": "Control",
                        "scope": "#/properties/nameQualifier",
                        "i18n": "nameQualifier"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "Group",
                "options": {
                  "groupType": "wrapCustomClass"
                },
                "elements": [
                  {
                    "type": "Group",
                    "label": "Conditions",
                    "options": {
                      "groupType": "Accordion"
                    },
                    "elements": [
                      {
                        "type": "Control",
                        "scope": "#/properties/checkAssertionValidity",
                        "i18n": "checkAssertionValidity"
                      },
                      {
                        "type": "Control",
                        "scope": "#/properties/maxExpiry",
                        "i18n": "maxExpiry"
                      },
                      {
                        "type": "Control",
                        "scope": "#/properties/timeUnit",
                        "i18n": "timeUnit"
                      },
                      {
                        "type": "Control",
                        "scope": "#/properties/audienceRestriction",
                        "i18n": "audienceRestriction"
                      }
                    ]
                  }
                ]
              }
            ]
          },
          {
            "type": "Group",
            "label": "WS-Security Recipient",
            "options": {
              "groupType": "ShowHide"
            },
            "elements": [
              {
                "type": "Control",
                "options": {
                  "wssRecipient": true
                }
              }
            ]
          }
        ]
      }
    ],
    "configSchemaPatches": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/RequireWssSaml2",
        "patches": [
          {
            "op": "add",
            "path": "/properties/__bearer",
            "value": {
              "type": "boolean"
            }
          },
          {
            "op": "add",
            "path": "/properties/__holderOfKey",
            "value": {
              "type": "boolean",
              "default": true
            }
          },
          {
            "op": "add",
            "path": "/properties/__senderVouches",
            "value": {
              "type": "boolean"
            }
          },
          {
            "op": "add",
            "path": "/properties/__samlVersion",
            "value": {
              "type": "string",
              "enum": [
                "2",
                "0"
              ],
              "default": "2"
            }
          },
          {
            "op": "replace",
            "path": "/properties/nameFormats",
            "value": {
              "type": "array",
              "uniqueItems": true,
              "items": {
                "type": "string",
                "enum": [
                  "urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName",
                  "urn:oasis:names:tc:SAML:2.0:nameid-format:entity",
                  "urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress",
                  "urn:oasis:names:tc:SAML:2.0:nameid-format:persistent",
                  "urn:oasis:names:tc:SAML:1.1:nameid-format:WindowsDomainQualifiedName",
                  "urn:oasis:names:tc:SAML:2.0:nameid-format:transient",
                  "urn:oasis:names:tc:SAML:2.0:nameid-format:kerberos",
                  "urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified"
                ]
              }
            }
          },
          {
            "op": "add",
            "path": "/properties/attributeStatement/properties/attributes/items/properties/__nameFormatType",
            "value": {
              "type": "string",
              "enum": [
                "UNSPECIFIED",
                "URI_REF",
                "BASIC",
                "OTHER"
              ],
              "default": "UNSPECIFIED"
            }
          },
          {
            "op": "add",
            "path": "/properties/__samlpResponseType",
            "value": {
              "type": "string",
              "enum": [
                "AUTHENTICATION",
                "AUTHORIZATION",
                "ATTRIBUTE"
              ],
              "default": "AUTHENTICATION"
            }
          },
          {
            "op": "add",
            "path": "/properties/attributeStatement/properties/attributes/items/properties/__valueType",
            "value": {
              "type": "string",
              "enum": [
                "NON_EMPTY",
                "SPECIFIC"
              ],
              "default": "SPECIFIC"
            }
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/RequireWssSaml2",
        "locale": "en",
        "content": {
          "requireWssSaml2WizardTitle": "SAML Protocol Profile Wizard (v2)",
          "messageAndVersionStepTitle": "Message Target, SAML Version and  Statement",
          "messageAndVersionStepDescription": "Specify the SAML Version(s) that will be accepted by the gateway and select the SAML Statement Type you wish to configure.   ",
          "samlVersion.label": "SAML Version",
          "samlVersion.2": "Version 2.x",
          "samlVersion.0": "All supported versions",
          "attributeStatement.attributes.btn": "Add Attribute",
          "authenticationStatement": "Authentication Methods",
          "authorizationStatement": "Authorization Statement",
          "subjectStepTitle": "Subject Confirmation",
          "subjectStepDescription": "Specify one or more subject confirmations that will be accepted by the gateway and whether the message signature is required as the proof material.",
          "subjectConfirmationMethod.label": "Subject Confirmation Methods",
          "holderOfKey.label": "Holder of key",
          "requireMessageSignature.label": "Require message signature",
          "senderVouches.label": "Sender vouches",
          "bearer.label": "Bearer",
          "noSubjectConfirmation.label": "None",
          "nameIdentifier": "Name Identifier",
          "nameIdentifierStepDescription": "Specify one or more name formats that will be accepted by the gateway and the optional subject name qualifier.",
          "nameFormats.label": "Format",
          "nameQualifier.label": "Name Qualifier",
          "nameFormats.urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName": "X.509 subject name",
          "nameFormats.urn:oasis:names:tc:SAML:2.0:nameid-format:entity": "Entity identifier",
          "nameFormats.urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress": "Email address",
          "nameFormats.urn:oasis:names:tc:SAML:2.0:nameid-format:persistent": "Persistent identifier",
          "nameFormats.urn:oasis:names:tc:SAML:1.1:nameid-format:WindowsDomainQualifiedName": "Windows domain qualified name",
          "nameFormats.urn:oasis:names:tc:SAML:2.0:nameid-format:transient": "Transient identifier",
          "nameFormats.urn:oasis:names:tc:SAML:2.0:nameid-format:kerberos": "Kerberos principal name",
          "nameFormats.urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified": "Unspecified",
          "conditions": "Conditions",
          "conditionsStepDescription": "Optionally indicate whether the token's validity period should be checked, whether the token's expiry time should be further restricted, or whether to restrict the audience for the SAML token.",
          "checkAssertionValidity.label": "Check assertion validity period",
          "maxExpiry.label": "Maximum Expiry Time",
          "timeUnit.ms": "Milliseconds",
          "timeUnit.s": "Seconds",
          "timeUnit.m": "Minutes",
          "timeUnit.h": "Hours",
          "timeUnit.d": "Days",
          "audienceRestriction": "Audience Restriction",
          "configureValidation": "Configure Validation",
          "subjectConfirmationData.label": "Subject Confirmation Data",
          "subjectConfirmationDataRecipient.label": "Recipient",
          "subjectConfirmationDataCheckAddress.label": "Check address",
          "subjectConfirmationDataCheckValidity.label": "Check validity period",
          "attributeStatementStepTitle": "Attribute Statement",
          "attributeStatementStepDescription": "Specify the SAML attributes that the SAML statement MUST describe; the Attribute Name [required] The Attribute Namespace [optional] and the AttributeValue",
          "attributeStatement.attributes.label": "Attributes",
          "attributeStatement.attributes.name.label": "Attribute Name",
          "attributeStatement.attributes.namespace.label": "Attribute Namespace",
          "attributeStatement.attributes.nameFormatType.UNSPECIFIED": "Unspecified",
          "attributeStatement.attributes.nameFormatType.URI_REF": "URI Reference",
          "attributeStatement.attributes.nameFormatType.BASIC": "Basic",
          "attributeStatement.attributes.nameFormatType.OTHER": "Other",
          "attributeStatement.nameFormat.label": "Attribute Name Format",
          "attributeStatement.attributes.friendlyName.label": "Friendly Name",
          "attributeStatement.attributes.attributeValue.label": "Attribute Value",
          "attributeStatement.attributes.attributeValue.SPECIFIC": "Specific value",
          "attributeStatement.attributes.attributeValue.NON_EMPTY": "Allow any non-empty value",
          "authenticationDescription": "Specify one or more accepted authentication methods that the SAML statement must assert. ",
          "authorizationDescription": "Specify  the resource that the SAML statement MUST describe, the rResource Action, and the Action Namespace",
          "assertionValidity": "Subject Confirmation",
          "resource.label": "Resource",
          "action.label": "Resource Action",
          "actionNamespace": "Action Namespace",
          "samlpResponseType.label": "SAML Statement",
          "samlpResponseType.AUTHENTICATION": "Authentication Statement",
          "samlpResponseType.AUTHORIZATION": "Authorization Decision Statement",
          "samlpResponseType.ATTRIBUTE": "Attribute Statement",
          "atleast.one.subject.required": "Atleast one subject confirmation method selected",
          "atleast.one.format.required": "Atleast one format selected",
          "attributeStatement.attributes.err-text": "One attribute is required",
          "audienceRestriction.contains.invalid.characters": "Invalid characters",
          "maxExpiry.exceeds.allowed.length": "Maximum expiry time limit exceeds"
        }
      }
    ]
  },
  {
    "configName": "RequireWssSignedElement",
    "displayNameFormats": [
      {
        "format": "Require Signed Element {{.xpathExpression.expression}}",
        "condition": "not(isNull({{.xpathExpression.expression}}))"
      },
      {
        "format": "Require Signed Element",
        "condition": "true"
      }
    ],
    "refVariables": [
      {
        "fieldPath": ".variablePrefix",
        "refType": "OUT",
        "dataType": "message"
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Require Signed Element",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/target",
            "i18n": "assertion.common.target",
            "options": {
              "messageTarget": true
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/xpathExpression",
            "i18n": "xpathExpression.expression",
            "options": {
              "editXPath": true
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/acceptedDigestAlgorithms",
            "i18n": "acceptedDigestAlgorithms",
            "options": {
              "format": "checkbox"
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/variablePrefix",
            "i18n": "variablePrefix",
            "options": {
              "contextVariable": true,
              "variableType": "output",
              "allowedDataTypes": []
            }
          },
          {
            "type": "Group",
            "label": "Target Identity",
            "options": {
              "groupType": "ShowHide"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/identityTarget",
                "i18n": "identityTarget",
                "options": {
                  "identityTags": true
                }
              }
            ]
          },
          {
            "type": "Group",
            "label": "WS-Security Recipient",
            "options": {
              "groupType": "ShowHide"
            },
            "elements": [
              {
                "type": "Control",
                "options": {
                  "wssRecipient": true
                }
              }
            ]
          }
        ]
      }
    ],
    "configSchemaPatches": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/RequireWssSignedElement",
        "patches": [
          {
            "op": "add",
            "path": "/properties/acceptedDigestAlgorithms/uniqueItems",
            "value": true
          },
          {
            "op": "replace",
            "path": "/properties/acceptedDigestAlgorithms/items",
            "value": {
              "type": "string",
              "oneOf": [
                {
                  "title": "SHA-1",
                  "const": "http://www.w3.org/2000/09/xmldsig#sha1"
                },
                {
                  "title": "SHA-256",
                  "const": "http://www.w3.org/2001/04/xmlenc#sha256"
                },
                {
                  "title": "SHA-384",
                  "const": "http://www.w3.org/2001/04/xmldsig-more#sha384"
                },
                {
                  "title": "SHA-512",
                  "const": "http://www.w3.org/2001/04/xmlenc#sha512"
                }
              ]
            }
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/RequireWssSignedElement",
        "locale": "en",
        "content": {
          "xpathExpression.expression.label": "XPath",
          "acceptedDigestAlgorithms.label": "Accepted Signature Digests",
          "variablePrefix.label": "Variable Prefix",
          "identityTarget.label": "Select Identity"
        }
      }
    ]
  },
  {
    "configName": "RequireWssTimestamp",
    "displayNameFormats": [
      {
        "format": "Require Signed Timestamp",
        "condition": "equals({{.signatureRequired}}, true)"
      },
      {
        "format": "Require Timestamp",
        "condition": "true"
      }
    ],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/RequireWssTimestamp",
        "title": "Require Timestamp",
        "properties": {
          "identityTarget": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/sub-types/identityTarget"
          },
          "maxExpiryMilliseconds": {
            "type": "number"
          },
          "otherTargetMessageVariable": {
            "type": "string"
          },
          "recipientContext": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/sub-types/xmlSecurityRecipientContext"
          },
          "signatureRequired": {
            "type": "boolean",
            "default": true
          },
          "target": {
            "type": "string",
            "enum": [
              "REQUEST",
              "RESPONSE",
              "OTHER"
            ],
            "default": "REQUEST"
          },
          "timeUnit": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/sub-types/timeUnit",
            "default": "m"
          }
        }
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/sub-types/identityTarget",
        "properties": {
          "identityId": {
            "type": "string"
          },
          "identityInfo": {
            "type": "string"
          },
          "identityProviderOid": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/sub-types/goid"
          },
          "targetIdentityType": {
            "type": "string",
            "enum": [
              "USER",
              "GROUP",
              "PROVIDER",
              "TAG"
            ]
          }
        }
      },
      {
        "type": "string",
        "$id": "https://l7tech.com/2025/json-schema/assertions/sub-types/goid"
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/sub-types/xmlSecurityRecipientContext",
        "properties": {
          "actor": {
            "type": "string"
          },
          "base64edX509Certificate": {
            "type": "string"
          }
        }
      },
      {
        "type": "string",
        "$id": "https://l7tech.com/2025/json-schema/assertions/sub-types/timeUnit",
        "enum": [
          "ms",
          "s",
          "m",
          "h",
          "d"
        ]
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Require Timestamp",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/target",
            "options": {
              "messageTarget": true,
              "otherTargetMessageVariableLabel": "assertion.common.target.otherTargetContextVariable"
            }
          },
          {
            "type": "Group",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "timewrapper"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/maxExpiryMilliseconds",
                "i18n": "time",
                "options": {
                  "markAsRequired": true
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/timeUnit",
                "label": false,
                "i18n": "timeUnit",
                "options": {
                  "hideOptionalLabel": true
                }
              }
            ]
          },
          {
            "type": "Control",
            "scope": "#/properties/signatureRequired",
            "i18n": "signatureRequired",
            "options": {
              "hideOptionalLabel": true
            }
          },
          {
            "type": "Group",
            "label": "WS-Security Recipient",
            "options": {
              "groupType": "ShowHide"
            },
            "elements": [
              {
                "type": "Control",
                "options": {
                  "wssRecipient": true
                }
              }
            ]
          },
          {
            "type": "Group",
            "label": "Target Identity",
            "options": {
              "groupType": "ShowHide"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/identityTarget",
                "i18n": "identityTarget",
                "options": {
                  "identityTags": true
                }
              }
            ]
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/RequireWssTimestamp",
        "locale": "en",
        "content": {
          "timeUnit.ms": "Milliseconds",
          "timeUnit.s": "Seconds",
          "timeUnit.m": "Minutes",
          "timeUnit.h": "Hours",
          "timeUnit.d": "Days",
          "time.label": "Maximum Expiry Time",
          "signatureRequired.label": "Require signature",
          "maxExpiryMilliseconds.error": "Expiry is required and must be greater than 0 and less than 100 years."
        }
      }
    ]
  },
  {
    "configName": "RequireWssX509Cert",
    "displayNameFormats": [
      {
        "format": "Require WS-Security Signature Credentials",
        "condition": "true"
      }
    ],
    "refVariables": [
      {
        "fieldPath": ".signatureElementVariable",
        "refType": "IN",
        "dataType": "other"
      },
      {
        "fieldPath": ".signatureReferenceElementVariable",
        "refType": "IN",
        "dataType": "other"
      }
    ],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/RequireWssX509Cert",
        "title": "Require WS-Security Signature Credentials",
        "properties": {
          "allowMultipleSignatures": {
            "type": "boolean",
            "default": false
          },
          "otherTargetMessageVariable": {
            "type": "string"
          },
          "recipientContext": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/sub-types/xmlSecurityRecipientContext"
          },
          "signatureElementVariable": {
            "type": "string"
          },
          "signatureReferenceElementVariable": {
            "type": "string"
          },
          "target": {
            "type": "string",
            "enum": [
              "REQUEST",
              "RESPONSE",
              "OTHER"
            ],
            "default": "REQUEST"
          }
        }
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/sub-types/xmlSecurityRecipientContext",
        "properties": {
          "actor": {
            "type": "string"
          },
          "base64edX509Certificate": {
            "type": "string"
          }
        }
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/RequireWssX509Cert/Main",
        "title": "Require WS-Security Signature Credentials",
        "properties": {
          "RequireWssX509Cert": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/RequireWssX509Cert"
          },
          ".properties": {
            "type": "object",
            "properties": {
              ".enabled": {
                "type": "boolean",
                "default": true
              },
              ".left.comment": {
                "type": "string"
              },
              ".right.comment": {
                "type": "string"
              }
            }
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Require WS-Security Signature Credentials",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/target",
            "options": {
              "messageTarget": true
            }
          },
          {
            "type": "Group",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "require-ws-security-signature-credentials-group"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/allowMultipleSignatures",
                "i18n": "allowMultipleSignatures"
              },
              {
                "type": "Group",
                "options": {
                  "groupType": "wrapCustomClass",
                  "customClass": "require-ws-security-signature-credentials-sub-group"
                },
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/signatureElementVariable",
                    "i18n": "signatureElementVariable"
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/signatureReferenceElementVariable",
                    "i18n": "signatureReferenceElementVariable"
                  }
                ],
                "rule": {
                  "effect": "SHOW",
                  "condition": {
                    "scope": "#/properties/allowMultipleSignatures",
                    "schema": {
                      "const": true
                    }
                  }
                }
              }
            ]
          },
          {
            "type": "Group",
            "label": "WS-Security Recipient",
            "options": {
              "groupType": "ShowHide"
            },
            "elements": [
              {
                "type": "Control",
                "options": {
                  "wssRecipient": true
                }
              }
            ]
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/RequireWssX509Cert",
        "locale": "en",
        "content": {
          "allowMultipleSignatures.label": "Allow multiple signatures",
          "signatureElementVariable.label": "Signature Element Variable",
          "signatureReferenceElementVariable.label": "Signature Reference Element Variable"
        }
      }
    ]
  },
  {
    "configName": "ResolveService",
    "displayNameFormats": [
      {
        "format": "Resolve Service",
        "condition": "isNull({{.uri}})"
      },
      {
        "format": "Resolve Service with URI {{.uri}}",
        "condition": "true"
      }
    ],
    "refVariables": [
      {
        "fieldPath": ".prefix",
        "refType": "OUT",
        "dataType": "other",
        "prefixed": true
      },
      {
        "fieldPath": ".prefix",
        "suffix": ".name",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".prefix",
        "suffix": ".oid",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".prefix",
        "suffix": ".soap",
        "refType": "OUT",
        "dataType": "boolean"
      }
    ],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/ResolveService",
        "title": "Resolve Service",
        "properties": {
          "prefix": {
            "type": "string"
          },
          "uri": {
            "type": "string"
          }
        }
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/ResolveService/Main",
        "title": "Resolve Service",
        "properties": {
          "ResolveService": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/ResolveService"
          },
          ".properties": {
            "type": "object",
            "properties": {
              ".enabled": {
                "type": "boolean",
                "default": true
              },
              ".left.comment": {
                "type": "string"
              },
              ".right.comment": {
                "type": "string"
              }
            }
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Resolve Service",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/uri",
            "i18n": "uri",
            "options": {
              "markAsRequired": true
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/prefix",
            "i18n": "prefix",
            "options": {
              "markAsRequired": true,
              "contextVariable": true,
              "variableType": "output",
              "allowedDataTypes": []
            }
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/ResolveService",
        "locale": "en",
        "content": {
          "uri.label": "URI Path",
          "prefix.label": "Variable Prefix",
          "uri.error_text": "A URI path that does not use context variables must start with a forward slash"
        }
      }
    ]
  },
  {
    "configName": "ResponseXpath",
    "displayNameFormats": [
      {
        "format": "{{.xmlMsgSrc#variable#expression}} must match XPath {{.xpathExpression.expression}}",
        "condition": "not(isNull({{.xmlMsgSrc}}))"
      },
      {
        "format": "Response must match XPath {{.xpathExpression.expression}}",
        "condition": "true"
      }
    ],
    "refVariables": [
      {
        "fieldPath": ".xmlMsgSrc",
        "refType": "IN",
        "dataType": "message"
      },
      {
        "fieldPath": ".variablePrefix",
        "refType": "OUT",
        "dataType": "other",
        "prefixed": true
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".found",
        "refType": "OUT",
        "dataType": "boolean"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".count",
        "refType": "OUT",
        "dataType": "int"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".result",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".results",
        "refType": "OUT",
        "dataType": "string",
        "multivalued": true
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".element",
        "refType": "OUT",
        "dataType": "xml"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".elements",
        "refType": "OUT",
        "dataType": "xml",
        "multivalued": true
      }
    ],
    "configSchemas": [
      {
        "$id": "https://l7tech.com/2025/json-schema/assertions/ResponseXpath",
        "title": "Evaluate Response XPath",
        "type": "object",
        "properties": {
          "variablePrefix": {
            "type": "string"
          },
          "xmlMsgSrc": {
            "type": "string"
          },
          "xpathExpression": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/sub-types/xpathExpression"
          }
        }
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/sub-types/xpathExpression",
        "properties": {
          "expression": {
            "type": "string"
          },
          "namespaces": {
            "type": "object"
          },
          "xpathVersion": {
            "type": "string",
            "enum": [
              "UNSPECIFIED",
              "XPATH_1_0",
              "XPATH_2_0"
            ],
            "default": "UNSPECIFIED"
          }
        }
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/ResponseXpath/Main",
        "title": "Evaluate Response XPath",
        "properties": {
          "ResponseXpath": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/ResponseXpath"
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Evaluate Response XPath",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/xpathExpression",
            "i18n": "xpathExpression",
            "options": {
              "editXPath": true
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/variablePrefix",
            "i18n": "variablePrefix",
            "options": {
              "markAsRequired": false,
              "contextVariable": true,
              "variableType": "output",
              "allowedDataTypes": []
            }
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/ResponseXpath",
        "locale": "en",
        "content": {
          "xpathExpression.label": "XPath",
          "prefix.label": "Variable Prefix"
        }
      }
    ]
  },
  {
    "configName": "RetrieveOAuth1Token",
    "displayNameFormats": [
      {
        "format": "Retrieve OAuth 1.0 Token",
        "condition": "true"
      }
    ],
    "refVariables": [
      {
        "fieldPath": ".variablePrefix",
        "refType": "OUT",
        "dataType": "message"
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Retrieve OAuth 1.0 Token",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/target",
            "options": {
              "messageTarget": true,
              "otherTargetMessageVariableLabel": "assertion.common.target.otherTargetContextVariable"
            }
          },
          {
            "type": "Group",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "variable-prefix-spacing"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/variablePrefix",
                "i18n": "variablePrefix",
                "options": {
                  "markAsRequired": true,
                  "customClass": "variable-prefix-spacing",
                  "contextVariable": true,
                  "variableType": "output",
                  "allowedDataTypes": []
                }
              }
            ]
          },
          {
            "type": "Group",
            "label": "Authorization",
            "isExpanded": true,
            "options": {
              "groupType": "Accordion"
            },
            "elements": [
              {
                "type": "Group",
                "i18n": "resourceServer.heading",
                "options": {
                  "groupType": "wrapCustomClass",
                  "customClass": "section-heading"
                },
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/requestEndpoint",
                    "i18n": "requestEndpoint",
                    "options": {
                      "markAsRequired": true
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/authEndpoint",
                    "i18n": "authEndpoint",
                    "options": {
                      "markAsRequired": true
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/tokenEndpoint",
                    "i18n": "tokenEndpoint",
                    "options": {
                      "markAsRequired": true
                    }
                  }
                ]
              },
              {
                "type": "Group",
                "i18n": "oAuthConfiguration.heading",
                "options": {
                  "groupType": "wrapCustomClass",
                  "customClass": "section-heading top-spacing"
                },
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/callbackURL",
                    "i18n": "callbackURL"
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/oAuthToken",
                    "i18n": "oAuthToken"
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/oAuthTokenSecret",
                    "i18n": "oAuthTokenSecret"
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/oAuthVerifier",
                    "i18n": "oAuthVerifier"
                  }
                ]
              },
              {
                "type": "Group",
                "i18n": "clientAuthentication.heading",
                "options": {
                  "groupType": "wrapCustomClass",
                  "customClass": "section-heading top-spacing"
                },
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/consumerKey",
                    "i18n": "consumerKey",
                    "options": {
                      "markAsRequired": true
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/isConsumerSecretPlainText",
                    "i18n": "isConsumerSecretPlainText",
                    "options": {
                      "format": "radio",
                      "useRowLayout": false,
                      "uiSchemasMap": {
                        "true": {
                          "type": "Group",
                          "options": {
                            "groupType": "wrapCustomClass",
                            "customClass": "consumer-secret-spacing"
                          },
                          "elements": [
                            {
                              "type": "Control",
                              "scope": "#/properties/consumerSecretPlainText",
                              "i18n": "consumerSecretPlainText",
                              "options": {
                                "markAsRequired": true,
                                "format": "password"
                              }
                            }
                          ]
                        },
                        "false": {
                          "type": "Group",
                          "options": {
                            "groupType": "wrapCustomClass",
                            "customClass": "consumer-secret-spacing"
                          },
                          "elements": [
                            {
                              "type": "Control",
                              "scope": "#/properties/__consumerSecretSecurePasswordGoid",
                              "i18n": "__consumerSecretSecurePasswordGoid",
                              "options": {
                                "markAsRequired": true,
                                "manageStoredPassword": true
                              }
                            }
                          ]
                        }
                      }
                    }
                  }
                ]
              }
            ]
          },
          {
            "type": "Group",
            "label": "Parameters",
            "isExpanded": true,
            "options": {
              "groupType": "Accordion"
            },
            "elements": [
              {
                "type": "Group",
                "i18n": "inputParams.heading",
                "options": {
                  "groupType": "wrapCustomClass",
                  "customClass": "top-spacing"
                },
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/inputParams",
                    "i18n": "inputParams",
                    "options": {
                      "nameValueList": true,
                      "detail": {
                        "type": "VerticalLayout",
                        "elements": [
                          {
                            "type": "Control",
                            "scope": "#/properties/name",
                            "i18n": "inputParams.name",
                            "options": {
                              "autocomplete": true,
                              "markAsRequired": true,
                              "allowUserProvidedInput": true
                            }
                          },
                          {
                            "type": "Control",
                            "scope": "#/properties/value",
                            "i18n": "inputParams.value",
                            "options": {
                              "markAsRequired": true
                            }
                          },
                          {
                            "type": "Control",
                            "scope": "#/properties/includeType",
                            "i18n": "inputParams.includeType",
                            "options": {
                              "format": "radio",
                              "useRowLayout": false,
                              "hideColumn": true
                            }
                          }
                        ]
                      }
                    }
                  }
                ]
              },
              {
                "type": "Group",
                "options": {
                  "groupType": "wrapCustomClass",
                  "customClass": "query-params-spacing"
                },
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/allowCustomOAuthQueryParams",
                    "i18n": "allowCustomOAuthQueryParams"
                  }
                ]
              },
              {
                "type": "Control",
                "scope": "#/properties/httpMethod",
                "i18n": "httpMethod",
                "options": {
                  "autocomplete": true,
                  "allowUserProvidedInput": true,
                  "defaultOptions": [
                    {
                      "label": "${request.http.method}",
                      "value": "${request.http.method}"
                    },
                    {
                      "label": "GET",
                      "value": "GET"
                    },
                    {
                      "label": "POST",
                      "value": "POST"
                    }
                  ]
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/signatureMethod",
                "i18n": "signatureMethod"
              }
            ]
          }
        ]
      }
    ],
    "configSchemaPatches": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/RetrieveOAuth1Token",
        "patches": [
          {
            "op": "add",
            "path": "/properties/signatureMethod/enum",
            "value": [
              "HMAC-SHA1",
              "PLAINTEXT"
            ]
          },
          {
            "op": "add",
            "path": "/properties/isConsumerSecretPlainText/enum",
            "value": [
              true,
              false
            ]
          },
          {
            "op": "add",
            "path": "/properties/__consumerSecretSecurePasswordGoid",
            "value": {
              "type": "string"
            }
          },
          {
            "op": "replace",
            "path": "/properties/inputParams/items/properties",
            "value": {
              "name": {
                "type": "string"
              },
              "value": {
                "type": "string"
              },
              "includeType": {
                "type": "string",
                "enum": [
                  "BOTH",
                  "AUTHORIZATION_REQUEST",
                  "ACCESS_TOKEN_REQUEST"
                ],
                "default": "BOTH"
              },
              "usage": {
                "type": "string"
              }
            }
          },
          {
            "op": "remove",
            "path": "/properties/callbackURL/default"
          },
          {
            "op": "remove",
            "path": "/properties/oAuthToken/default"
          },
          {
            "op": "remove",
            "path": "/properties/oAuthTokenSecret/default"
          },
          {
            "op": "remove",
            "path": "/properties/oAuthVerifier/default"
          },
          {
            "op": "remove",
            "path": "/properties/variablePrefix/default"
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/RetrieveOAuth1Token",
        "locale": "en",
        "content": {
          "variablePrefix.label": "Variable Prefix",
          "resourceServer.heading": "Resource Server",
          "requestEndpoint.label": "Request Endpoint",
          "authEndpoint.label": "Authorize Endpoint",
          "tokenEndpoint.label": "Token Endpoint",
          "oAuthConfiguration.heading": "OAuth Configuration",
          "callbackURL.label": "Callback URL",
          "oAuthToken.label": "OAuth Token",
          "oAuthTokenSecret.label": "OAuth Token Secret",
          "oAuthVerifier.label": "OAuth Verifier",
          "clientAuthentication.heading": "Client Authentication",
          "consumerKey.label": "Consumer Key",
          "isConsumerSecretPlainText.label": "Consumer Secret",
          "isConsumerSecretPlainText.true": "Text",
          "isConsumerSecretPlainText.false": "Password store",
          "consumerSecretPlainText.label": "Password",
          "__consumerSecretSecurePasswordGoid.label": "Password",
          "inputParams.heading": "Request Token Parameters",
          "inputParams.label": "Parameter",
          "inputParams.name.label": "Name",
          "inputParams.value.label": "Value",
          "inputParams.includeType.label": "Include Parameter In",
          "inputParams.includeType.BOTH": "Both authorization request and access token request",
          "inputParams.includeType.AUTHORIZATION_REQUEST": "Authorization request",
          "inputParams.includeType.ACCESS_TOKEN_REQUEST": "Access token request",
          "allowCustomOAuthQueryParams.label": "Allow non-protocol query parameters with oauth_prefix",
          "httpMethod.label": "HTTP Method",
          "signatureMethod.label": "oauth_signature_method",
          "inputParams.name.duplicate.error": "The parameter already exisits"
        }
      }
    ]
  },
  {
    "configName": "RetrieveOAuth2Token",
    "displayNameFormats": [
      {
        "format": "Retrieve OAuth 2.0 Token - Authorization Code",
        "condition": "equals({{.grantType}}, AUTHORIZATION_CODE)"
      },
      {
        "format": "Retrieve OAuth 2.0 Token - Implicit",
        "condition": "equals({{.grantType}}, IMPLICIT)"
      },
      {
        "format": "Retrieve OAuth 2.0 Token - Resource Owner Password Credentials",
        "condition": "equals({{.grantType}}, RESOURCE_OWNER_PASSWORD_CREDENTIALS)"
      },
      {
        "format": "Retrieve OAuth 2.0 Token - Client Credentials",
        "condition": "equals({{.grantType}}, CLIENT_CREDENTIALS)"
      }
    ],
    "refVariables": [
      {
        "fieldPath": ".variablePrefix",
        "refType": "OUT",
        "dataType": "string"
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Retrieve OAuth 2.0 Token",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/target",
            "options": {
              "messageTarget": true
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/variablePrefix",
            "i18n": "variablePrefix",
            "options": {
              "contextVariable": true,
              "markAsRequired": false,
              "variableType": "output",
              "allowedDataTypes": []
            }
          },
          {
            "type": "Group",
            "label": "Authorization Server",
            "isExpanded": true,
            "options": {
              "groupType": "Accordion"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/grantType",
                "i18n": "grantType",
                "options": {
                  "markAsRequired": true
                }
              },
              {
                "type": "Group",
                "i18n": "authServer.label",
                "options": {
                  "groupType": "wrapCustomClass",
                  "customClass": "common-group-style"
                },
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/authEndpoint",
                    "i18n": "authEndpoint",
                    "options": {
                      "markAsRequired": true
                    },
                    "rule": {
                      "effect": "HIDE",
                      "condition": {
                        "scope": "#/properties/grantType",
                        "schema": {
                          "enum": [
                            "RESOURCE_OWNER_PASSWORD_CREDENTIALS",
                            "CLIENT_CREDENTIALS"
                          ]
                        }
                      }
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/tokenEndpoint",
                    "i18n": "tokenEndpoint",
                    "options": {
                      "markAsRequired": true
                    },
                    "rule": {
                      "effect": "HIDE",
                      "condition": {
                        "scope": "#/properties/grantType",
                        "schema": {
                          "const": "IMPLICIT"
                        }
                      }
                    }
                  }
                ]
              },
              {
                "type": "Group",
                "i18n": "clientAuth.label",
                "options": {
                  "groupType": "wrapCustomClass",
                  "customClass": "common-group-style"
                },
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/isClientAuthHttpBasic",
                    "i18n": "isClientAuthHttpBasic",
                    "options": {
                      "format": "radio",
                      "useRowLayout": false
                    },
                    "rule": {
                      "effect": "HIDE",
                      "condition": {
                        "scope": "#/properties/grantType",
                        "schema": {
                          "const": "IMPLICIT"
                        }
                      }
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/clientId",
                    "i18n": "clientId",
                    "options": {
                      "markAsRequired": true
                    }
                  },
                  {
                    "type": "Group",
                    "scope": "#/properties/__clientSecret",
                    "options": {
                      "format": "radio",
                      "useRowLayout": false,
                      "uiSchemasMap": {
                        "text": {
                          "type": "VerticalLayout",
                          "elements": [
                            {
                              "type": "Control",
                              "i18n": "clientSecretPlainText",
                              "scope": "#/properties/clientSecretPlainText",
                              "options": {
                                "markAsRequired": true,
                                "format": "password"
                              }
                            }
                          ]
                        },
                        "password": {
                          "type": "VerticalLayout",
                          "elements": [
                            {
                              "type": "Control",
                              "i18n": "clientSecretSecurePasswordGoid",
                              "label": false,
                              "scope": "#/properties/clientSecretSecurePasswordGoid",
                              "options": {
                                "markAsRequired": "true"
                              }
                            },
                            {
                              "type": "Control",
                              "i18n": "__paswordBtn",
                              "scope": "#/properties/__paswordBtn",
                              "options": {
                                "controlType": "Button",
                                "variant": "outlined",
                                "readonly": true
                              }
                            }
                          ]
                        }
                      }
                    },
                    "rule": {
                      "effect": "HIDE",
                      "condition": {
                        "scope": "#/properties/grantType",
                        "schema": {
                          "const": "IMPLICIT"
                        }
                      }
                    },
                    "i18n": "__clientSecret"
                  }
                ]
              },
              {
                "type": "Group",
                "elements": [
                  {
                    "type": "Group",
                    "i18n": "userAuth.label",
                    "options": {
                      "groupType": "wrapCustomClass",
                      "customClass": "common-group-style"
                    },
                    "elements": [
                      {
                        "type": "Control",
                        "scope": "#/properties/username",
                        "i18n": "username",
                        "options": {
                          "markAsRequired": true
                        }
                      },
                      {
                        "type": "Group",
                        "scope": "#/properties/__userPassword",
                        "i18n": "userPasswordType",
                        "options": {
                          "format": "radio",
                          "useRowLayout": false,
                          "uiSchemasMap": {
                            "text": {
                              "type": "VerticalLayout",
                              "elements": [
                                {
                                  "type": "Control",
                                  "i18n": "userPasswordPlainText",
                                  "scope": "#/properties/userPasswordPlainText",
                                  "options": {
                                    "markAsRequired": true,
                                    "format": "password"
                                  }
                                }
                              ]
                            },
                            "password": {
                              "type": "VerticalLayout",
                              "elements": [
                                {
                                  "type": "Control",
                                  "i18n": "userPasswordSecurePasswordGoid",
                                  "label": false,
                                  "scope": "#/properties/userPasswordSecurePasswordGoid",
                                  "options": {
                                    "markAsRequired": true
                                  }
                                },
                                {
                                  "type": "Control",
                                  "i18n": "__paswordBtn",
                                  "scope": "#/properties/__paswordBtn",
                                  "options": {
                                    "controlType": "Button",
                                    "variant": "outlined",
                                    "readonly": true
                                  }
                                }
                              ]
                            }
                          }
                        }
                      }
                    ]
                  }
                ],
                "rule": {
                  "effect": "SHOW",
                  "condition": {
                    "scope": "#/properties/grantType",
                    "schema": {
                      "const": "RESOURCE_OWNER_PASSWORD_CREDENTIALS"
                    }
                  }
                }
              }
            ]
          },
          {
            "type": "Group",
            "label": "Parameters",
            "options": {
              "groupType": "Accordion"
            },
            "elements": [
              {
                "type": "Group",
                "i18n": "inputParams.label",
                "options": {
                  "groupType": "wrapCustomClass",
                  "customClass": "input-group-style"
                },
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/inputParams",
                    "i18n": "inputParams",
                    "options": {
                      "nameValueList": true,
                      "detail": {
                        "type": "VerticalLayout",
                        "elements": [
                          {
                            "type": "Control",
                            "scope": "#/properties/name",
                            "i18n": "inputParams.name",
                            "options": {
                              "autocomplete": true,
                              "markAsRequired": true,
                              "defaultOptions": [
                                {
                                  "label": "redirect_uri",
                                  "value": "redirect_uri"
                                },
                                {
                                  "label": "scope",
                                  "value": "scope"
                                },
                                {
                                  "label": "state",
                                  "value": "state"
                                }
                              ],
                              "allowUserProvidedInput": true
                            }
                          },
                          {
                            "type": "Control",
                            "scope": "#/properties/value",
                            "i18n": "inputParams.value",
                            "options": {
                              "markAsRequired": true
                            }
                          },
                          {
                            "type": "Control",
                            "scope": "#/properties/includeType",
                            "i18n": "inputParams.includeType",
                            "options": {
                              "format": "radio",
                              "useRowLayout": false,
                              "hideColumn": true
                            }
                          }
                        ]
                      }
                    }
                  }
                ]
              }
            ]
          },
          {
            "type": "Group",
            "label": "Token Request Headers",
            "options": {
              "groupType": "Accordion"
            },
            "elements": [
              {
                "type": "Group",
                "i18n": "headersParams.label",
                "options": {
                  "groupType": "wrapCustomClass",
                  "customClass": "input-group-style"
                },
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/headers",
                    "i18n": "headers",
                    "options": {
                      "nameValueList": true,
                      "modalCallbackEvent": true,
                      "detail": {
                        "type": "VerticalLayout",
                        "elements": [
                          {
                            "type": "Control",
                            "scope": "#/properties/name",
                            "i18n": "headers.name",
                            "options": {
                              "markAsRequired": true
                            }
                          },
                          {
                            "type": "Control",
                            "scope": "#/properties/value",
                            "i18n": "headers.value",
                            "options": {
                              "markAsRequired": true
                            }
                          }
                        ]
                      }
                    }
                  }
                ]
              }
            ]
          }
        ]
      }
    ],
    "configSchemaPatches": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/RetrieveOAuth2Token",
        "patches": [
          {
            "op": "replace",
            "path": "/properties/clientSecretSecurePasswordGoid",
            "value": {
              "type": "string",
              "default": ""
            }
          },
          {
            "op": "replace",
            "path": "/properties/userPasswordSecurePasswordGoid",
            "value": {
              "type": "string",
              "default": ""
            }
          },
          {
            "op": "replace",
            "path": "/properties/isClientAuthHttpBasic",
            "value": {
              "type": "string",
              "default": "true",
              "enum": [
                "true",
                "false"
              ]
            }
          },
          {
            "op": "add",
            "path": "/properties/__clientSecret",
            "value": {
              "type": "string",
              "enum": [
                "text",
                "password"
              ]
            }
          },
          {
            "op": "add",
            "path": "/properties/__paswordBtn",
            "value": {
              "type": "string"
            }
          },
          {
            "op": "add",
            "path": "/properties/__userPassword",
            "value": {
              "type": "string",
              "enum": [
                "text",
                "password"
              ]
            }
          },
          {
            "op": "replace",
            "path": "/properties/isUserPasswordPlainText/enum",
            "value": [
              true,
              false
            ]
          },
          {
            "op": "replace",
            "path": "/properties/inputParams/items/properties",
            "value": {
              "name": {
                "type": "string",
                "default": "redirect_uri"
              },
              "value": {
                "type": "string"
              },
              "includeType": {
                "type": "string",
                "enum": [
                  "BOTH",
                  "AUTHORIZATION_REQUEST",
                  "ACCESS_TOKEN_REQUEST"
                ],
                "default": "BOTH"
              },
              "usage": {
                "type": "string"
              }
            }
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "RetrieveOAuth2Token/Main",
        "locale": "en",
        "content": {
          "authServer.label": "Authorization Server",
          "grantType.label": "Grant Type",
          "grantType.AUTHORIZATION_CODE": "Authorization Code",
          "grantType.IMPLICIT": "Implicit",
          "grantType.RESOURCE_OWNER_PASSWORD_CREDENTIALS": "Resource Owner Password Credentials",
          "grantType.CLIENT_CREDENTIALS": "Client Credentials",
          "authEndpoint.label": "Authorization Endpoint",
          "tokenEndpoint": "Token Endpoint",
          "variablePrefix": "Variable Prefix",
          "clientAuth.label": "Client Authentication",
          "clientId.label": "Client ID",
          "clientSecretPlainText.label": "Password",
          "userPasswordPlainText.label": "Password",
          "userPasswordType.label": "Password",
          "__clientSecret.label": "Client Secret",
          "__clientSecret.text": "Text",
          "__clientSecret.password": "Password Store",
          "userPasswordType.text": "Text",
          "userPasswordType.password": "Password Store",
          "__paswordBtn": "Manage Passwords",
          "isClientAuthHttpBasic.label": "Authentication Scheme",
          "isClientAuthHttpBasic.true": "HTTP Basic",
          "isClientAuthHttpBasic.false": "Request Body",
          "userAuth.label": "Resource Owner Authentication",
          "username.label": "Username",
          "__userPassword.label": "Password",
          "__userPassword.text": "Text",
          "__userPassword.password": "Password Store",
          "userPasswordSecurePasswordGoid": "Password (Secure Reference)",
          "headersParams.label": "Headers",
          "headers": "Custom Headers",
          "inputParams.heading": "Request Token Parameters",
          "inputParams.label": "Request Parameter",
          "inputParams.name.label": "Name",
          "inputParams.value.label": "Value",
          "inputParams.includeType.label": "Include Parameter In",
          "inputParams.includeType.BOTH": "Both authorization request and access token request",
          "inputParams.includeType.AUTHORIZATION_REQUEST": "Authorization request",
          "inputParams.includeType.ACCESS_TOKEN_REQUEST": "Access token request",
          "duplicate_attribute_name": "The parameter already exist",
          "duplicate_header_name": "The header already exist"
        }
      }
    ]
  },
  {
    "configName": "RetrieveServiceWsdl",
    "displayNameFormats": [
      {
        "format": "Retrieve WSDL for Service [{{.serviceId}}]",
        "condition": "equals({{.retrieveDependency}}, false)"
      },
      {
        "format": "Retrieve WSDL Dependency [{{.serviceDocumentId}}] for Service [{{.serviceId}}]",
        "condition": "and(not(isNull({{.serviceId}})),not(isNull({{.serviceDocumentId}})))"
      }
    ],
    "refVariables": [
      {
        "fieldPath": ".protocolVariable",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".messageTarget.otherTargetMessageVariable",
        "refType": "OUT",
        "dataType": "string"
      }
    ],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/RetrieveServiceWsdl",
        "title": "Retrieve Service WSDL",
        "properties": {
          "currentSecurityHeaderHandling": {
            "type": "integer",
            "default": 0
          },
          "host": {
            "type": "string"
          },
          "messageTarget": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/sub-types/messageTargetableSupport"
          },
          "port": {
            "type": "string"
          },
          "protocol": {
            "type": "string",
            "default": "FROMVAR",
            "enum": [
              "FROMVAR",
              "http",
              "https"
            ]
          },
          "protocolVariable": {
            "type": "string"
          },
          "proxyDependencies": {
            "type": "boolean",
            "default": false
          },
          "recipientContext": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/sub-types/xmlSecurityRecipientContext"
          },
          "retrieveDependency": {
            "type": "string",
            "enum": [
              "false",
              "true"
            ],
            "default": "false"
          },
          "serviceDocumentId": {
            "type": "string"
          },
          "serviceId": {
            "type": "string"
          },
          "xmlSecurityActorToPromote": {
            "type": "string"
          }
        }
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/sub-types/messageTargetableSupport",
        "properties": {
          "otherTargetMessageVariable": {
            "type": "string"
          },
          "sourceUsedByGateway": {
            "type": "boolean",
            "default": true
          },
          "target": {
            "type": "string",
            "enum": [
              "REQUEST",
              "RESPONSE",
              "OTHER"
            ],
            "default": "REQUEST"
          },
          "targetModifiedByGateway": {
            "type": "boolean",
            "default": false
          }
        }
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/sub-types/xmlSecurityRecipientContext",
        "properties": {
          "actor": {
            "type": "string"
          },
          "base64edX509Certificate": {
            "type": "string"
          }
        }
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/RetrieveServiceWsdl/Main",
        "title": "Retrieve Service WSDL",
        "properties": {
          "RetrieveServiceWsdl": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/RetrieveServiceWsdl"
          },
          ".properties": {
            "type": "object",
            "properties": {
              ".enabled": {
                "type": "boolean",
                "default": true
              },
              ".left.comment": {
                "type": "string"
              },
              ".right.comment": {
                "type": "string"
              }
            }
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Retrieve Service WSDL",
        "elements": [
          {
            "type": "Group",
            "i18n": "retrievalDetails.label",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "group-header-style"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/retrieveDependency",
                "label": false,
                "options": {
                  "format": "radio",
                  "useRowLayout": false
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/serviceId",
                "i18n": "serviceId",
                "options": {
                  "markAsRequired": true
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/serviceDocumentId",
                "i18n": "serviceDocumentId",
                "options": {
                  "markAsRequired": true
                },
                "rule": {
                  "effect": "SHOW",
                  "condition": {
                    "scope": "#/properties/retrieveDependency",
                    "schema": {
                      "enum": [
                        "true",
                        true
                      ]
                    }
                  }
                }
              }
            ]
          },
          {
            "type": "Group",
            "i18n": "endPointDetails.label",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "group-header-style"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/protocol",
                "i18n": "protocol"
              },
              {
                "type": "Control",
                "scope": "#/properties/protocolVariable",
                "i18n": "protocolVariable",
                "options": {
                  "contextVariable": true,
                  "markAsRequired": false,
                  "variableType": "output",
                  "allowedDataTypes": []
                },
                "rule": {
                  "effect": "SHOW",
                  "condition": {
                    "scope": "#/properties/protocol",
                    "schema": {
                      "const": "FROMVAR"
                    }
                  }
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/host",
                "i18n": "host",
                "options": {
                  "markAsRequired": true
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/port",
                "i18n": "port",
                "options": {
                  "markAsRequired": true
                }
              }
            ]
          },
          {
            "type": "Group",
            "i18n": "dependencies.label",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "group-header-style"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/proxyDependencies",
                "i18n": "proxyDependencies",
                "options": {
                  "format": "checkbox"
                },
                "rule": {
                  "effect": "SHOW",
                  "condition": {
                    "scope": "#/properties/retrieveDependency",
                    "schema": {
                      "enum": [
                        "false",
                        false
                      ]
                    }
                  }
                }
              }
            ]
          },
          {
            "type": "Control",
            "scope": "#/properties/messageTarget/properties/target",
            "i18n": "messageTarget.target"
          },
          {
            "type": "Control",
            "scope": "#/properties/messageTarget/properties/otherTargetMessageVariable",
            "i18n": "messageTarget.otherTargetMessageVariable",
            "options": {
              "contextVariable": true,
              "markAsRequired": false,
              "variableType": "output",
              "allowedDataTypes": []
            },
            "rule": {
              "effect": "SHOW",
              "condition": {
                "scope": "#/properties/messageTarget/properties/target",
                "schema": {
                  "const": "OTHER"
                }
              }
            }
          },
          {
            "type": "Group",
            "label": "WS-Security Recipient",
            "options": {
              "groupType": "ShowHide"
            },
            "elements": [
              {
                "type": "Control",
                "options": {
                  "wssRecipient": true
                }
              }
            ]
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/RetrieveServiceWsdl",
        "locale": "en",
        "content": {
          "retrievalDetails.label": "Retrieval Details",
          "retrieveDependency.true": "Retrieve WSDL dependency (service document)",
          "retrieveDependency.false": "Retrieve WSDL",
          "serviceId.label": "Service ID",
          "serviceDocumentId.label": "Service Document ID",
          "endPointDetails.label": "Endpoint Details",
          "protocol.label": "Protocol",
          "protocol.http": "HTTP",
          "protocol.https": "HTTPS",
          "protocol.FROMVAR": "From Variable",
          "protocolVariable.label": "Protocol Variable",
          "host.label": "Host",
          "port.label": "Port",
          "dependencies.label": "Dependencies",
          "proxyDependencies.label": "Proxy dependency references",
          "messageTarget.target.label": "Target Message",
          "messageTarget.target.REQUEST": "Request",
          "messageTarget.target.RESPONSE": "Response",
          "messageTarget.target.OTHER": "Message Variable",
          "messageTarget.otherTargetMessageVariable.label": "Message Variable",
          "error.invalid_port.contextvar.field": "Port number must be in range 1 to 65535, or a context variable",
          "error.invalid.context.or.serviceid": "Must be a valid context variable or a valid Service ID",
          "error.invalid.context.or.serviceDocid": "Must be a valid context variable or a valid Service Document ID"
        }
      }
    ]
  },
  {
    "configName": "SamlBrowserArtifact",
    "displayNameFormats": [
      {
        "format": "Retrieve SAML Browser Artifact from {{.ssoEndpointUrl}}",
        "condition": "and(not(isNull({{.ssoEndpointUrl}})))"
      }
    ],
    "refVariables": [
      {
        "fieldPath": ".",
        "suffix": "samlBrowserArtifact.artifact",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".",
        "suffix": "samlBrowserArtifact.redirectUrl",
        "refType": "OUT",
        "dataType": "string"
      }
    ],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/SamlBrowserArtifact",
        "title": "Retrieve SAML Browser Artifact",
        "properties": {
          "artifactQueryParameter": {
            "type": "string"
          },
          "authenticationProperties": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/sub-types/authenticationProperties"
          },
          "ssoEndpointUrl": {
            "type": "string"
          }
        }
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/sub-types/authenticationProperties",
        "properties": {
          "additionalFields": {
            "type": "object"
          },
          "__additionalFields": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "addressField": {
                  "type": "string",
                  "title": "Field Name"
                },
                "addressValue": {
                  "type": "string",
                  "title": "Field Value"
                },
                "field": {
                  "type": "string",
                  "title": "Field"
                }
              }
            }
          },
          "copyFormFields": {
            "type": "boolean",
            "default": false
          },
          "enableCookies": {
            "type": "boolean",
            "default": false
          },
          "formTarget": {
            "type": "string"
          },
          "method": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/sub-types/authenticationProperties$Method",
            "enum": [
              "basic",
              "form"
            ],
            "default": "basic"
          },
          "passwordFieldname": {
            "type": "string"
          },
          "redirectAfterSubmit": {
            "type": "boolean",
            "default": false
          },
          "requestForm": {
            "type": "boolean",
            "default": false
          },
          "usernameFieldname": {
            "type": "string"
          }
        }
      },
      {
        "type": "string",
        "$id": "https://l7tech.com/2025/json-schema/assertions/sub-types/authenticationProperties$Method",
        "enum": [
          "basic",
          "form"
        ]
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/SamlBrowserArtifact/Main",
        "title": "Retrieve SAML Browser Artifact",
        "properties": {
          "SamlBrowserArtifact": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/SamlBrowserArtifact"
          },
          ".properties": {
            "type": "object",
            "properties": {
              ".enabled": {
                "type": "boolean",
                "default": true
              },
              ".left.comment": {
                "type": "string"
              },
              ".right.comment": {
                "type": "string"
              }
            }
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Retrieve SAML Browser Artifact",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/ssoEndpointUrl",
            "i18n": "ssoEndpointUrl",
            "options": {
              "markAsRequired": true
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/artifactQueryParameter",
            "i18n": "artifactQueryParameter",
            "options": {
              "markAsRequired": true
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/authenticationProperties/properties/method",
            "i18n": "authenticationProperties.method"
          },
          {
            "type": "Control",
            "scope": "#/properties/authenticationProperties/properties/requestForm",
            "i18n": "authenticationProperties.requestForm",
            "options": {
              "format": "checkbox"
            },
            "rule": {
              "effect": "SHOW",
              "condition": {
                "scope": "#/properties/authenticationProperties/properties/method",
                "schema": {
                  "const": "form"
                }
              }
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/authenticationProperties/properties/redirectAfterSubmit",
            "i18n": "authenticationProperties.redirectAfterSubmit",
            "options": {
              "format": "checkbox"
            },
            "rule": {
              "effect": "SHOW",
              "condition": {
                "scope": "#/properties/authenticationProperties/properties/method",
                "schema": {
                  "const": "form"
                }
              }
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/authenticationProperties/properties/enableCookies",
            "i18n": "authenticationProperties.enableCookies",
            "options": {
              "format": "checkbox"
            },
            "rule": {
              "effect": "SHOW",
              "condition": {
                "scope": "#/properties/authenticationProperties/properties/method",
                "schema": {
                  "const": "form"
                }
              }
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/authenticationProperties/properties/copyFormFields",
            "i18n": "authenticationProperties.copyFormFields",
            "options": {
              "format": "checkbox"
            },
            "rule": {
              "effect": "SHOW",
              "condition": {
                "scope": "#/properties/authenticationProperties",
                "schema": {
                  "anyOf": [
                    {
                      "allOf": [
                        {
                          "properties": {
                            "method": {
                              "const": "form"
                            },
                            "requestForm": {
                              "const": true
                            }
                          },
                          "required": [
                            "method",
                            "requestForm"
                          ]
                        }
                      ]
                    }
                  ]
                }
              }
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/authenticationProperties/properties/formTarget",
            "i18n": "authenticationProperties.formTarget",
            "options": {
              "markAsRequired": true
            },
            "rule": {
              "effect": "SHOW",
              "condition": {
                "scope": "#/properties/authenticationProperties/properties/method",
                "schema": {
                  "const": "form"
                }
              }
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/authenticationProperties/properties/usernameFieldname",
            "i18n": "authenticationProperties.usernameFieldname",
            "options": {
              "markAsRequired": true
            },
            "rule": {
              "effect": "SHOW",
              "condition": {
                "scope": "#/properties/authenticationProperties/properties/method",
                "schema": {
                  "const": "form"
                }
              }
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/authenticationProperties/properties/passwordFieldname",
            "i18n": "authenticationProperties.passwordFieldname",
            "options": {
              "markAsRequired": true
            },
            "rule": {
              "effect": "SHOW",
              "condition": {
                "scope": "#/properties/authenticationProperties/properties/method",
                "schema": {
                  "const": "form"
                }
              }
            }
          },
          {
            "type": "Group",
            "options": {
              "groupType": "wrapCustomClass"
            },
            "elements": [
              {
                "type": "Group",
                "i18n": "additionalFields.label",
                "options": {
                  "groupType": "wrapCustomClass"
                }
              }
            ],
            "rule": {
              "effect": "SHOW",
              "condition": {
                "scope": "#/properties/authenticationProperties/properties/method",
                "schema": {
                  "const": "form"
                }
              }
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/authenticationProperties/properties/__additionalFields",
            "i18n": "additionalFields",
            "options": {
              "nameValueList": true,
              "detail": {
                "type": "VerticalLayout",
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/addressField",
                    "i18n": "AddressField",
                    "options": {
                      "markAsRequired": true,
                      "hideColumn": true
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/addressValue",
                    "i18n": "AddressValue",
                    "options": {
                      "hideColumn": true
                    }
                  }
                ]
              }
            },
            "rule": {
              "effect": "SHOW",
              "condition": {
                "scope": "#/properties/authenticationProperties/properties/method",
                "schema": {
                  "const": "form"
                }
              }
            }
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/SamlBrowserArtifact",
        "locale": "en",
        "content": {
          "ssoEndpointUrl.label": "SAML Single Sign-On Endpoint URL",
          "artifactQueryParameter.label": "SAML Artifact Query Parameter",
          "authenticationProperties.method.label": "Authentication Method",
          "authenticationProperties.method.basic": "Basic Authentication",
          "authenticationProperties.method.form": "Form Authentication",
          "authenticationProperties.requestForm.label": "Request before submit",
          "authenticationProperties.redirectAfterSubmit.label": "Expect redirect after submit",
          "authenticationProperties.enableCookies.label": "Enable cookies",
          "authenticationProperties.copyFormFields.label": "Preserve form fields",
          "additionalFields.label": "Additional Fields",
          "error.username_password_dependency": "Username and Password must both be provided if one is specified"
        }
      }
    ]
  },
  {
    "configName": "SamlIssuer",
    "displayNameFormats": [
      {
        "format": "Create SAML Token",
        "condition": "true"
      }
    ],
    "refVariables": [
      {
        "fieldPath": ".attributeStatement.variablePrefix",
        "refType": "OUT",
        "dataType": "other",
        "multivalued": false,
        "prefixed": true,
        "settable": false
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Create SAML Token",
        "elements": [
          {
            "type": "Categorization",
            "elements": [
              {
                "type": "Category",
                "label": "versionAndIssuerStepTitle",
                "description": "versionAndIssuerStepDescription",
                "validateFields": [
                  "__attributestatementType"
                ],
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/version",
                    "i18n": "samlVersion",
                    "options": {
                      "autocomplete": false,
                      "defaultOptions": [
                        {
                          "label": "Version 1.1",
                          "value": 1
                        },
                        {
                          "label": "Version 2.0",
                          "value": 2
                        }
                      ]
                    }
                  },
                  {
                    "type": "Group",
                    "i18n": "samlStatement.heading",
                    "options": {
                      "groupType": "wrapCustomClass",
                      "customClass": "method-spacing"
                    },
                    "elements": [
                      {
                        "type": "Control",
                        "scope": "#/properties/__authenticationstatementType",
                        "i18n": "__authenticationstatementType",
                        "options": {
                          "subUiSchema": {
                            "type": "VerticalLayout",
                            "elements": [
                              {
                                "type": "Control",
                                "scope": "#/properties/__includestatementType",
                                "i18n": "__includestatementType",
                                "options": {
                                  "customClass": "__includestatementType-label"
                                },
                                "rule": {
                                  "effect": "SHOW",
                                  "condition": {
                                    "schema": {
                                      "allOf": [
                                        {
                                          "properties": {
                                            "__authenticationstatementType": {
                                              "const": true
                                            }
                                          },
                                          "required": [
                                            "__authenticationstatementType"
                                          ]
                                        },
                                        {
                                          "properties": {
                                            "version": {
                                              "const": 2
                                            }
                                          },
                                          "required": [
                                            "version"
                                          ]
                                        }
                                      ]
                                    }
                                  }
                                }
                              }
                            ]
                          }
                        }
                      },
                      {
                        "type": "Control",
                        "scope": "#/properties/__authorizationstatementType",
                        "i18n": "__authorizationstatementType"
                      },
                      {
                        "type": "Control",
                        "scope": "#/properties/__attributestatementType",
                        "i18n": "__attributestatementType"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "Category",
                "label": "issuerStepTitle",
                "description": "issuerStepTitleDescription",
                "elements": [
                  {
                    "type": "Group",
                    "options": {
                      "groupType": "wrapCustomClass"
                    },
                    "elements": [
                      {
                        "type": "VerticalLayout",
                        "elements": [
                          {
                            "type": "Control",
                            "scope": "#/properties/__issuerAttr",
                            "i18n": "__issuerAttr"
                          },
                          {
                            "type": "Group",
                            "options": {
                              "groupType": "wrapCustomClass"
                            },
                            "elements": [
                              {
                                "type": "Control",
                                "scope": "#/properties/customIssuerFormat",
                                "i18n": "customIssuerFormat"
                              }
                            ],
                            "rule": {
                              "effect": "SHOW",
                              "condition": {
                                "scope": "#/properties/__issuerAttr",
                                "schema": {
                                  "const": true
                                }
                              }
                            }
                          },
                          {
                            "type": "Control",
                            "scope": "#/properties/customIssuerNameQualifier",
                            "i18n": "customIssuerNameQualifier"
                          }
                        ],
                        "rule": {
                          "effect": "SHOW",
                          "condition": {
                            "scope": "#/properties/version",
                            "schema": {
                              "const": 2
                            }
                          }
                        }
                      }
                    ]
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/__issuer",
                    "i18n": "__issuer"
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/customIssuerValue",
                    "i18n": "customIssuerValue",
                    "rule": {
                      "effect": "SHOW",
                      "condition": {
                        "scope": "#/properties/__issuer",
                        "schema": {
                          "const": "2"
                        }
                      }
                    }
                  }
                ]
              },
              {
                "type": "Category",
                "label": "authorizationStatement",
                "description": "authorizationDescription",
                "validateFields": [
                  "resource",
                  "action"
                ],
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/authorizationStatement/properties/resource",
                    "i18n": "resource",
                    "options": {
                      "markAsRequired": true
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/authorizationStatement/properties/action",
                    "i18n": "action",
                    "options": {
                      "markAsRequired": true
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/authorizationStatement/properties/actionNamespace",
                    "i18n": "actionNamespace"
                  }
                ],
                "rule": {
                  "effect": "SHOW",
                  "condition": {
                    "scope": "#/properties/__authorizationstatementType",
                    "schema": {
                      "const": true
                    }
                  }
                }
              },
              {
                "type": "Category",
                "label": "atributeStatementStepTitle",
                "description": "atributeStatementStepDescription",
                "validateFields": [
                  "name",
                  "value",
                  "nameFormat",
                  "filterExpression",
                  "attributes"
                ],
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/attributeStatement/properties/failIfAnyAttributeIsMissing",
                    "i18n": "failIfAnyAttributeIsMissing"
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/attributeStatement/properties/filterExpression",
                    "i18n": "filterExpression"
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/attributeStatement/properties/failIfUnknownAttributeInFilter",
                    "i18n": "failIfUnknownAttributeInFilter",
                    "options": {
                      "readonly": true
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/attributeStatement/properties/failIfNoAttributesAdded",
                    "i18n": "failIfNoAttributesAdded",
                    "options": {
                      "readonly": true
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/attributeStatement/properties/failIfAttributeValueExcludesAttribute",
                    "i18n": "failIfAttributeValueExcludesAttribute",
                    "options": {
                      "readonly": true
                    },
                    "rule": {
                      "effect": "SHOW",
                      "condition": {
                        "scope": "#/properties/version",
                        "schema": {
                          "const": 2
                        }
                      }
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/attributeStatement/properties/variablePrefix",
                    "i18n": "variablePrefix",
                    "options": {
                      "contextVariable": true,
                      "variableType": "output",
                      "allowedDataTypes": []
                    }
                  },
                  {
                    "type": "Group",
                    "i18n": "attributeStatement.attributes.label",
                    "options": {
                      "groupType": "wrapCustomClass",
                      "customClass": "label-heading-style"
                    },
                    "elements": [
                      {
                        "type": "Control",
                        "scope": "#/properties/attributeStatement/properties/attributes",
                        "i18n": "attributeStatement.attributes",
                        "options": {
                          "fieldGroup": true,
                          "atLeastOneRequired": true,
                          "buttonLabel": "attributeStatement.attributes.btn",
                          "detail": {
                            "type": "VerticalLayout",
                            "elements": [
                              {
                                "type": "Control",
                                "scope": "#/properties/name",
                                "i18n": "attributeStatement.attributes.name",
                                "options": {
                                  "markAsRequired": true
                                }
                              },
                              {
                                "type": "Control",
                                "scope": "#/properties/namespace",
                                "i18n": "attributeStatement.attributes.namespace",
                                "rule": {
                                  "effect": "SHOW",
                                  "condition": {
                                    "scope": "#/properties/__samlVersion",
                                    "schema": {
                                      "const": 1
                                    }
                                  }
                                }
                              },
                              {
                                "type": "Group",
                                "options": {
                                  "groupType": "wrapCustomClass"
                                },
                                "elements": [
                                  {
                                    "type": "Group",
                                    "i18n": "attributeStatement.nameFormat.label",
                                    "options": {
                                      "groupType": "wrapCustomClass",
                                      "customClass": "samlp-response-eval-two-elements"
                                    },
                                    "elements": [
                                      {
                                        "type": "HorizontalLayout",
                                        "elements": [
                                          {
                                            "type": "Control",
                                            "scope": "#/properties/__nameFormatType",
                                            "i18n": "attributeStatement.attributes.nameFormatType",
                                            "options": {
                                              "customClass": "hide-label"
                                            }
                                          },
                                          {
                                            "type": "Control",
                                            "scope": "#/properties/nameFormat",
                                            "i18n": "attributeStatement.attributes.nameFormatType",
                                            "options": {
                                              "markAsRequired": true,
                                              "customClass": "hide-label"
                                            },
                                            "rule": {
                                              "effect": "ENABLE",
                                              "condition": {
                                                "scope": "#/properties/__nameFormatType",
                                                "schema": {
                                                  "const": "OTHER"
                                                }
                                              }
                                            }
                                          }
                                        ]
                                      }
                                    ]
                                  }
                                ],
                                "rule": {
                                  "effect": "SHOW",
                                  "condition": {
                                    "scope": "#/properties/__samlVersion",
                                    "schema": {
                                      "const": 2
                                    }
                                  }
                                }
                              },
                              {
                                "type": "Control",
                                "scope": "#/properties/value",
                                "i18n": "attributeStatement.attributes.value",
                                "options": {
                                  "multiline": true,
                                  "rows": 3
                                }
                              },
                              {
                                "type": "Control",
                                "scope": "#/properties/addBehavior",
                                "i18n": "attributeStatement.attributes.addBehavior"
                              },
                              {
                                "type": "Control",
                                "scope": "#/properties/variableNotFoundBehavior",
                                "i18n": "attributeStatement.attributes.variableNotFoundBehavior"
                              },
                              {
                                "type": "Control",
                                "scope": "#/properties/emptyBehavior",
                                "i18n": "attributeStatement.attributes.emptyBehavior"
                              },
                              {
                                "type": "Control",
                                "scope": "#/properties/valueComparison",
                                "i18n": "attributeStatement.attributes.valueComparison",
                                "rule": {
                                  "effect": "SHOW",
                                  "condition": {
                                    "scope": "#/properties/__samlVersion",
                                    "schema": {
                                      "const": 2
                                    }
                                  }
                                }
                              },
                              {
                                "type": "Control",
                                "scope": "#/properties/missingWhenEmpty",
                                "i18n": "attributeStatement.attributes.missingWhenEmpty"
                              },
                              {
                                "type": "Control",
                                "scope": "#/properties/repeatIfMulti",
                                "i18n": "attributeStatement.attributes.repeatIfMulti"
                              }
                            ]
                          }
                        }
                      }
                    ]
                  }
                ],
                "rule": {
                  "effect": "SHOW",
                  "condition": {
                    "scope": "#/properties/__attributestatementType",
                    "schema": {
                      "const": true
                    }
                  }
                }
              },
              {
                "type": "Category",
                "label": "nameIdentifierStepTitle",
                "description": "nameIdentifierStepDescription",
                "elements": [
                  {
                    "type": "Group",
                    "options": {
                      "groupType": "wrapCustomClass"
                    },
                    "elements": [
                      {
                        "type": "Control",
                        "scope": "#/properties/__nameIdentifier",
                        "i18n": "__nameIdentifier"
                      },
                      {
                        "type": "Group",
                        "options": {
                          "groupType": "wrapCustomClass"
                        },
                        "elements": [
                          {
                            "type": "Control",
                            "scope": "#/properties/nameIdentifierFormat",
                            "i18n": "nameIdentifierFormat"
                          },
                          {
                            "type": "Control",
                            "scope": "#/properties/nameQualifier",
                            "i18n": "nameQualifier"
                          }
                        ],
                        "rule": {
                          "effect": "SHOW",
                          "condition": {
                            "scope": "#/properties/__nameIdentifier",
                            "schema": {
                              "const": true
                            }
                          }
                        }
                      }
                    ]
                  },
                  {
                    "type": "Group",
                    "options": {
                      "groupType": "wrapCustomClass"
                    },
                    "elements": [
                      {
                        "type": "Control",
                        "scope": "#/properties/nameIdentifierType",
                        "i18n": "nameIdentifierType"
                      },
                      {
                        "type": "Control",
                        "scope": "#/properties/nameIdentifierValue",
                        "i18n": "nameIdentifierValue",
                        "rule": {
                          "effect": "SHOW",
                          "condition": {
                            "scope": "#/properties/nameIdentifierType",
                            "schema": {
                              "const": "SPECIFIED"
                            }
                          }
                        }
                      }
                    ],
                    "rule": {
                      "effect": "SHOW",
                      "condition": {
                        "scope": "#/properties/__nameIdentifier",
                        "schema": {
                          "const": true
                        }
                      }
                    }
                  }
                ]
              },
              {
                "type": "Category",
                "label": "subjectConfirmationStepTitle",
                "description": "subjectConfirmationStepDescription",
                "validateFields": [
                  "subjectConfirmationDataNotOnOrAfterExpirySeconds",
                  "subjectConfirmationDataNotBeforeSecondsInPast"
                ],
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/subjectConfirmationMethodUri",
                    "i18n": "subjectConfirmationMethodUri"
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/__includeSubjectType",
                    "i18n": "__includeSubjectType",
                    "options": {
                      "subUiSchema": {
                        "type": "VerticalLayout",
                        "elements": [
                          {
                            "type": "Control",
                            "i18n": "subjectConfirmationKeyInfoType",
                            "scope": "#/properties/subjectConfirmationKeyInfoType",
                            "options": {
                              "customClass": "subjectConfirmationKeyInfoType-label"
                            }
                          }
                        ]
                      }
                    },
                    "rule": {
                      "effect": "SHOW",
                      "condition": {
                        "scope": "#/properties/subjectConfirmationMethodUri",
                        "schema": {
                          "const": "urn:oasis:names:tc:SAML:1.0:cm:holder-of-key"
                        }
                      }
                    }
                  },
                  {
                    "type": "Group",
                    "options": {
                      "groupType": "wrapCustomClass"
                    },
                    "elements": [
                      {
                        "type": "Group",
                        "i18n": "subjectConfirmationData.heading",
                        "options": {
                          "groupType": "wrapCustomClass",
                          "customClass": "subjectConfirmationData-spacing"
                        },
                        "elements": [
                          {
                            "type": "Control",
                            "scope": "#/properties/subjectConfirmationDataRecipient",
                            "i18n": "subjectConfirmationDataRecipient"
                          },
                          {
                            "type": "Control",
                            "scope": "#/properties/subjectConfirmationDataAddress",
                            "i18n": "subjectConfirmationDataAddress"
                          },
                          {
                            "type": "Control",
                            "scope": "#/properties/subjectConfirmationDataInResponseTo",
                            "i18n": "subjectConfirmationDataInResponseTo"
                          }
                        ]
                      },
                      {
                        "type": "Group",
                        "i18n": "validatePeriod.heading",
                        "options": {
                          "groupType": "wrapCustomClass",
                          "customClass": "subjectConfirmationData-spacing"
                        },
                        "elements": [
                          {
                            "type": "HorizontalLayout",
                            "elements": [
                              {
                                "type": "Control",
                                "scope": "#/properties/__subjectConfirmationDataNotBeforeSecondsInPast",
                                "i18n": "__subjectConfirmationDataNotBeforeSecondsInPast",
                                "options": {
                                  "customClass": "__validate-group"
                                }
                              },
                              {
                                "type": "Control",
                                "scope": "#/properties/subjectConfirmationDataNotBeforeSecondsInPast",
                                "i18n": "subjectConfirmationDataNotBeforeSecondsInPast",
                                "options": {
                                  "customClass": "validate-group",
                                  "markAsRequired": true
                                },
                                "rule": {
                                  "effect": "ENABLE",
                                  "condition": {
                                    "scope": "#/properties/__subjectConfirmationDataNotBeforeSecondsInPast",
                                    "schema": {
                                      "const": true
                                    }
                                  }
                                }
                              }
                            ]
                          },
                          {
                            "type": "HorizontalLayout",
                            "elements": [
                              {
                                "type": "Control",
                                "scope": "#/properties/__subjectConfirmationDataNotOnOrAfterExpirySeconds",
                                "label": "__subjectConfirmationDataNotOnOrAfterExpirySeconds",
                                "options": {
                                  "customClass": "__validate-group"
                                }
                              },
                              {
                                "type": "Control",
                                "scope": "#/properties/subjectConfirmationDataNotOnOrAfterExpirySeconds",
                                "i18n": "subjectConfirmationDataNotOnOrAfterExpirySeconds",
                                "options": {
                                  "markAsRequired": true,
                                  "customClass": "validate-group"
                                },
                                "rule": {
                                  "effect": "ENABLE",
                                  "condition": {
                                    "scope": "#/properties/__subjectConfirmationDataNotOnOrAfterExpirySeconds",
                                    "schema": {
                                      "const": true
                                    }
                                  }
                                }
                              }
                            ]
                          }
                        ]
                      }
                    ],
                    "rule": {
                      "effect": "SHOW",
                      "condition": {
                        "schema": {
                          "allOf": [
                            {
                              "properties": {
                                "subjectConfirmationMethodUri": {
                                  "not": {
                                    "const": "none"
                                  }
                                }
                              },
                              "required": [
                                "__authenticationstatementType"
                              ]
                            },
                            {
                              "properties": {
                                "version": {
                                  "const": 2
                                }
                              },
                              "required": [
                                "version"
                              ]
                            }
                          ]
                        }
                      }
                    }
                  }
                ]
              },
              {
                "type": "Category",
                "label": "conditionStepTitle",
                "description": "conditionStepDescription",
                "validateFields": [
                  "conditionsNotBeforeSecondsInPast",
                  "conditionsNotOnOrAfterExpirySeconds"
                ],
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/__conditions",
                    "i18n": "__conditions"
                  },
                  {
                    "type": "Group",
                    "options": {
                      "groupType": "wrapCustomClass"
                    },
                    "elements": [
                      {
                        "type": "Control",
                        "scope": "#/properties/conditionsNotBeforeSecondsInPast",
                        "i18n": "conditionsNotBeforeSecondsInPast"
                      },
                      {
                        "type": "Control",
                        "scope": "#/properties/conditionsNotOnOrAfterExpirySeconds",
                        "i18n": "conditionsNotOnOrAfterExpirySeconds"
                      }
                    ],
                    "rule": {
                      "effect": "SHOW",
                      "condition": {
                        "scope": "#/properties/__conditions",
                        "schema": {
                          "const": false
                        }
                      }
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/audienceRestriction",
                    "i18n": "audienceRestriction"
                  }
                ]
              },
              {
                "type": "Category",
                "label": "digitalSignaturesStepTitle",
                "description": "digitalSignaturesStepDescription",
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/signAssertion",
                    "i18n": "signAssertion"
                  },
                  {
                    "type": "Group",
                    "i18n": "wsSecurity.heading",
                    "options": {
                      "groupType": "wrapCustomClass",
                      "customClass": "wsSecurity-spacing"
                    },
                    "elements": [
                      {
                        "type": "Group",
                        "options": {
                          "groupType": "wrapCustomClass",
                          "customClass": "wsSecurity-content-spacing"
                        },
                        "elements": [
                          {
                            "type": "Control",
                            "scope": "#/properties/__insertAssertion",
                            "i18n": "__insertAssertion",
                            "options": {
                              "customClass": "__insertAssertion-field",
                              "subUiSchema": {
                                "type": "VerticalLayout",
                                "elements": [
                                  {
                                    "type": "Group",
                                    "options": {
                                      "groupType": "wrapCustomClass",
                                      "customClass": "wsSecurity-group"
                                    },
                                    "elements": [
                                      {
                                        "type": "Control",
                                        "i18n": "__includeAssertion",
                                        "scope": "#/properties/__includeAssertion"
                                      },
                                      {
                                        "type": "Control",
                                        "i18n": "__includeSoap",
                                        "scope": "#/properties/__includeSoap"
                                      }
                                    ]
                                  }
                                ]
                              }
                            }
                          },
                          {
                            "type": "Control",
                            "i18n": "__insertAssertionType",
                            "scope": "#/properties/__insertAssertionType",
                            "options": {
                              "customClass": "hide-label"
                            },
                            "rule": {
                              "effect": "ENABLE",
                              "condition": {
                                "scope": "#/properties/__insertAssertion",
                                "schema": {
                                  "const": true
                                }
                              }
                            }
                          }
                        ]
                      }
                    ]
                  },
                  {
                    "type": "Group",
                    "label": "Private Key",
                    "options": {
                      "groupType": "ShowHide"
                    },
                    "elements": [
                      {
                        "type": "Control",
                        "scope": "#/properties/__privateKey",
                        "options": {
                          "privateKey": true,
                          "keyTypeOptions": [
                            "DEFAULT_KEY",
                            "CUSTOM_PRIVATE_KEY"
                          ]
                        }
                      }
                    ]
                  }
                ]
              }
            ],
            "options": {
              "variant": "apimStepper",
              "wizardTitle": "samlProtocolResponseWizardTitle"
            }
          },
          {
            "type": "Group",
            "options": {
              "groupType": "ReadOnlyForm"
            },
            "elements": [
              {
                "type": "Group",
                "label": "SAML Version and SAML Statement",
                "isExpanded": true,
                "options": {
                  "groupType": "Accordion"
                },
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/version",
                    "i18n": "samlVersion",
                    "options": {
                      "autocomplete": false,
                      "defaultOptions": [
                        {
                          "label": "Version 1.1",
                          "value": 1
                        },
                        {
                          "label": "Version 2.0",
                          "value": 2
                        }
                      ]
                    }
                  },
                  {
                    "type": "Group",
                    "i18n": "samlStatement.heading",
                    "options": {
                      "groupType": "wrapCustomClass",
                      "customClass": "method-spacing"
                    },
                    "elements": [
                      {
                        "type": "Control",
                        "scope": "#/properties/__authenticationstatementType",
                        "i18n": "__authenticationstatementType",
                        "options": {
                          "subUiSchema": {
                            "type": "VerticalLayout",
                            "elements": [
                              {
                                "type": "Control",
                                "scope": "#/properties/__includestatementType",
                                "i18n": "__includestatementType",
                                "options": {
                                  "customClass": "__includestatementType-label"
                                },
                                "rule": {
                                  "effect": "SHOW",
                                  "condition": {
                                    "schema": {
                                      "allOf": [
                                        {
                                          "properties": {
                                            "__authenticationstatementType": {
                                              "const": true
                                            }
                                          },
                                          "required": [
                                            "__authenticationstatementType"
                                          ]
                                        },
                                        {
                                          "properties": {
                                            "version": {
                                              "const": 2
                                            }
                                          },
                                          "required": [
                                            "version"
                                          ]
                                        }
                                      ]
                                    }
                                  }
                                }
                              }
                            ]
                          }
                        }
                      },
                      {
                        "type": "Control",
                        "scope": "#/properties/__authorizationstatementType",
                        "i18n": "__authorizationstatementType"
                      },
                      {
                        "type": "Control",
                        "scope": "#/properties/__attributestatementType",
                        "i18n": "__attributestatementType"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "Group",
                "label": "Issuer",
                "isExpanded": true,
                "options": {
                  "groupType": "Accordion"
                },
                "elements": [
                  {
                    "type": "Group",
                    "options": {
                      "groupType": "wrapCustomClass"
                    },
                    "elements": [
                      {
                        "type": "VerticalLayout",
                        "elements": [
                          {
                            "type": "Control",
                            "scope": "#/properties/__issuerAttr",
                            "i18n": "__issuerAttr"
                          },
                          {
                            "type": "Group",
                            "options": {
                              "groupType": "wrapCustomClass"
                            },
                            "elements": [
                              {
                                "type": "Control",
                                "scope": "#/properties/customIssuerFormat",
                                "i18n": "customIssuerFormat"
                              }
                            ],
                            "rule": {
                              "effect": "SHOW",
                              "condition": {
                                "scope": "#/properties/__issuerAttr",
                                "schema": {
                                  "const": true
                                }
                              }
                            }
                          },
                          {
                            "type": "Control",
                            "scope": "#/properties/customIssuerNameQualifier",
                            "i18n": "customIssuerNameQualifier"
                          }
                        ],
                        "rule": {
                          "effect": "SHOW",
                          "condition": {
                            "scope": "#/properties/version",
                            "schema": {
                              "const": 2
                            }
                          }
                        }
                      }
                    ]
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/__issuer",
                    "i18n": "__issuer"
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/customIssuerValue",
                    "i18n": "customIssuerValue",
                    "rule": {
                      "effect": "SHOW",
                      "condition": {
                        "scope": "#/properties/__issuer",
                        "schema": {
                          "const": "2"
                        }
                      }
                    }
                  }
                ]
              },
              {
                "type": "Group",
                "options": {
                  "groupType": "wrapCustomClass"
                },
                "elements": [
                  {
                    "type": "Group",
                    "label": "Authorization Statement",
                    "isExpanded": true,
                    "options": {
                      "groupType": "Accordion"
                    },
                    "elements": [
                      {
                        "type": "Control",
                        "scope": "#/properties/authorizationStatement/properties/resource",
                        "i18n": "resource",
                        "options": {
                          "markAsRequired": true
                        }
                      },
                      {
                        "type": "Control",
                        "scope": "#/properties/authorizationStatement/properties/action",
                        "i18n": "action",
                        "options": {
                          "markAsRequired": true
                        }
                      },
                      {
                        "type": "Control",
                        "scope": "#/properties/authorizationStatement/properties/actionNamespace",
                        "i18n": "actionNamespace"
                      }
                    ]
                  }
                ],
                "rule": {
                  "effect": "SHOW",
                  "condition": {
                    "scope": "#/properties/__authorizationstatementType",
                    "schema": {
                      "const": true
                    }
                  }
                }
              },
              {
                "type": "Group",
                "options": {
                  "groupType": "wrapCustomClass"
                },
                "elements": [
                  {
                    "type": "Group",
                    "label": "Attribute Statement",
                    "isExpanded": true,
                    "options": {
                      "groupType": "Accordion"
                    },
                    "elements": [
                      {
                        "type": "Control",
                        "scope": "#/properties/attributeStatement/properties/failIfAnyAttributeIsMissing",
                        "i18n": "failIfAnyAttributeIsMissing"
                      },
                      {
                        "type": "Control",
                        "scope": "#/properties/attributeStatement/properties/filterExpression",
                        "i18n": "filterExpression"
                      },
                      {
                        "type": "Control",
                        "scope": "#/properties/attributeStatement/properties/failIfUnknownAttributeInFilter",
                        "i18n": "failIfUnknownAttributeInFilter"
                      },
                      {
                        "type": "Control",
                        "scope": "#/properties/attributeStatement/properties/failIfNoAttributesAdded",
                        "i18n": "failIfNoAttributesAdded"
                      },
                      {
                        "type": "Control",
                        "scope": "#/properties/attributeStatement/properties/failIfAttributeValueExcludesAttribute",
                        "i18n": "failIfAttributeValueExcludesAttribute",
                        "rule": {
                          "effect": "SHOW",
                          "condition": {
                            "scope": "#/properties/version",
                            "schema": {
                              "const": 2
                            }
                          }
                        }
                      },
                      {
                        "type": "Control",
                        "scope": "#/properties/attributeStatement/properties/variablePrefix",
                        "i18n": "variablePrefix",
                        "options": {
                          "contextVariable": true,
                          "variableType": "output",
                          "allowedDataTypes": []
                        }
                      },
                      {
                        "type": "Group",
                        "i18n": "attributeStatement.attributes.label",
                        "options": {
                          "groupType": "wrapCustomClass",
                          "customClass": "label-heading-style"
                        },
                        "elements": [
                          {
                            "type": "Control",
                            "scope": "#/properties/attributeStatement/properties/attributes",
                            "i18n": "attributeStatement.attributes",
                            "options": {
                              "fieldGroup": true,
                              "buttonLabel": "attributeStatement.attributes.btn",
                              "detail": {
                                "type": "VerticalLayout",
                                "elements": [
                                  {
                                    "type": "Control",
                                    "scope": "#/properties/name",
                                    "i18n": "attributeStatement.attributes.name",
                                    "options": {
                                      "markAsRequired": true
                                    }
                                  },
                                  {
                                    "type": "Control",
                                    "scope": "#/properties/namespace",
                                    "i18n": "attributeStatement.attributes.namespace",
                                    "rule": {
                                      "effect": "SHOW",
                                      "condition": {
                                        "scope": "#/properties/__samlVersion",
                                        "schema": {
                                          "const": 1
                                        }
                                      }
                                    }
                                  },
                                  {
                                    "type": "Group",
                                    "options": {
                                      "groupType": "wrapCustomClass"
                                    },
                                    "elements": [
                                      {
                                        "type": "Group",
                                        "i18n": "attributeStatement.nameFormat.label",
                                        "options": {
                                          "groupType": "wrapCustomClass",
                                          "customClass": "samlp-response-eval-two-elements"
                                        },
                                        "elements": [
                                          {
                                            "type": "HorizontalLayout",
                                            "elements": [
                                              {
                                                "type": "Control",
                                                "scope": "#/properties/__nameFormatType",
                                                "i18n": "attributeStatement.attributes.nameFormatType",
                                                "options": {
                                                  "customClass": "hide-label"
                                                }
                                              },
                                              {
                                                "type": "Control",
                                                "scope": "#/properties/nameFormat",
                                                "i18n": "attributeStatement.attributes.nameFormatType",
                                                "options": {
                                                  "markAsRequired": true,
                                                  "customClass": "hide-label"
                                                },
                                                "rule": {
                                                  "effect": "ENABLE",
                                                  "condition": {
                                                    "scope": "#/properties/__nameFormatType",
                                                    "schema": {
                                                      "const": "OTHER"
                                                    }
                                                  }
                                                }
                                              }
                                            ]
                                          }
                                        ]
                                      }
                                    ],
                                    "rule": {
                                      "effect": "SHOW",
                                      "condition": {
                                        "scope": "#/properties/__samlVersion",
                                        "schema": {
                                          "const": 2
                                        }
                                      }
                                    }
                                  },
                                  {
                                    "type": "Control",
                                    "scope": "#/properties/value",
                                    "i18n": "attributeStatement.attributes.value",
                                    "options": {
                                      "multiline": true,
                                      "rows": 3
                                    }
                                  },
                                  {
                                    "type": "Control",
                                    "scope": "#/properties/addBehavior",
                                    "i18n": "attributeStatement.attributes.addBehavior"
                                  },
                                  {
                                    "type": "Control",
                                    "scope": "#/properties/variableNotFoundBehavior",
                                    "i18n": "attributeStatement.attributes.variableNotFoundBehavior"
                                  },
                                  {
                                    "type": "Control",
                                    "scope": "#/properties/emptyBehavior",
                                    "i18n": "attributeStatement.attributes.emptyBehavior"
                                  },
                                  {
                                    "type": "Control",
                                    "scope": "#/properties/valueComparison",
                                    "i18n": "attributeStatement.attributes.valueComparison",
                                    "rule": {
                                      "effect": "SHOW",
                                      "condition": {
                                        "scope": "#/properties/__samlVersion",
                                        "schema": {
                                          "const": 2
                                        }
                                      }
                                    }
                                  },
                                  {
                                    "type": "Control",
                                    "scope": "#/properties/missingWhenEmpty",
                                    "i18n": "attributeStatement.attributes.missingWhenEmpty"
                                  },
                                  {
                                    "type": "Control",
                                    "scope": "#/properties/repeatIfMulti",
                                    "i18n": "attributeStatement.attributes.repeatIfMulti"
                                  }
                                ]
                              }
                            }
                          }
                        ]
                      }
                    ]
                  }
                ],
                "rule": {
                  "effect": "SHOW",
                  "condition": {
                    "scope": "#/properties/__attributestatementType",
                    "schema": {
                      "const": true
                    }
                  }
                }
              },
              {
                "type": "Group",
                "label": "Name Identifier",
                "isExpanded": true,
                "options": {
                  "groupType": "Accordion"
                },
                "elements": [
                  {
                    "type": "Group",
                    "options": {
                      "groupType": "wrapCustomClass"
                    },
                    "elements": [
                      {
                        "type": "Control",
                        "scope": "#/properties/__nameIdentifier",
                        "i18n": "__nameIdentifier"
                      },
                      {
                        "type": "Group",
                        "options": {
                          "groupType": "wrapCustomClass"
                        },
                        "elements": [
                          {
                            "type": "Control",
                            "scope": "#/properties/nameIdentifierFormat",
                            "i18n": "nameIdentifierFormat"
                          },
                          {
                            "type": "Control",
                            "scope": "#/properties/nameQualifier",
                            "i18n": "nameQualifier"
                          }
                        ],
                        "rule": {
                          "effect": "SHOW",
                          "condition": {
                            "scope": "#/properties/__nameIdentifier",
                            "schema": {
                              "const": true
                            }
                          }
                        }
                      }
                    ]
                  },
                  {
                    "type": "Group",
                    "options": {
                      "groupType": "wrapCustomClass"
                    },
                    "elements": [
                      {
                        "type": "Control",
                        "scope": "#/properties/nameIdentifierType",
                        "i18n": "nameIdentifierType"
                      },
                      {
                        "type": "Control",
                        "scope": "#/properties/nameIdentifierValue",
                        "i18n": "nameIdentifierValue",
                        "rule": {
                          "effect": "SHOW",
                          "condition": {
                            "scope": "#/properties/nameIdentifierType",
                            "schema": {
                              "const": "SPECIFIED"
                            }
                          }
                        }
                      }
                    ],
                    "rule": {
                      "effect": "SHOW",
                      "condition": {
                        "scope": "#/properties/__nameIdentifier",
                        "schema": {
                          "const": true
                        }
                      }
                    }
                  }
                ]
              },
              {
                "type": "Group",
                "label": "Subject Confirmation",
                "isExpanded": true,
                "options": {
                  "groupType": "Accordion"
                },
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/subjectConfirmationMethodUri",
                    "i18n": "subjectConfirmationMethodUri"
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/__includeSubjectType",
                    "i18n": "__includeSubjectType",
                    "options": {
                      "subUiSchema": {
                        "type": "VerticalLayout",
                        "elements": [
                          {
                            "type": "Control",
                            "i18n": "subjectConfirmationKeyInfoType",
                            "scope": "#/properties/subjectConfirmationKeyInfoType",
                            "options": {
                              "customClass": "subjectConfirmationKeyInfoType-label"
                            }
                          }
                        ]
                      }
                    },
                    "rule": {
                      "effect": "SHOW",
                      "condition": {
                        "scope": "#/properties/subjectConfirmationMethodUri",
                        "schema": {
                          "const": "urn:oasis:names:tc:SAML:1.0:cm:holder-of-key"
                        }
                      }
                    }
                  },
                  {
                    "type": "Group",
                    "options": {
                      "groupType": "wrapCustomClass"
                    },
                    "elements": [
                      {
                        "type": "Group",
                        "i18n": "subjectConfirmationData.heading",
                        "options": {
                          "groupType": "wrapCustomClass",
                          "customClass": "subjectConfirmationData-spacing"
                        },
                        "elements": [
                          {
                            "type": "Control",
                            "scope": "#/properties/subjectConfirmationDataRecipient",
                            "i18n": "subjectConfirmationDataRecipient"
                          },
                          {
                            "type": "Control",
                            "scope": "#/properties/subjectConfirmationDataAddress",
                            "i18n": "subjectConfirmationDataAddress"
                          },
                          {
                            "type": "Control",
                            "scope": "#/properties/subjectConfirmationDataInResponseTo",
                            "i18n": "subjectConfirmationDataInResponseTo"
                          }
                        ]
                      },
                      {
                        "type": "Group",
                        "i18n": "validatePeriod.heading",
                        "options": {
                          "groupType": "wrapCustomClass",
                          "customClass": "subjectConfirmationData-spacing"
                        },
                        "elements": [
                          {
                            "type": "HorizontalLayout",
                            "elements": [
                              {
                                "type": "Control",
                                "scope": "#/properties/__subjectConfirmationDataNotBeforeSecondsInPast",
                                "i18n": "__subjectConfirmationDataNotBeforeSecondsInPast",
                                "options": {
                                  "customClass": "__validate-group"
                                }
                              },
                              {
                                "type": "Control",
                                "scope": "#/properties/subjectConfirmationDataNotBeforeSecondsInPast",
                                "i18n": "subjectConfirmationDataNotBeforeSecondsInPast",
                                "options": {
                                  "customClass": "validate-group"
                                },
                                "rule": {
                                  "effect": "ENABLE",
                                  "condition": {
                                    "scope": "#/properties/__subjectConfirmationDataNotBeforeSecondsInPast",
                                    "schema": {
                                      "const": true
                                    }
                                  }
                                }
                              }
                            ]
                          },
                          {
                            "type": "HorizontalLayout",
                            "elements": [
                              {
                                "type": "Control",
                                "scope": "#/properties/__subjectConfirmationDataNotOnOrAfterExpirySeconds",
                                "label": "__subjectConfirmationDataNotOnOrAfterExpirySeconds",
                                "options": {
                                  "customClass": "__validate-group"
                                }
                              },
                              {
                                "type": "Control",
                                "scope": "#/properties/subjectConfirmationDataNotOnOrAfterExpirySeconds",
                                "i18n": "subjectConfirmationDataNotOnOrAfterExpirySeconds",
                                "options": {
                                  "customClass": "validate-group"
                                },
                                "rule": {
                                  "effect": "ENABLE",
                                  "condition": {
                                    "scope": "#/properties/__subjectConfirmationDataNotOnOrAfterExpirySeconds",
                                    "schema": {
                                      "const": true
                                    }
                                  }
                                }
                              }
                            ]
                          }
                        ]
                      }
                    ],
                    "rule": {
                      "effect": "SHOW",
                      "condition": {
                        "schema": {
                          "allOf": [
                            {
                              "properties": {
                                "subjectConfirmationMethodUri": {
                                  "not": {
                                    "const": "none"
                                  }
                                }
                              },
                              "required": [
                                "__authenticationstatementType"
                              ]
                            },
                            {
                              "properties": {
                                "version": {
                                  "const": 2
                                }
                              },
                              "required": [
                                "version"
                              ]
                            }
                          ]
                        }
                      }
                    }
                  }
                ]
              },
              {
                "type": "Group",
                "label": "Conditions",
                "isExpanded": true,
                "options": {
                  "groupType": "Accordion"
                },
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/__conditions",
                    "i18n": "__conditions"
                  },
                  {
                    "type": "Group",
                    "options": {
                      "groupType": "wrapCustomClass"
                    },
                    "elements": [
                      {
                        "type": "Control",
                        "scope": "#/properties/conditionsNotBeforeSecondsInPast",
                        "i18n": "conditionsNotBeforeSecondsInPast"
                      },
                      {
                        "type": "Control",
                        "scope": "#/properties/conditionsNotOnOrAfterExpirySeconds",
                        "i18n": "conditionsNotOnOrAfterExpirySeconds"
                      }
                    ],
                    "rule": {
                      "effect": "SHOW",
                      "condition": {
                        "scope": "#/properties/__conditions",
                        "schema": {
                          "const": false
                        }
                      }
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/audienceRestriction",
                    "i18n": "audienceRestriction"
                  }
                ]
              },
              {
                "type": "Group",
                "label": "Digital Signatures",
                "isExpanded": true,
                "options": {
                  "groupType": "Accordion"
                },
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/signAssertion",
                    "i18n": "signAssertion"
                  },
                  {
                    "type": "Group",
                    "i18n": "wsSecurity.heading",
                    "options": {
                      "groupType": "wrapCustomClass",
                      "customClass": "wsSecurity-spacing"
                    },
                    "elements": [
                      {
                        "type": "Group",
                        "options": {
                          "groupType": "wrapCustomClass",
                          "customClass": "wsSecurity-content-spacing"
                        },
                        "elements": [
                          {
                            "type": "Control",
                            "scope": "#/properties/__insertAssertion",
                            "i18n": "__insertAssertion",
                            "options": {
                              "customClass": "__insertAssertion-field",
                              "subUiSchema": {
                                "type": "VerticalLayout",
                                "elements": [
                                  {
                                    "type": "Group",
                                    "options": {
                                      "groupType": "wrapCustomClass",
                                      "customClass": "wsSecurity-group"
                                    },
                                    "elements": [
                                      {
                                        "type": "Control",
                                        "i18n": "__includeAssertion",
                                        "scope": "#/properties/__includeAssertion"
                                      },
                                      {
                                        "type": "Control",
                                        "i18n": "__includeSoap",
                                        "scope": "#/properties/__includeSoap"
                                      }
                                    ]
                                  }
                                ]
                              }
                            }
                          },
                          {
                            "type": "Control",
                            "i18n": "__insertAssertionType",
                            "scope": "#/properties/__insertAssertionType",
                            "options": {
                              "readonly": true,
                              "customClass": "hide-label"
                            }
                          }
                        ]
                      }
                    ]
                  },
                  {
                    "type": "Group",
                    "label": "Private Key",
                    "options": {
                      "readonly": true,
                      "groupType": "ShowHide"
                    },
                    "elements": [
                      {
                        "type": "Control",
                        "scope": "#/properties/__privateKey",
                        "options": {
                          "readonly": true,
                          "privateKey": true,
                          "keyTypeOptions": [
                            "DEFAULT_KEY",
                            "CUSTOM_PRIVATE_KEY"
                          ]
                        }
                      }
                    ]
                  }
                ]
              }
            ]
          }
        ]
      }
    ],
    "configSchemaPatches": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/SamlIssuer",
        "patches": [
          {
            "op": "add",
            "path": "/properties/__issuer",
            "value": {
              "type": "string",
              "enum": [
                "1",
                "2"
              ],
              "default": "1"
            }
          },
          {
            "op": "add",
            "path": "/properties/__authenticationstatementType",
            "value": {
              "type": "boolean",
              "default": true
            }
          },
          {
            "op": "add",
            "path": "/properties/__authorizationstatementType",
            "value": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "op": "add",
            "path": "/properties/__attributestatementType",
            "value": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "op": "add",
            "path": "/properties/__includestatementType",
            "value": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "op": "replace",
            "path": "/properties/__nameIdentifier",
            "value": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "op": "replace",
            "path": "/properties/nameIdentifierFormat",
            "value": {
              "type": "string",
              "enum": [
                "automatic",
                "urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName",
                "urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress",
                "urn:oasis:names:tc:SAML:1.1:nameid-format:WindowsDomainQualifiedName",
                "urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified"
              ],
              "default": "automatic"
            }
          },
          {
            "op": "replace",
            "path": "/properties/customIssuerFormat",
            "value": {
              "type": "string",
              "enum": [
                "urn:oasis:names:tc:SAML:2.0:nameid-format:entity",
                "urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName",
                "urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified",
                "urn:oasis:names:tc:SAML:1.1:nameid-format:WindowsDomainQualifiedName",
                "urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress",
                "urn:oasis:names:tc:SAML:2.0:nameid-format:kerberos"
              ],
              "default": "urn:oasis:names:tc:SAML:2.0:nameid-format:entity"
            }
          },
          {
            "op": "add",
            "path": "/properties/__includeSubjectType",
            "value": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "op": "replace",
            "path": "/properties/nameIdentifierType/enum",
            "value": [
              "FROM_CREDS",
              "FROM_USER",
              "SPECIFIED"
            ]
          },
          {
            "op": "replace",
            "path": "/properties/subjectConfirmationMethodUri",
            "value": {
              "type": "string",
              "enum": [
                "urn:oasis:names:tc:SAML:1.0:cm:holder-of-key",
                "urn:oasis:names:tc:SAML:1.0:cm:sender-vouches",
                "urn:oasis:names:tc:SAML:1.0:cm:bearer",
                "none"
              ],
              "default": "none"
            }
          },
          {
            "op": "replace",
            "path": "/properties/subjectConfirmationKeyInfoType/enum",
            "value": [
              "CERT",
              "STR_SKI",
              "STR_THUMBPRINT"
            ]
          },
          {
            "op": "add",
            "path": "/properties/__subjectConfirmationDataNotOnOrAfterExpirySeconds",
            "value": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "op": "add",
            "path": "/properties/__issuerAttr",
            "value": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "op": "add",
            "path": "/properties/__subjectConfirmationDataNotBeforeSecondsInPast",
            "value": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "op": "remove",
            "path": "/properties/subjectConfirmationDataNotOnOrAfterExpirySeconds/default"
          },
          {
            "op": "remove",
            "path": "/properties/subjectConfirmationDataNotBeforeSecondsInPast/default"
          },
          {
            "op": "replace",
            "path": "/properties/keyAlias/default",
            "value": "ssl"
          },
          {
            "op": "replace",
            "path": "/properties/nonDefaultKeystoreId/default",
            "value": "00000000000000000000000000000002"
          },
          {
            "op": "add",
            "path": "/properties/__conditions",
            "value": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "op": "remove",
            "path": "/properties/conditionsNotBeforeSecondsInPast/default"
          },
          {
            "op": "remove",
            "path": "/properties/conditionsNotOnOrAfterExpirySeconds/default"
          },
          {
            "op": "add",
            "path": "/properties/__privateKey",
            "value": {
              "type": "string",
              "i18n": "http-routing.__privateKey"
            }
          },
          {
            "op": "add",
            "path": "/properties/__insertAssertion",
            "value": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "op": "add",
            "path": "/properties/__includeAssertion",
            "value": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "op": "add",
            "path": "/properties/__includeSoap",
            "value": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "op": "add",
            "path": "/properties/__insertAssertionType",
            "value": {
              "type": "string",
              "enum": [
                "REQUEST",
                "RESPONSE"
              ],
              "i18n": "__insertAssertionType",
              "default": "REQUEST"
            }
          },
          {
            "op": "replace",
            "path": "/properties/attributeStatement",
            "value": {
              "type": "object",
              "properties": {
                "attributes": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "__nameFormatType": {
                        "type": "string",
                        "enum": [
                          "UNSPECIFIED",
                          "URI_REF",
                          "BASIC",
                          "OTHER"
                        ],
                        "default": "UNSPECIFIED"
                      },
                      "addBehavior": {
                        "type": "string",
                        "enum": [
                          "STRING_CONVERT",
                          "ADD_AS_XML"
                        ],
                        "default": "STRING_CONVERT"
                      },
                      "anyValue": {
                        "type": "boolean",
                        "default": false
                      },
                      "emptyBehavior": {
                        "type": "string",
                        "enum": [
                          "EMPTY_STRING",
                          "EXISTS_NO_VALUE",
                          "NULL_VALUE"
                        ],
                        "default": "EMPTY_STRING"
                      },
                      "friendlyName": {
                        "type": "string"
                      },
                      "missingWhenEmpty": {
                        "type": "boolean",
                        "default": false
                      },
                      "name": {
                        "type": "string"
                      },
                      "nameFormat": {
                        "type": "string"
                      },
                      "namespace": {
                        "type": "string"
                      },
                      "repeatIfMulti": {
                        "type": "boolean",
                        "default": false
                      },
                      "value": {
                        "type": "string"
                      },
                      "valueComparison": {
                        "type": "string",
                        "enum": [
                          "STRING_COMPARE",
                          "CANONICALIZE"
                        ],
                        "default": "STRING_COMPARE"
                      },
                      "variableNotFoundBehavior": {
                        "type": "string",
                        "enum": [
                          "REPLACE_EMPTY_STRING",
                          "REPLACE_EXPRESSION_EMPTY_STRING"
                        ],
                        "default": "REPLACE_EMPTY_STRING"
                      }
                    }
                  }
                },
                "failIfAnyAttributeIsMissing": {
                  "type": "boolean",
                  "default": false
                },
                "failIfAttributeValueExcludesAttribute": {
                  "type": "boolean",
                  "default": false
                },
                "failIfNoAttributesAdded": {
                  "type": "boolean",
                  "default": true
                },
                "failIfUnknownAttributeInFilter": {
                  "type": "boolean",
                  "default": false
                },
                "filterExpression": {
                  "type": "string",
                  "default": ""
                },
                "variablePrefix": {
                  "type": "string",
                  "default": "attrStatement"
                }
              }
            }
          },
          {
            "op": "add",
            "path": "/properties/attributeStatement/properties/attributes/properties/__samlVersion",
            "value": {
              "type": "string"
            }
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/SamlIssuer",
        "locale": "en",
        "content": {
          "samlProtocolResponseWizardTitle": "SAML Wizard",
          "versionAndIssuerStepTitle": "SAML Version and SAML Statement",
          "versionAndIssuerStepDescription": "Specify the SAML version and the SAML Statement types you wish to configure.",
          "samlVersion.label": "SAML Version",
          "__issuer.label": "Issuer Value",
          "__issuer.1": "Default",
          "__issuer.2": "From Template",
          "atributeStatementStepTitle": "Attribute Statement",
          "atributeStatementStepDescription": "Specify the SAML attributes that the SAML statement will include.",
          "attributeStatement.attributes.namespace.label": "Attribute Namespace",
          "attributeStatement.attributes.name.label": "Attribute Name",
          "attributeStatement.attributes.nameFormatType.UNSPECIFIED": "Unspecified",
          "attributeStatement.attributes.nameFormatType.URI_REF": "URI Reference",
          "attributeStatement.attributes.nameFormatType.BASIC": "Basic",
          "attributeStatement.attributes.nameFormatType.OTHER": "Other",
          "attributeStatement.nameFormat.label": "Attribute Name Format",
          "__authenticationstatementType.label": "Authentication statement",
          "__authorizationstatementType.label": "Authorization decision statement",
          "__attributestatementType.label": "Attribute statement",
          "__includestatementType.label": "Include authentication context decoration",
          "samlStatement.heading": "SAML Statement (at least one is required)",
          "authorizationStatement": "Authorization Statement",
          "authorizationDescription": "Specify  the resource that the SAML statement will describe.",
          "resource.label": "Resource",
          "action.label": "Resource Action",
          "actionNamespace.label": "Action Namespace",
          "nameIdentifierStepTitle": "Name Identifier",
          "nameIdentifierStepDescription": "Specify one or more formats that will be accepted by the gateway and the optional subject name qualifier.",
          "__nameIdentifier.label": "Include name identifier",
          "nameIdentifierFormat.label": "Format",
          "nameIdentifierFormat.automatic": "Automatic",
          "nameIdentifierFormat.urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName": "X.509 Subject Name",
          "nameIdentifierFormat.urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified": "Unspecified",
          "nameIdentifierFormat.urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress": "Email Address",
          "nameIdentifierFormat.urn:oasis:names:tc:SAML:1.1:nameid-format:WindowsDomainQualifiedName": "Windows Domain Qualified Name",
          "nameQualifier.label": "Name Qualifier",
          "nameIdentifierType.label": "Name Identifier Value",
          "nameIdentifierType.SPECIFIED": "From Template",
          "nameIdentifierType.FROM_CREDS": "From Credantials",
          "nameIdentifierType.FROM_USER": "From Authenticated User",
          "subjectConfirmationMethodUri.label": "Subject Confirmation Method",
          "subjectConfirmationStepTitle": "Subject Confirmation",
          "subjectConfirmationStepDescription": "Specify the subject confirmation method that will be included in this assertion.",
          "subjectConfirmationMethodUri.urn:oasis:names:tc:SAML:1.0:cm:holder-of-key": "Holder of Key",
          "subjectConfirmationMethodUri.urn:oasis:names:tc:SAML:1.0:cm:sender-vouches": "Sender Vouches",
          "subjectConfirmationMethodUri.urn:oasis:names:tc:SAML:1.0:cm:bearer": "Bearer",
          "subjectConfirmationMethodUri.none": "None",
          "__includeSubjectType.label": "Include subject certificate as",
          "subjectConfirmationKeyInfoType.label": "Method for Including Subject Certificate",
          "subjectConfirmationKeyInfoType.CERT": "Literal Certificate (X509Data)",
          "subjectConfirmationKeyInfoType.STR_SKI": "Security Token Reference using SKI",
          "subjectConfirmationKeyInfoType.STR_THUMBPRINT": "Security Token Reference using SHA1 Thumbprint",
          "subjectConfirmationData.heading": "Subject Confirmation Data",
          "subjectConfirmationDataRecipient.label": "Recipient",
          "subjectConfirmationDataAddress.label": "Address",
          "subjectConfirmationDataInResponseTo.label": "In Response To",
          "validatePeriod.heading": "Validity Period",
          "__subjectConfirmationDataNotBeforeSecondsInPast.label": "Not before",
          "__subjectConfirmationDataNotOnOrAfterExpirySeconds.label": "Not on or after",
          "subjectConfirmationDataNotBeforeSecondsInPast.label": "Seconds in the past",
          "subjectConfirmationDataNotOnOrAfterExpirySeconds.label": "Seconds in the future",
          "conditionStepTitle": "Conditions",
          "conditionStepDescription": "Specify the SAML statement conditions such as assertion validity period and Audience Restriction.",
          "audienceRestriction": "Audience Restriction",
          "__conditions.label": "Use default validity period condition",
          "conditionsNotBeforeSecondsInPast.label": "Not Before seconds in the past",
          "conditionsNotOnOrAfterExpirySeconds.label": "Not On or After seconds in the future",
          "digitalSignaturesStepTitle": "Digital Signatures",
          "digitalSignaturesStepDescription": "Specify the digital signatures that the Gateway should create (if any) after issuing the Assertion.",
          "signAssertion.label": "Sign assertion with an enveloped signature",
          "wsSecurity.heading": "WS-Security Message Decoration",
          "__insertAssertion.label": "Insert assertion into security header in",
          "__insertAssertionType.REQUEST": "Request",
          "__insertAssertionType.RESPONSE": "Response",
          "__includeAssertion.label": "Include assertion in message-level signature",
          "__includeSoap.label": "Include SOAP body in message-level signature",
          "samlStatement.error": "At least one is required",
          "issuerStepTitleDescription": "Configure the issuer element value and attributes. Default value for Issuer element is the subject distinguished name of the configured private key’s corresponding public key. No attributes are set by default.",
          "issuerStepTitle": "Issuer",
          "customIssuerValue.label": "Template",
          "__issuerAttr.label": "Include Format Attribute",
          "customIssuerFormat.label": "Format",
          "customIssuerFormat.urn:oasis:names:tc:SAML:2.0:nameid-format:entity": "Entity Identifier",
          "customIssuerFormat.urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName": "X.509 Subject Name",
          "customIssuerFormat.urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified": "Unspecified",
          "customIssuerFormat.urn:oasis:names:tc:SAML:1.1:nameid-format:WindowsDomainQualifiedName": "Windows Domain Qualified Name",
          "customIssuerFormat.urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress": "Email Address",
          "customIssuerFormat.urn:oasis:names:tc:SAML:2.0:nameid-format:kerberos": "Kerberos Principal Name",
          "customIssuerNameQualifier.label": "Name Qualifier",
          "attributeStatement.attributes.label": "Attributes",
          "failIfAnyAttributeIsMissing.label": "Fail if any Attribute is missing",
          "variablePrefix.label": "Variable Prefix",
          "filterExpression.label": "Filter Attribute Variables",
          "failIfUnknownAttributeInFilter.label": "Fail if unknown Attribute in filter",
          "failIfNoAttributesAdded.label": "Fail if no Attributes are added",
          "failIfAttributeValueExcludesAttribute.label": "Fail if AttributeValue exclude Attribute",
          "attributeStatement.attributes.value.label": "Attribute Value",
          "attributeStatement.attributes.addBehavior.label": "If Message or Element Variable Referenced",
          "attributeStatement.attributes.addBehavior.STRING_CONVERT": "Convert to string",
          "attributeStatement.attributes.addBehavior.ADD_AS_XML": "Add as XML fragment",
          "attributeStatement.attributes.variableNotFoundBehavior.label": "If Variable Not Found",
          "attributeStatement.attributes.variableNotFoundBehavior.REPLACE_EMPTY_STRING": "Replace variable with empty string",
          "attributeStatement.attributes.variableNotFoundBehavior.REPLACE_EXPRESSION_EMPTY_STRING": "Replace expression with empty string",
          "attributeStatement.attributes.emptyBehavior.label": "If Value Resolves to Empty String",
          "attributeStatement.attributes.emptyBehavior.EMPTY_STRING": "Add empty AttributeValue",
          "attributeStatement.attributes.emptyBehavior.EXISTS_NO_VALUE": "Do not add AttributeValue",
          "attributeStatement.attributes.emptyBehavior.NULL_VALUE": "Add null value AttributeValue",
          "attributeStatement.attributes.valueComparison.label": "Attribute Value Comparison",
          "attributeStatement.attributes.valueComparison.STRING_COMPARE": "String comparison",
          "attributeStatement.attributes.valueComparison.CANONICALIZE": "Canonicalize",
          "attributeStatement.attributes.missingWhenEmpty.label": "Missing when empty string",
          "attributeStatement.attributes.repeatIfMulti.label": "Repeat if multivalued",
          "nameIdentifierValue.label": "Template",
          "subjectConfirmationDataNotBeforeSecondsInPast.error": "must be a number bewteen 0 and 3600",
          "subjectConfirmationDataNotOnOrAfterExpirySeconds.error": "must be a number bewteen 30 and 3600",
          "http-routing.__privateKey.DEFAULT_KEY": "Use default private key",
          "http-routing.__privateKey.CUSTOM_PRIVATE_KEY": "Use custom private key",
          "attr-value-error": "Only single variable may be referenced when 'Repeat if multivalued' is configured",
          "attributeStatement.attributes.btn": "Add Attribute",
          "attributeStatement.attributes.err-text": "One attribute is required",
          "attributeStatement.filterExpression.error": "Only valid context varaible references are allowed"
        }
      }
    ]
  },
  {
    "configName": "SamlpRequestBuilder",
    "displayNameFormats": [
      {
        "format": "Build SAML Protocol Request (Authentication); Sign Request",
        "condition": "and(or(isNull({{.signAssertion}}), equals({{.signAssertion}}, true)), not(isNull({{.authenticationStatement}})))"
      },
      {
        "format": "Build SAML Protocol Request (Authorization Decision); Sign Request",
        "condition": "and(or(isNull({{.signAssertion}}), equals({{.signAssertion}}, true)), not(isNull({{.authorizationStatement}})))"
      },
      {
        "format": "Build SAML Protocol Request (Attribute Query); Sign Request",
        "condition": "and(or(isNull({{.signAssertion}}), equals({{.signAssertion}}, true)), not(isNull({{.attributeStatement}})))"
      },
      {
        "format": "Build SAML Protocol Request (Authentication)",
        "condition": "not(isNull({{.authenticationStatement}}))"
      },
      {
        "format": "Build SAML Protocol Request (Authorization Decision)",
        "condition": "not(isNull({{.authorizationStatement}}))"
      },
      {
        "format": "Build SAML Protocol Request (Attribute Query)",
        "condition": "not(isNull({{.attributeStatement}}))"
      }
    ],
    "refVariables": [
      {
        "fieldPath": ".recipientCertContextVariableName",
        "refType": "IN",
        "dataType": "other"
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Build SAML Protocol Request",
        "elements": [
          {
            "type": "Categorization",
            "elements": [
              {
                "type": "Category",
                "label": "targetMessageAndSOAPVersionStepTitle",
                "description": "targetMessageAndSOAPVersionStepDescription",
                "validateFields": [
                  "otherTargetMessageVariable"
                ],
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/target",
                    "options": {
                      "messageTarget": true
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/soapVersion",
                    "i18n": "targetMessageAndSOAPVersion.soapVersion",
                    "options": {
                      "autocomplete": true,
                      "markAsRequired": true,
                      "defaultOptions": [
                        {
                          "label": "Use SOAP version from request",
                          "value": 0
                        },
                        {
                          "label": "SOAP 1.1",
                          "value": 1
                        },
                        {
                          "label": "SOAP 1.2",
                          "value": 2
                        }
                      ]
                    }
                  }
                ]
              },
              {
                "type": "Category",
                "label": "samlVersionAndRequestTypeStepTitle",
                "description": "samlVersionAndRequestTypeStepDescription",
                "validateFields": [],
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/version",
                    "i18n": "samlVersionAndRequestType.version",
                    "options": {
                      "autocomplete": true,
                      "markAsRequired": true,
                      "defaultOptions": [
                        {
                          "label": "Version 1.1",
                          "value": 1
                        },
                        {
                          "label": "Version 2.0",
                          "value": 2
                        }
                      ]
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/__samlpRequestType",
                    "i18n": "samlVersionAndRequestType.__samlpRequestType"
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/requestId",
                    "i18n": "samlVersionAndRequestType.requestId",
                    "options": {
                      "autocomplete": true,
                      "markAsRequired": true,
                      "defaultOptions": [
                        {
                          "label": "Generate Request ID",
                          "value": 0
                        },
                        {
                          "label": "Obtain Request ID from Variable",
                          "value": 1
                        }
                      ]
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/requestIdVariable",
                    "i18n": "samlVersionAndRequestType.requestIdVariable",
                    "rule": {
                      "effect": "SHOW",
                      "condition": {
                        "scope": "#/properties/requestId",
                        "schema": {
                          "const": 1
                        }
                      }
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/destinationAttribute",
                    "i18n": "samlVersionAndRequestType.destinationAttribute"
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/consentAttribute",
                    "i18n": "samlVersionAndRequestType.consentAttribute"
                  }
                ]
              },
              {
                "type": "Category",
                "label": "issuerStepTitle",
                "description": "issuerStepDescription",
                "validateFields": [],
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/addIssuer",
                    "i18n": "issuer.addIssuer"
                  },
                  {
                    "type": "VerticalLayout",
                    "elements": [
                      {
                        "type": "Control",
                        "scope": "#/properties/__includeFormatAttribute",
                        "i18n": "issuer.__includeFormatAttribute"
                      },
                      {
                        "type": "Control",
                        "scope": "#/properties/customIssuerFormat",
                        "i18n": "issuer.customIssuerFormat",
                        "rule": {
                          "effect": "SHOW",
                          "condition": {
                            "scope": "#/properties/__includeFormatAttribute",
                            "schema": {
                              "const": true
                            }
                          }
                        }
                      },
                      {
                        "type": "Control",
                        "scope": "#/properties/customIssuerNameQualifier",
                        "i18n": "issuer.customIssuerNameQualifier"
                      },
                      {
                        "type": "Control",
                        "scope": "#/properties/__issuerValue",
                        "i18n": "issuer.__issuerValue"
                      },
                      {
                        "type": "Control",
                        "scope": "#/properties/customIssuerValue",
                        "i18n": "issuer.customIssuerValue",
                        "rule": {
                          "effect": "SHOW",
                          "condition": {
                            "scope": "#/properties/__issuerValue",
                            "schema": {
                              "const": "custom"
                            }
                          }
                        }
                      }
                    ],
                    "rule": {
                      "effect": "SHOW",
                      "condition": {
                        "scope": "#/properties/addIssuer",
                        "schema": {
                          "const": true
                        }
                      }
                    }
                  }
                ],
                "rule": {
                  "effect": "SHOW",
                  "condition": {
                    "scope": "#/properties/version",
                    "schema": {
                      "const": 2
                    }
                  }
                }
              },
              {
                "type": "Category",
                "label": "authorizationDecisionQueryStepTitle",
                "description": "authorizationDecisionQueryStepDescription",
                "validateFields": [
                  "authorizationStatement/resource",
                  "authorizationStatement/actions",
                  "action"
                ],
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/authorizationStatement/properties/resource",
                    "i18n": "authorizationDecisionQuery.authorizationStatement.resource",
                    "options": {
                      "markAsRequired": true
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/authorizationStatement/properties/actions",
                    "options": {
                      "fieldGroup": true,
                      "buttonLabel": "authorizationDecisionQuery.authorizationStatement.actions.addButton.label",
                      "detail": {
                        "type": "VerticalLayout",
                        "elements": [
                          {
                            "type": "Group",
                            "options": {
                              "groupType": "wrapCustomClass",
                              "customClass": "authorization-statement-actions"
                            },
                            "elements": [
                              {
                                "type": "Control",
                                "scope": "#/properties/action",
                                "i18n": "authorizationDecisionQuery.authorizationStatement.actions.action",
                                "options": {
                                  "markAsRequired": true
                                }
                              },
                              {
                                "type": "Control",
                                "scope": "#/properties/namespace",
                                "i18n": "authorizationDecisionQuery.authorizationStatement.actions.namespace"
                              }
                            ]
                          }
                        ]
                      }
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/evidence",
                    "i18n": "authorizationDecisionQuery.evidence",
                    "options": {
                      "autocomplete": true,
                      "markAsRequired": true,
                      "defaultOptions": [
                        {
                          "label": "Generate Default Authentication Statement",
                          "value": 0
                        },
                        {
                          "label": "Get Evidence From Context Variable",
                          "value": 1
                        }
                      ]
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/evidenceVariable",
                    "i18n": "authorizationDecisionQuery.evidenceVariable",
                    "rule": {
                      "effect": "SHOW",
                      "condition": {
                        "scope": "#/properties/evidence",
                        "schema": {
                          "const": 1
                        }
                      }
                    }
                  }
                ],
                "rule": {
                  "effect": "SHOW",
                  "condition": {
                    "scope": "#/properties/__samlpRequestType",
                    "schema": {
                      "const": "authorizationDecisionRequest"
                    }
                  }
                }
              },
              {
                "type": "Category",
                "label": "attributeStatementStepTitle",
                "description": "attributeStatementStepDescription",
                "validateFields": [
                  "attributeStatement/attributes",
                  "name"
                ],
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/attributeStatement/properties/attributes",
                    "i18n": "attributeStatement.attributes.heading",
                    "options": {
                      "fieldGroup": true,
                      "buttonLabel": "attributeStatement.attributes.addAttribute.label",
                      "detail": {
                        "type": "VerticalLayout",
                        "elements": [
                          {
                            "type": "Control",
                            "scope": "#/properties/name",
                            "i18n": "attributeStatement.attributes.name",
                            "options": {
                              "customClass": "attribute-statement-name",
                              "markAsRequired": true
                            }
                          },
                          {
                            "type": "Control",
                            "scope": "#/properties/namespace",
                            "i18n": "attributeStatement.attributes.namespace",
                            "rule": {
                              "effect": "SHOW",
                              "condition": {
                                "scope": "#/properties/__version",
                                "schema": {
                                  "const": 1
                                }
                              }
                            }
                          },
                          {
                            "type": "VerticalLayout",
                            "elements": [
                              {
                                "type": "Group",
                                "options": {
                                  "groupType": "wrapCustomClass",
                                  "customClass": "attribute-name-format"
                                },
                                "elements": [
                                  {
                                    "type": "Control",
                                    "scope": "#/properties/__attributeNameFormat"
                                  },
                                  {
                                    "type": "Control",
                                    "scope": "#/properties/nameFormat",
                                    "options": {
                                      "customClass": "nameFormat"
                                    },
                                    "rule": {
                                      "effect": "ENABLE",
                                      "condition": {
                                        "scope": "#/properties/__attributeNameFormat",
                                        "schema": {
                                          "const": "custom"
                                        }
                                      }
                                    }
                                  }
                                ]
                              }
                            ],
                            "rule": {
                              "effect": "SHOW",
                              "condition": {
                                "scope": "#/properties/__version",
                                "schema": {
                                  "const": 2
                                }
                              }
                            }
                          },
                          {
                            "type": "Control",
                            "scope": "#/properties/friendlyName",
                            "i18n": "attributeStatement.attributes.friendlyName",
                            "rule": {
                              "effect": "SHOW",
                              "condition": {
                                "scope": "#/properties/__version",
                                "schema": {
                                  "const": 2
                                }
                              }
                            }
                          },
                          {
                            "type": "Control",
                            "scope": "#/properties/value",
                            "i18n": "attributeStatement.attributes.value",
                            "options": {
                              "multiline": true,
                              "rows": 4
                            }
                          },
                          {
                            "type": "Control",
                            "scope": "#/properties/repeatIfMulti",
                            "i18n": "attributeStatement.attributes.repeatIfMulti"
                          }
                        ]
                      }
                    }
                  }
                ],
                "rule": {
                  "effect": "SHOW",
                  "condition": {
                    "scope": "#/properties/__samlpRequestType",
                    "schema": {
                      "const": "attributeQueryRequest"
                    }
                  }
                }
              },
              {
                "type": "Category",
                "label": "nameIdentifierStepTitle",
                "description": "nameIdentifierStepDescription",
                "validateFields": [
                  "customNameIdentifierFormat"
                ],
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/__includeFormatIdentifier",
                    "i18n": "nameIdentifier.__includeFormatIdentifier"
                  },
                  {
                    "type": "VerticalLayout",
                    "elements": [
                      {
                        "type": "Control",
                        "scope": "#/properties/encryptNameIdentifier",
                        "i18n": "nameIdentifier.encryptNameIdentifier",
                        "rule": {
                          "effect": "SHOW",
                          "condition": {
                            "scope": "#/properties/version",
                            "schema": {
                              "const": 2
                            }
                          }
                        }
                      },
                      {
                        "type": "Control",
                        "scope": "#/properties/nameIdentifierFormat",
                        "i18n": "nameIdentifier.nameIdentifierFormat"
                      },
                      {
                        "type": "Control",
                        "scope": "#/properties/customNameIdentifierFormat",
                        "i18n": "nameIdentifier.customNameIdentifierFormat",
                        "options": {
                          "markAsRequired": true
                        },
                        "rule": {
                          "effect": "SHOW",
                          "condition": {
                            "scope": "#/properties/nameIdentifierFormat",
                            "schema": {
                              "const": "custom"
                            }
                          }
                        }
                      },
                      {
                        "type": "Control",
                        "scope": "#/properties/nameQualifier",
                        "i18n": "nameIdentifier.nameQualifier"
                      },
                      {
                        "type": "Control",
                        "scope": "#/properties/nameIdentifierType",
                        "i18n": "nameIdentifier.nameIdentifierType"
                      },
                      {
                        "type": "Control",
                        "scope": "#/properties/nameIdentifierValue",
                        "i18n": "nameIdentifier.nameIdentifierValue",
                        "rule": {
                          "effect": "SHOW",
                          "condition": {
                            "scope": "#/properties/nameIdentifierType",
                            "schema": {
                              "const": "SPECIFIED"
                            }
                          }
                        }
                      }
                    ],
                    "rule": {
                      "effect": "SHOW",
                      "condition": {
                        "scope": "#/properties/__includeFormatIdentifier",
                        "schema": {
                          "const": true
                        }
                      }
                    }
                  }
                ]
              },
              {
                "type": "Category",
                "label": "encryptionSettingsStepTitle",
                "description": "encryptionSettingsStepDescription",
                "validateFields": [
                  "xmlEncryptConfig/recipientCertificateBase64",
                  "xmlEncryptConfig/recipientCertContextVariableName",
                  "xmlEncryptConfig/encryptedDataTypeAttribute",
                  "xmlEncryptConfig/encryptedKeyRecipientAttribute"
                ],
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/xmlEncryptConfig/properties/xencAlgorithm",
                    "i18n": "encryptionSettings.xencAlgorithm"
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/xmlEncryptConfig/properties/__recipientX509Certificate",
                    "i18n": "encryptionSettings.__recipientX509Certificate"
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/xmlEncryptConfig/properties/recipientCertificateBase64",
                    "i18n": "encryptionSettings.recipientCertificateBase64",
                    "options": {
                      "recipientCertificate": true
                    },
                    "rule": {
                      "effect": "SHOW",
                      "condition": {
                        "scope": "#/properties/xmlEncryptConfig/properties/__recipientX509Certificate",
                        "schema": {
                          "const": "specifyCertificate"
                        }
                      }
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/xmlEncryptConfig/properties/recipientCertContextVariableName",
                    "i18n": "encryptionSettings.recipientCertContextVariableName",
                    "options": {
                      "contextVariable": true,
                      "markAsRequired": true,
                      "variableType": "input",
                      "allowedDataTypes": []
                    },
                    "rule": {
                      "effect": "SHOW",
                      "condition": {
                        "scope": "#/properties/xmlEncryptConfig/properties/__recipientX509Certificate",
                        "schema": {
                          "const": "useCertificateFromContextVariable"
                        }
                      }
                    }
                  },
                  {
                    "type": "Group",
                    "label": "Advanced",
                    "options": {
                      "groupType": "ShowHide"
                    },
                    "elements": [
                      {
                        "type": "Control",
                        "scope": "#/properties/xmlEncryptConfig/properties/includeEncryptedDataTypeAttribute",
                        "i18n": "encryptionSettings.advanced.includeEncryptedDataTypeAttribute",
                        "options": {
                          "subUiSchema": {
                            "type": "Control",
                            "scope": "#/properties/xmlEncryptConfig/properties/encryptedDataTypeAttribute",
                            "i18n": "encryptionSettings.advanced.encryptedDataTypeAttribute",
                            "options": {
                              "customClass": "subui-schema-spacing"
                            }
                          }
                        }
                      },
                      {
                        "type": "Control",
                        "scope": "#/properties/xmlEncryptConfig/properties/__addRecipientAttribute",
                        "i18n": "encryptionSettings.advanced.__addRecipientAttribute",
                        "options": {
                          "subUiSchema": {
                            "type": "Control",
                            "scope": "#/properties/xmlEncryptConfig/properties/encryptedKeyRecipientAttribute",
                            "i18n": "encryptionSettings.advanced.encryptedKeyRecipientAttribute",
                            "options": {
                              "customClass": "subui-schema-spacing"
                            }
                          }
                        }
                      },
                      {
                        "type": "Control",
                        "scope": "#/properties/xmlEncryptConfig/properties/useOaep",
                        "i18n": "encryptionSettings.advanced.useOaep"
                      }
                    ]
                  }
                ],
                "rule": {
                  "effect": "SHOW",
                  "condition": {
                    "scope": "#/properties/encryptNameIdentifier",
                    "schema": {
                      "const": true
                    }
                  }
                }
              },
              {
                "type": "Category",
                "label": "subjectConfirmationStepTitle",
                "description": "subjectConfirmationStepDescription",
                "validateFields": [
                  "subjectConfirmationDataNotBeforeSecondsInPast",
                  "subjectConfirmationDataNotOnOrAfterExpirySeconds"
                ],
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/subjectConfirmationMethodUri",
                    "i18n": "subjectConfirmation.subjectConfirmationMethodUri"
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/__includeSubjectCertificate",
                    "i18n": "subjectConfirmation.__includeSubjectCertificate",
                    "options": {
                      "subUiSchema": {
                        "type": "Control",
                        "scope": "#/properties/subjectConfirmationKeyInfoType",
                        "i18n": "subjectConfirmation.subjectConfirmationKeyInfoType",
                        "options": {
                          "customClass": "subui-schema-spacing"
                        }
                      }
                    },
                    "rule": {
                      "effect": "SHOW",
                      "condition": {
                        "scope": "#/properties/subjectConfirmationMethodUri",
                        "schema": {
                          "const": "urn:oasis:names:tc:SAML:1.0:cm:holder-of-key"
                        }
                      }
                    }
                  },
                  {
                    "type": "VerticalLayout",
                    "elements": [
                      {
                        "type": "Group",
                        "i18n": "subjectConfirmation.subjectConfirmationData.heading",
                        "options": {
                          "groupType": "wrapCustomClass",
                          "customClass": "group-heading"
                        },
                        "elements": [
                          {
                            "type": "Control",
                            "scope": "#/properties/subjectConfirmationDataRecipient",
                            "i18n": "subjectConfirmation.subjectConfirmationDataRecipient"
                          },
                          {
                            "type": "Control",
                            "scope": "#/properties/subjectConfirmationDataAddress",
                            "i18n": "subjectConfirmation.subjectConfirmationDataAddress"
                          },
                          {
                            "type": "Control",
                            "scope": "#/properties/subjectConfirmationDataInResponseTo",
                            "i18n": "subjectConfirmation.subjectConfirmationDataInResponseTo"
                          }
                        ]
                      },
                      {
                        "type": "Group",
                        "i18n": "subjectConfirmation.validityPeriod.heading",
                        "options": {
                          "groupType": "wrapCustomClass",
                          "customClass": "group-heading"
                        },
                        "elements": [
                          {
                            "type": "Group",
                            "options": {
                              "groupType": "wrapCustomClass",
                              "customClass": "validity-period checkbox-spacing"
                            },
                            "elements": [
                              {
                                "type": "Control",
                                "scope": "#/properties/__subjectConfirmationDataNotBeforeSecondsInPastBoolean",
                                "i18n": "subjectConfirmation.__subjectConfirmationDataNotBeforeSecondsInPastBoolean"
                              },
                              {
                                "type": "Control",
                                "scope": "#/properties/subjectConfirmationDataNotBeforeSecondsInPast",
                                "i18n": "subjectConfirmation.subjectConfirmationDataNotBeforeSecondsInPast",
                                "rule": {
                                  "effect": "SHOW",
                                  "condition": {
                                    "scope": "#/properties/__subjectConfirmationDataNotBeforeSecondsInPastBoolean",
                                    "schema": {
                                      "const": true
                                    }
                                  }
                                }
                              }
                            ]
                          },
                          {
                            "type": "Group",
                            "options": {
                              "groupType": "wrapCustomClass",
                              "customClass": "validity-period"
                            },
                            "elements": [
                              {
                                "type": "Control",
                                "scope": "#/properties/__subjectConfirmationDataNotOnOrAfterExpirySecondsBoolean",
                                "i18n": "subjectConfirmation.__subjectConfirmationDataNotOnOrAfterExpirySecondsBoolean"
                              },
                              {
                                "type": "Control",
                                "scope": "#/properties/subjectConfirmationDataNotOnOrAfterExpirySeconds",
                                "i18n": "subjectConfirmation.subjectConfirmationDataNotOnOrAfterExpirySeconds",
                                "rule": {
                                  "effect": "SHOW",
                                  "condition": {
                                    "scope": "#/properties/__subjectConfirmationDataNotOnOrAfterExpirySecondsBoolean",
                                    "schema": {
                                      "const": true
                                    }
                                  }
                                }
                              }
                            ]
                          }
                        ]
                      }
                    ],
                    "rule": {
                      "effect": "SHOW",
                      "condition": {
                        "schema": {
                          "allOf": [
                            {
                              "required": [
                                "version",
                                "subjectConfirmationMethodUri"
                              ]
                            },
                            {
                              "properties": {
                                "version": {
                                  "const": 2
                                },
                                "subjectConfirmationMethodUri": {
                                  "enum": [
                                    "urn:oasis:names:tc:SAML:1.0:cm:holder-of-key",
                                    "urn:oasis:names:tc:SAML:1.0:cm:sender-vouches",
                                    "urn:oasis:names:tc:SAML:1.0:cm:bearer"
                                  ]
                                }
                              }
                            }
                          ]
                        },
                        "scope": "#"
                      }
                    }
                  }
                ]
              },
              {
                "type": "Category",
                "label": "digitalSignaturesStepTitle",
                "description": "digitalSignaturesStepDescription",
                "validateFields": [],
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/signAssertion",
                    "i18n": "digitalSignatures.signAssertion"
                  },
                  {
                    "type": "Group",
                    "label": "Private Key",
                    "options": {
                      "groupType": "ShowHide"
                    },
                    "elements": [
                      {
                        "type": "Control",
                        "scope": "#/properties/__privateKey",
                        "options": {
                          "privateKey": true,
                          "keyTypeOptions": [
                            "DEFAULT_KEY",
                            "CUSTOM_PRIVATE_KEY"
                          ]
                        }
                      }
                    ]
                  }
                ]
              }
            ],
            "options": {
              "variant": "apimStepper",
              "wizardTitle": "samlpRequestBuilderWizardTitle"
            }
          },
          {
            "type": "Group",
            "options": {
              "groupType": "ReadOnlyForm"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/target",
                "options": {
                  "messageTarget": true
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/soapVersion",
                "i18n": "targetMessageAndSOAPVersion.soapVersion",
                "options": {
                  "autocomplete": false,
                  "markAsRequired": true,
                  "defaultOptions": [
                    {
                      "label": "Use SOAP version from request",
                      "value": 0
                    },
                    {
                      "label": "SOAP 1.1",
                      "value": 1
                    },
                    {
                      "label": "SOAP 1.2",
                      "value": 2
                    }
                  ]
                }
              },
              {
                "type": "Group",
                "label": "SAMLP Version and Request Type",
                "isExpanded": true,
                "options": {
                  "groupType": "Accordion"
                },
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/version",
                    "i18n": "samlVersionAndRequestType.version",
                    "options": {
                      "autocomplete": true,
                      "markAsRequired": true,
                      "defaultOptions": [
                        {
                          "label": "Version 1.1",
                          "value": 1
                        },
                        {
                          "label": "Version 2.0",
                          "value": 2
                        }
                      ]
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/__samlpRequestType",
                    "i18n": "samlVersionAndRequestType.__samlpRequestType"
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/requestId",
                    "i18n": "samlVersionAndRequestType.requestId",
                    "options": {
                      "autocomplete": true,
                      "markAsRequired": true,
                      "defaultOptions": [
                        {
                          "label": "Generate Request ID",
                          "value": 0
                        },
                        {
                          "label": "Obtain Request ID from Variable",
                          "value": 1
                        }
                      ]
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/requestIdVariable",
                    "i18n": "samlVersionAndRequestType.requestIdVariable",
                    "rule": {
                      "effect": "SHOW",
                      "condition": {
                        "scope": "#/properties/requestId",
                        "schema": {
                          "const": 1
                        }
                      }
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/destinationAttribute",
                    "i18n": "samlVersionAndRequestType.destinationAttribute"
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/consentAttribute",
                    "i18n": "samlVersionAndRequestType.consentAttribute"
                  }
                ]
              },
              {
                "type": "Group",
                "label": "Issuer",
                "isExpanded": true,
                "options": {
                  "groupType": "Accordion"
                },
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/addIssuer",
                    "i18n": "issuer.addIssuer"
                  },
                  {
                    "type": "VerticalLayout",
                    "elements": [
                      {
                        "type": "Control",
                        "scope": "#/properties/__includeFormatAttribute",
                        "i18n": "issuer.__includeFormatAttribute"
                      },
                      {
                        "type": "Control",
                        "scope": "#/properties/customIssuerFormat",
                        "i18n": "issuer.customIssuerFormat",
                        "rule": {
                          "effect": "SHOW",
                          "condition": {
                            "scope": "#/properties/__includeFormatAttribute",
                            "schema": {
                              "const": true
                            }
                          }
                        }
                      },
                      {
                        "type": "Control",
                        "scope": "#/properties/customIssuerNameQualifier",
                        "i18n": "issuer.customIssuerNameQualifier"
                      },
                      {
                        "type": "Control",
                        "scope": "#/properties/__issuerValue",
                        "i18n": "issuer.__issuerValue"
                      },
                      {
                        "type": "Control",
                        "scope": "#/properties/customIssuerValue",
                        "i18n": "issuer.customIssuerValue",
                        "rule": {
                          "effect": "SHOW",
                          "condition": {
                            "scope": "#/properties/__issuerValue",
                            "schema": {
                              "const": "custom"
                            }
                          }
                        }
                      }
                    ],
                    "rule": {
                      "effect": "SHOW",
                      "condition": {
                        "scope": "#/properties/addIssuer",
                        "schema": {
                          "const": true
                        }
                      }
                    }
                  }
                ],
                "rule": {
                  "effect": "SHOW",
                  "condition": {
                    "scope": "#/properties/version",
                    "schema": {
                      "const": 2
                    }
                  }
                }
              },
              {
                "type": "Group",
                "label": "Authorization Decision Query",
                "isExpanded": true,
                "options": {
                  "groupType": "Accordion"
                },
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/authorizationStatement/properties/resource",
                    "i18n": "authorizationDecisionQuery.authorizationStatement.resource"
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/authorizationStatement/properties/actions",
                    "options": {
                      "fieldGroup": true,
                      "buttonLabel": "authorizationDecisionQuery.authorizationStatement.actions.addButton.label",
                      "detail": {
                        "type": "VerticalLayout",
                        "elements": [
                          {
                            "type": "Group",
                            "options": {
                              "groupType": "wrapCustomClass",
                              "customClass": "authorization-statement-actions"
                            },
                            "elements": [
                              {
                                "type": "Control",
                                "scope": "#/properties/action",
                                "i18n": "authorizationDecisionQuery.authorizationStatement.actions.action"
                              },
                              {
                                "type": "Control",
                                "scope": "#/properties/namespace",
                                "i18n": "authorizationDecisionQuery.authorizationStatement.actions.namespace"
                              }
                            ]
                          }
                        ]
                      }
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/evidence",
                    "i18n": "authorizationDecisionQuery.evidence",
                    "options": {
                      "autocomplete": true,
                      "markAsRequired": true,
                      "defaultOptions": [
                        {
                          "label": "Generate Default Authentication Statement",
                          "value": 0
                        },
                        {
                          "label": "Get Evidence From Context Variable",
                          "value": 1
                        }
                      ]
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/evidenceVariable",
                    "i18n": "authorizationDecisionQuery.evidenceVariable",
                    "rule": {
                      "effect": "SHOW",
                      "condition": {
                        "scope": "#/properties/evidence",
                        "schema": {
                          "const": 1
                        }
                      }
                    }
                  }
                ],
                "rule": {
                  "effect": "SHOW",
                  "condition": {
                    "scope": "#/properties/__samlpRequestType",
                    "schema": {
                      "const": "authorizationDecisionRequest"
                    }
                  }
                }
              },
              {
                "type": "Group",
                "label": "Attribute Statement",
                "isExpanded": true,
                "options": {
                  "groupType": "Accordion"
                },
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/attributeStatement/properties/attributes",
                    "i18n": "attributeStatement.attributes.heading",
                    "options": {
                      "fieldGroup": true,
                      "buttonLabel": "attributeStatement.attributes.addAttribute.label",
                      "detail": {
                        "type": "VerticalLayout",
                        "elements": [
                          {
                            "type": "Control",
                            "scope": "#/properties/name",
                            "i18n": "attributeStatement.attributes.name"
                          },
                          {
                            "type": "Control",
                            "scope": "#/properties/namespace",
                            "i18n": "attributeStatement.attributes.namespace"
                          },
                          {
                            "type": "Group",
                            "options": {
                              "groupType": "wrapCustomClass",
                              "customClass": "attribute-name-format"
                            },
                            "elements": [
                              {
                                "type": "Control",
                                "scope": "#/properties/__attributeNameFormat"
                              },
                              {
                                "type": "Control",
                                "scope": "#/properties/nameFormat",
                                "rule": {
                                  "effect": "ENABLE",
                                  "condition": {
                                    "scope": "#/properties/__attributeNameFormat",
                                    "schema": {
                                      "const": "custom"
                                    }
                                  }
                                }
                              }
                            ]
                          },
                          {
                            "type": "Control",
                            "scope": "#/properties/friendlyName",
                            "i18n": "attributeStatement.attributes.friendlyName"
                          },
                          {
                            "type": "Control",
                            "scope": "#/properties/value",
                            "i18n": "attributeStatement.attributes.value",
                            "options": {
                              "multiline": true,
                              "rows": 4
                            }
                          },
                          {
                            "type": "Control",
                            "scope": "#/properties/repeatIfMulti",
                            "i18n": "attributeStatement.attributes.repeatIfMulti"
                          }
                        ]
                      }
                    }
                  }
                ],
                "rule": {
                  "effect": "SHOW",
                  "condition": {
                    "scope": "#/properties/__samlpRequestType",
                    "schema": {
                      "const": "attributeQueryRequest"
                    }
                  }
                }
              },
              {
                "type": "Group",
                "label": "Name Identifier",
                "isExpanded": true,
                "options": {
                  "groupType": "Accordion"
                },
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/__includeFormatIdentifier",
                    "i18n": "nameIdentifier.__includeFormatIdentifier"
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/encryptNameIdentifier",
                    "i18n": "nameIdentifier.encryptNameIdentifier"
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/nameIdentifierFormat",
                    "i18n": "nameIdentifier.nameIdentifierFormat"
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/customNameIdentifierFormat",
                    "i18n": "nameIdentifier.customNameIdentifierFormat",
                    "options": {
                      "markAsRequired": true
                    },
                    "rule": {
                      "effect": "SHOW",
                      "condition": {
                        "scope": "#/properties/nameIdentifierFormat",
                        "schema": {
                          "const": "custom"
                        }
                      }
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/nameQualifier",
                    "i18n": "nameIdentifier.nameQualifier"
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/nameIdentifierType",
                    "i18n": "nameIdentifier.nameIdentifierType"
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/nameIdentifierValue",
                    "i18n": "nameIdentifier.nameIdentifierValue",
                    "rule": {
                      "effect": "SHOW",
                      "condition": {
                        "scope": "#/properties/nameIdentifierType",
                        "schema": {
                          "const": "SPECIFIED"
                        }
                      }
                    }
                  }
                ]
              },
              {
                "type": "Group",
                "label": "Encryption Settings",
                "isExpanded": true,
                "options": {
                  "groupType": "Accordion"
                },
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/xmlEncryptConfig/properties/xencAlgorithm",
                    "i18n": "encryptionSettings.xencAlgorithm"
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/xmlEncryptConfig/properties/__recipientX509Certificate",
                    "i18n": "encryptionSettings.__recipientX509Certificate"
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/xmlEncryptConfig/properties/recipientCertificateBase64",
                    "i18n": "encryptionSettings.recipientCertificateBase64",
                    "options": {
                      "recipientCertificate": true,
                      "readonly": true
                    },
                    "rule": {
                      "effect": "SHOW",
                      "condition": {
                        "scope": "#/properties/xmlEncryptConfig/properties/__recipientX509Certificate",
                        "schema": {
                          "const": "specifyCertificate"
                        }
                      }
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/xmlEncryptConfig/properties/recipientCertContextVariableName",
                    "i18n": "encryptionSettings.recipientCertContextVariableName",
                    "options": {
                      "markAsRequired": true
                    },
                    "rule": {
                      "effect": "SHOW",
                      "condition": {
                        "scope": "#/properties/xmlEncryptConfig/properties/__recipientX509Certificate",
                        "schema": {
                          "const": "useCertificateFromContextVariable"
                        }
                      }
                    }
                  },
                  {
                    "type": "Group",
                    "label": "Advanced",
                    "options": {
                      "groupType": "ShowHide"
                    },
                    "elements": [
                      {
                        "type": "Control",
                        "scope": "#/properties/xmlEncryptConfig/properties/includeEncryptedDataTypeAttribute",
                        "i18n": "encryptionSettings.advanced.includeEncryptedDataTypeAttribute",
                        "options": {
                          "subUiSchema": {
                            "type": "Control",
                            "scope": "#/properties/xmlEncryptConfig/properties/encryptedDataTypeAttribute",
                            "i18n": "encryptionSettings.advanced.encryptedDataTypeAttribute"
                          }
                        }
                      },
                      {
                        "type": "Control",
                        "scope": "#/properties/xmlEncryptConfig/properties/__addRecipientAttribute",
                        "i18n": "encryptionSettings.advanced.__addRecipientAttribute",
                        "options": {
                          "subUiSchema": {
                            "type": "Control",
                            "scope": "#/properties/xmlEncryptConfig/properties/encryptedKeyRecipientAttribute",
                            "i18n": "encryptionSettings.advanced.encryptedKeyRecipientAttribute"
                          }
                        }
                      },
                      {
                        "type": "Control",
                        "scope": "#/properties/xmlEncryptConfig/properties/useOaep",
                        "i18n": "encryptionSettings.advanced.useOaep"
                      }
                    ]
                  }
                ],
                "rule": {
                  "effect": "SHOW",
                  "condition": {
                    "scope": "#/properties/encryptNameIdentifier",
                    "schema": {
                      "const": true
                    }
                  }
                }
              },
              {
                "type": "Group",
                "label": "Subject Confirmation",
                "isExpanded": true,
                "options": {
                  "groupType": "Accordion"
                },
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/subjectConfirmationMethodUri",
                    "i18n": "subjectConfirmation.subjectConfirmationMethodUri"
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/__includeSubjectCertificate",
                    "i18n": "subjectConfirmation.__includeSubjectCertificate",
                    "options": {
                      "subUiSchema": {
                        "type": "Control",
                        "scope": "#/properties/subjectConfirmationKeyInfoType",
                        "i18n": "subjectConfirmation.subjectConfirmationKeyInfoType",
                        "options": {
                          "customClass": "subui-schema-spacing"
                        }
                      }
                    },
                    "rule": {
                      "effect": "SHOW",
                      "condition": {
                        "scope": "#/properties/subjectConfirmationMethodUri",
                        "schema": {
                          "const": "urn:oasis:names:tc:SAML:1.0:cm:holder-of-key"
                        }
                      }
                    }
                  },
                  {
                    "type": "VerticalLayout",
                    "elements": [
                      {
                        "type": "Group",
                        "i18n": "subjectConfirmation.subjectConfirmationData.heading",
                        "options": {
                          "groupType": "wrapCustomClass",
                          "customClass": "group-heading"
                        },
                        "elements": [
                          {
                            "type": "Control",
                            "scope": "#/properties/subjectConfirmationDataRecipient",
                            "i18n": "subjectConfirmation.subjectConfirmationDataRecipient"
                          },
                          {
                            "type": "Control",
                            "scope": "#/properties/subjectConfirmationDataAddress",
                            "i18n": "subjectConfirmation.subjectConfirmationDataAddress"
                          },
                          {
                            "type": "Control",
                            "scope": "#/properties/subjectConfirmationDataInResponseTo",
                            "i18n": "subjectConfirmation.subjectConfirmationDataInResponseTo"
                          }
                        ]
                      },
                      {
                        "type": "Group",
                        "i18n": "subjectConfirmation.validityPeriod.heading",
                        "options": {
                          "groupType": "wrapCustomClass",
                          "customClass": "group-heading"
                        },
                        "elements": [
                          {
                            "type": "Group",
                            "options": {
                              "groupType": "wrapCustomClass",
                              "customClass": "validity-period checkbox-spacing"
                            },
                            "elements": [
                              {
                                "type": "Control",
                                "scope": "#/properties/__subjectConfirmationDataNotBeforeSecondsInPastBoolean",
                                "i18n": "subjectConfirmation.__subjectConfirmationDataNotBeforeSecondsInPastBoolean"
                              },
                              {
                                "type": "Control",
                                "scope": "#/properties/subjectConfirmationDataNotBeforeSecondsInPast",
                                "i18n": "subjectConfirmation.subjectConfirmationDataNotBeforeSecondsInPast",
                                "rule": {
                                  "effect": "SHOW",
                                  "condition": {
                                    "scope": "#/properties/__subjectConfirmationDataNotBeforeSecondsInPastBoolean",
                                    "schema": {
                                      "const": true
                                    }
                                  }
                                }
                              }
                            ]
                          },
                          {
                            "type": "Group",
                            "options": {
                              "groupType": "wrapCustomClass",
                              "customClass": "validity-period"
                            },
                            "elements": [
                              {
                                "type": "Control",
                                "scope": "#/properties/__subjectConfirmationDataNotOnOrAfterExpirySecondsBoolean",
                                "i18n": "subjectConfirmation.__subjectConfirmationDataNotOnOrAfterExpirySecondsBoolean"
                              },
                              {
                                "type": "Control",
                                "scope": "#/properties/subjectConfirmationDataNotOnOrAfterExpirySeconds",
                                "i18n": "subjectConfirmation.subjectConfirmationDataNotOnOrAfterExpirySeconds",
                                "rule": {
                                  "effect": "SHOW",
                                  "condition": {
                                    "scope": "#/properties/__subjectConfirmationDataNotOnOrAfterExpirySecondsBoolean",
                                    "schema": {
                                      "const": true
                                    }
                                  }
                                }
                              }
                            ]
                          }
                        ]
                      }
                    ],
                    "rule": {
                      "effect": "SHOW",
                      "condition": {
                        "schema": {
                          "allOf": [
                            {
                              "required": [
                                "version",
                                "subjectConfirmationMethodUri"
                              ]
                            },
                            {
                              "properties": {
                                "version": {
                                  "const": 2
                                },
                                "subjectConfirmationMethodUri": {
                                  "enum": [
                                    "urn:oasis:names:tc:SAML:1.0:cm:holder-of-key",
                                    "urn:oasis:names:tc:SAML:1.0:cm:sender-vouches",
                                    "urn:oasis:names:tc:SAML:1.0:cm:bearer"
                                  ]
                                }
                              }
                            }
                          ]
                        },
                        "scope": "#"
                      }
                    }
                  }
                ]
              },
              {
                "type": "Group",
                "label": "Digital Signatures",
                "isExpanded": true,
                "options": {
                  "groupType": "Accordion"
                },
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/signAssertion",
                    "i18n": "digitalSignatures.signAssertion"
                  },
                  {
                    "type": "Group",
                    "label": "Private Key",
                    "options": {
                      "groupType": "ShowHide"
                    },
                    "elements": [
                      {
                        "type": "Control",
                        "scope": "#/properties/__privateKey",
                        "options": {
                          "privateKey": true,
                          "keyTypeOptions": [
                            "DEFAULT_KEY",
                            "CUSTOM_PRIVATE_KEY"
                          ]
                        }
                      }
                    ]
                  }
                ]
              }
            ]
          }
        ]
      }
    ],
    "configSchemaPatches": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/SamlpRequestBuilder",
        "patches": [
          {
            "op": "replace",
            "path": "/properties/target/default",
            "value": "REQUEST"
          },
          {
            "op": "add",
            "path": "/properties/__samlpRequestType",
            "value": {
              "type": "string",
              "enum": [
                "authenticationRequest",
                "authorizationDecisionRequest",
                "attributeQueryRequest"
              ]
            }
          },
          {
            "op": "add",
            "path": "/properties/__includeFormatAttribute",
            "value": {
              "type": "boolean",
              "default": true
            }
          },
          {
            "op": "add",
            "path": "/properties/customIssuerFormat/enum",
            "value": [
              "urn:oasis:names:tc:SAML:2.0:nameid-format:entity",
              "urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName",
              "urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified",
              "urn:oasis:names:tc:SAML:1.1:nameid-format:WindowsDomainQualifiedName",
              "urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress",
              "urn:oasis:names:tc:SAML:2.0:nameid-format:kerberos"
            ]
          },
          {
            "op": "add",
            "path": "/properties/__issuerValue",
            "value": {
              "type": "string",
              "enum": [
                "default",
                "custom"
              ]
            }
          },
          {
            "op": "replace",
            "path": "/properties/authorizationStatement/properties/actions/items",
            "value": {
              "type": "object",
              "properties": {
                "action": {
                  "type": "string"
                },
                "namespace": {
                  "type": "string"
                }
              }
            }
          },
          {
            "op": "add",
            "path": "/properties/attributeStatement/properties/attributes/items/properties/__attributeNameFormat",
            "value": {
              "type": "string",
              "enum": [
                "urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified",
                "urn:oasis:names:tc:SAML:2.0:attrname-format:uri",
                "urn:oasis:names:tc:SAML:2.0:attrname-format:basic",
                "custom"
              ],
              "default": "urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified"
            }
          },
          {
            "op": "add",
            "path": "/properties/attributeStatement/properties/attributes/items/properties/__version",
            "value": {
              "type": "integer"
            }
          },
          {
            "op": "add",
            "path": "/properties/__includeSubjectCertificate",
            "value": {
              "type": "boolean",
              "default": true
            }
          },
          {
            "op": "add",
            "path": "/properties/subjectConfirmationMethodUri/enum",
            "value": [
              "urn:oasis:names:tc:SAML:1.0:cm:holder-of-key",
              "urn:oasis:names:tc:SAML:1.0:cm:sender-vouches",
              "urn:oasis:names:tc:SAML:1.0:cm:bearer",
              "NONE"
            ]
          },
          {
            "op": "replace",
            "path": "/properties/subjectConfirmationKeyInfoType/enum",
            "value": [
              "STR_KEYID_LITERAL_X509",
              "STR_SKI",
              "STR_THUMBPRINT"
            ]
          },
          {
            "op": "add",
            "path": "/properties/__includeFormatIdentifier",
            "value": {
              "type": "boolean",
              "default": true
            }
          },
          {
            "op": "add",
            "path": "/properties/nameIdentifierFormat/enum",
            "value": [
              "automatic",
              "urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName",
              "urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress",
              "urn:oasis:names:tc:SAML:1.1:nameid-format:WindowsDomainQualifiedName",
              "urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified",
              "custom"
            ]
          },
          {
            "op": "add",
            "path": "/properties/__subjectConfirmationDataNotBeforeSecondsInPastBoolean",
            "value": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "op": "add",
            "path": "/properties/__subjectConfirmationDataNotOnOrAfterExpirySecondsBoolean",
            "value": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "op": "add",
            "path": "/properties/__privateKey",
            "value": {
              "type": "string"
            }
          },
          {
            "op": "add",
            "path": "/properties/xmlEncryptConfig/properties/__recipientX509Certificate",
            "value": {
              "type": "string",
              "enum": [
                "specifyCertificate",
                "useCertificateFromContextVariable"
              ]
            }
          },
          {
            "op": "add",
            "path": "/properties/xmlEncryptConfig/properties/xencAlgorithm/enum",
            "value": [
              "http://www.w3.org/2001/04/xmlenc#tripledes-cbc",
              "http://www.w3.org/2001/04/xmlenc#aes128-cbc",
              "http://www.w3.org/2001/04/xmlenc#aes192-cbc",
              "http://www.w3.org/2001/04/xmlenc#aes256-cbc",
              "http://www.w3.org/2009/xmlenc11#aes128-gcm",
              "http://www.w3.org/2009/xmlenc11#aes256-gcm"
            ]
          },
          {
            "op": "replace",
            "path": "/properties/nameIdentifierType/enum",
            "value": [
              "FROM_CREDS",
              "FROM_USER",
              "SPECIFIED"
            ]
          },
          {
            "op": "add",
            "path": "/properties/xmlEncryptConfig/properties/__addRecipientAttribute",
            "value": {
              "type": "boolean"
            }
          },
          {
            "op": "remove",
            "path": "/properties/otherTargetMessageVariable/default"
          },
          {
            "op": "remove",
            "path": "/properties/subjectConfirmationDataNotBeforeSecondsInPast/default"
          },
          {
            "op": "remove",
            "path": "/properties/subjectConfirmationDataNotOnOrAfterExpirySeconds/default"
          },
          {
            "op": "remove",
            "path": "/properties/attributeStatement/properties/variablePrefix/default"
          },
          {
            "op": "remove",
            "path": "/properties/xmlEncryptConfig/properties/encryptedDataTypeAttribute/default"
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/SamlpRequestBuilder",
        "locale": "en",
        "content": {
          "samlpRequestBuilderWizardTitle": "SAML Protocol Request Wizard",
          "targetMessageAndSOAPVersionStepTitle": "Message Target and SOAP Version",
          "targetMessageAndSOAPVersionStepDescription": "Specify the target location to set the SAMLP query and SOAP version used to build the message",
          "targetMessageAndSOAPVersion.soapVersion.label": "SOAP Version",
          "samlVersionAndRequestTypeStepTitle": "SAMLP Version and Request Type",
          "samlVersionAndRequestTypeStepDescription": "Specify the version of SAMLP and the SAMLP query request you wish to configure.",
          "samlVersionAndRequestType.version.label": "SAMLP Version",
          "samlVersionAndRequestType.__samlpRequestType.label": "SAMLP Request Type",
          "samlVersionAndRequestType.__samlpRequestType.authenticationRequest": "Authentication Request",
          "samlVersionAndRequestType.__samlpRequestType.authorizationDecisionRequest": "Authorization Decision Request",
          "samlVersionAndRequestType.__samlpRequestType.attributeQueryRequest": "Attribute Query Request",
          "samlVersionAndRequestType.requestId.label": "Request Identifier",
          "samlVersionAndRequestType.requestIdVariable.label": "Request ID Variable",
          "samlVersionAndRequestType.destinationAttribute.label": "Destination (URI)",
          "samlVersionAndRequestType.consentAttribute.label": "Consent (URI)",
          "issuerStepTitle": "Issuer",
          "issuerStepDescription": "Configure the issuer element value and attributes. Default value for Issuer element is the subject distinguished name of the configured private key's corresponding public key. No attributes are set by defauly.",
          "issuer.addIssuer.label": "Add issuer",
          "issuer.__includeFormatAttribute.label": "Include Format Attribute",
          "issuer.customIssuerFormat.label": "Format",
          "issuer.customIssuerFormat.urn:oasis:names:tc:SAML:2.0:nameid-format:entity": "Entity Identifier",
          "issuer.customIssuerFormat.urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName": "X.509 Subject Name",
          "issuer.customIssuerFormat.urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified": "Unspecified",
          "issuer.customIssuerFormat.urn:oasis:names:tc:SAML:1.1:nameid-format:WindowsDomainQualifiedName": "Windows Domain Qualified Name",
          "issuer.customIssuerFormat.urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress": "Email Address",
          "issuer.customIssuerFormat.urn:oasis:names:tc:SAML:2.0:nameid-format:kerberos": "Kerberos Principal Name",
          "issuer.customIssuerNameQualifier.label": "Name Qualifier",
          "issuer.__issuerValue.label": "Issuer Value",
          "issuer.__issuerValue.default": "Default",
          "issuer.__issuerValue.custom": "From Template",
          "issuer.customIssuerValue.label": "Template",
          "authorizationDecisionQueryStepTitle": "Authorization Decision Query",
          "authorizationDecisionQueryStepDescription": "Configure the issuer element value and attributes. Default value for Issuer element is the subject distinguished name of the configured private key's corresponding public key. No attributes are set by defauly.",
          "authorizationDecisionQuery.authorizationStatement.resource.label": "Resource",
          "authorizationDecisionQuery.authorizationStatement.actions.action.label": "Action",
          "authorizationDecisionQuery.authorizationStatement.actions.namespace.label": "Namespace",
          "authorizationDecisionQuery.authorizationStatement.actions.addButton.label": "Add Action and Namespace",
          "authorizationDecisionQuery.authorizationStatement.resource.error": "Atleast one action is required",
          "authorizationDecisionQuery.evidence.label": "Evidence",
          "authorizationDecisionQuery.evidenceVariable.label": "Context Variable",
          "authorizationDecisionQuery.authorizationStatement.actions.error": "Atleast one action is required",
          "attributeStatementStepTitle": "Attribute Statement",
          "attributeStatementStepDescription": "Specify the SAML attributes that the SAML statement will include.",
          "attributeStatement.failIfAnyAttributeIsMissing.label": "Fail if any Attribute is missing",
          "attributeStatement.variablePrefix.label": "Variable Prefix",
          "attributeStatement.attributes.heading": "Attributes",
          "attributeStatement.attributes.name.label": "Attribute Name",
          "attributeStatement.attributes.namespace.label": "Attribute Namespace",
          "attributeStatement.attributes.value.label": "Attribute Value",
          "attributeStatement.attributes.__attributeNameFormat.label": "Attribute Name Format",
          "attributeStatement.attributes.__attributeNameFormat.urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified": "Unspecified",
          "attributeStatement.attributes.__attributeNameFormat.urn:oasis:names:tc:SAML:2.0:attrname-format:uri": "URI Reference",
          "attributeStatement.attributes.__attributeNameFormat.urn:oasis:names:tc:SAML:2.0:attrname-format:basic": "Basic",
          "attributeStatement.attributes.__attributeNameFormat.custom": "Other",
          "attributeStatement.attributes.friendlyName.label": "Friendly Name",
          "attributeStatement.attributes.repeatIfMulti.label": "Repeat if multivalued",
          "attributeStatement.attributes.addAttribute.label": "Add Attribute",
          "nameIdentifierStepTitle": "Name Identifier",
          "nameIdentifierStepDescription": "Specify one or more formats that will be accepted by the gateway and the optional subject name qualifier.",
          "nameIdentifier.__includeFormatIdentifier.label": "Include format identifier",
          "nameIdentifier.encryptNameIdentifier.label": "Encrypt name identifier",
          "nameIdentifier.nameIdentifierFormat.label": "Format",
          "nameIdentifier.nameIdentifierFormat.automatic": "Automatic",
          "nameIdentifier.nameIdentifierFormat.urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName": "X.509 Subject Name",
          "nameIdentifier.nameIdentifierFormat.urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress": "Email Address",
          "nameIdentifier.nameIdentifierFormat.urn:oasis:names:tc:SAML:1.1:nameid-format:WindowsDomainQualifiedName": "Windows Domain Qualified Name",
          "nameIdentifier.nameIdentifierFormat.urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified": "Unspecified",
          "nameIdentifier.nameIdentifierFormat.custom": "Custom",
          "nameIdentifier.customNameIdentifierFormat.label": "Custom Format",
          "nameIdentifier.customNameIdentifierFormat.error": "Custom Format is invalid. Non-accepted characters are ^, <, >, {, }, %, \", \\, |",
          "nameIdentifier.nameIdentifierType.label": "Name Identifier Value",
          "nameIdentifier.nameIdentifierType.NONE": "None",
          "nameIdentifier.nameIdentifierType.SPECIFIED": "From Template",
          "nameIdentifier.nameIdentifierType.FROM_CREDS": "From Credentials",
          "nameIdentifier.nameIdentifierType.FROM_USER": "From Authenticated User",
          "nameIdentifier.nameQualifier.label": "Name Qualifier ",
          "nameIdentifier.nameIdentifierValue.label": "Template",
          "encryptionSettingsStepTitle": "Encryption Settings",
          "encryptionSettingsStepDescription": "Specify the settings for encrypting the Name Identifier.",
          "encryptionSettings.xencAlgorithm.label": "Encryption Method",
          "encryptionSettings.__recipientX509Certificate.label": "Recipient X.509 Certificate",
          "encryptionSettings.__recipientX509Certificate.specifyCertificate": "Specify Certificate",
          "encryptionSettings.__recipientX509Certificate.useCertificateFromContextVariable": "Use Certificate from Context Variable",
          "encryptionSettings.recipientCertificateBase64.label": "Recipient Certificate",
          "encryptionSettings.recipientCertificateBase64.error": "No Recipient Certificate is configured",
          "encryptionSettings.recipientCertContextVariableName.label": "Context Variable",
          "encryptionSettings.advanced.includeEncryptedDataTypeAttribute.label": "Add encrypted data type attribute",
          "encryptionSettings.advanced.encryptedDataTypeAttribute.label": "Encrypted Data Attribute",
          "encryptionSettings.advanced.encryptedDataTypeAttribute.uri.error": "Encrypted Data Attribute should be valid URI",
          "encryptionSettings.advanced.__addRecipientAttribute.label": "Add recipient attribute",
          "encryptionSettings.advanced.encryptedKeyRecipientAttribute.label": "Recipient Attribute",
          "encryptionSettings.advanced.useOaep.label": "Use OAEP",
          "subjectConfirmationStepTitle": "Subject Confirmation",
          "subjectConfirmationStepDescription": "Specify the subject confirmation method that will be included in this assertion.",
          "subjectConfirmation.subjectConfirmationMethodUri.label": "Subject Confirmation Method",
          "subjectConfirmation.subjectConfirmationMethodUri.urn:oasis:names:tc:SAML:1.0:cm:holder-of-key": "Holder of Key",
          "subjectConfirmation.subjectConfirmationMethodUri.urn:oasis:names:tc:SAML:1.0:cm:sender-vouches": "Sender Vouches",
          "subjectConfirmation.subjectConfirmationMethodUri.urn:oasis:names:tc:SAML:1.0:cm:bearer": "Bearer",
          "subjectConfirmation.subjectConfirmationMethodUri.NONE": "None",
          "subjectConfirmation.__includeSubjectCertificate.label": "Include subject certificate",
          "subjectConfirmation.subjectConfirmationKeyInfoType.label": "Method for Including Subject Certificate",
          "subjectConfirmation.subjectConfirmationKeyInfoType.STR_KEYID_LITERAL_X509": "Literal Certificate (X509Data)",
          "subjectConfirmation.subjectConfirmationKeyInfoType.STR_SKI": "Security Token Reference using SKI",
          "subjectConfirmation.subjectConfirmationKeyInfoType.STR_THUMBPRINT": "Security Token Reference using SHA1 Thumbprint",
          "subjectConfirmation.subjectConfirmationData.heading": "Subject Confirmation Data",
          "subjectConfirmation.subjectConfirmationDataRecipient.label": "Recipent",
          "subjectConfirmation.subjectConfirmationDataAddress.label": "Address",
          "subjectConfirmation.subjectConfirmationDataInResponseTo.label": "In Response To",
          "subjectConfirmation.validityPeriod.heading": "Validity Period",
          "subjectConfirmation.__subjectConfirmationDataNotBeforeSecondsInPastBoolean.label": "Not before",
          "subjectConfirmation.__subjectConfirmationDataNotOnOrAfterExpirySecondsBoolean.label": "Not on or after",
          "subjectConfirmation.subjectConfirmationDataNotBeforeSecondsInPast.label": "Seconds in the Past",
          "subjectConfirmation.subjectConfirmationDataNotBeforeSecondsInPast.error": "'Seconds in the Past' must be a number between 0 and 3600",
          "subjectConfirmation.subjectConfirmationDataNotOnOrAfterExpirySeconds.label": "Seconds in the Future",
          "subjectConfirmation.subjectConfirmationDataNotOnOrAfterExpirySeconds.error": "'Seconds in the Future' must be a number between 0 and 3600",
          "digitalSignaturesStepTitle": "Digital Signatures",
          "digitalSignaturesStepDescription": "Specify whether the assertion will include a digital signature in the request.",
          "digitalSignatures.signAssertion.label": "Sign request"
        }
      }
    ]
  },
  {
    "configName": "SamlpResponseBuilder",
    "displayNameFormats": [
      {
        "format": "Build SAML Protocol Response; Sign samlp:Response",
        "condition": "equals({{.signResponse}}, true)"
      },
      {
        "format": "Build SAML Protocol Response",
        "condition": "true"
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Build SAML Protocol Response",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/target",
            "options": {
              "messageTarget": true,
              "otherTargetMessageVariableLabel": "assertion.common.target.otherTargetContextVariable"
            }
          },
          {
            "type": "Group",
            "label": "General",
            "isExpanded": true,
            "options": {
              "groupType": "Accordion",
              "customClass": "general-group"
            },
            "elements": [
              {
                "type": "Group",
                "i18n": "samlVersion",
                "options": {
                  "groupType": "wrapCustomClass",
                  "customClass": "saml-version-group"
                },
                "elements": [
                  {
                    "type": "Control",
                    "i18n": "version",
                    "scope": "#/properties/__version"
                  },
                  {
                    "type": "Control",
                    "i18n": "signResponse",
                    "scope": "#/properties/signResponse"
                  },
                  {
                    "type": "Control",
                    "i18n": "validateWebSsoRules",
                    "scope": "#/properties/validateWebSsoRules"
                  }
                ]
              },
              {
                "type": "Group",
                "i18n": "responseStatus",
                "options": {
                  "groupType": "wrapCustomClass",
                  "customClass": "response-group"
                },
                "elements": [
                  {
                    "type": "Control",
                    "i18n": "samlStatusCode",
                    "scope": "#/properties/samlStatusCode",
                    "options": {
                      "markAsRequired": true,
                      "autocomplete": true,
                      "allowUserProvidedInput": true,
                      "defaultOptions": []
                    }
                  },
                  {
                    "type": "Control",
                    "i18n": "statusMessage",
                    "scope": "#/properties/statusMessage"
                  },
                  {
                    "type": "Control",
                    "i18n": "statusDetail",
                    "scope": "#/properties/statusDetail"
                  }
                ]
              },
              {
                "type": "Group",
                "i18n": "responseAttribute",
                "options": {
                  "groupType": "wrapCustomClass",
                  "customClass": "response-group"
                },
                "elements": [
                  {
                    "type": "Control",
                    "i18n": "responseId",
                    "scope": "#/properties/responseId"
                  },
                  {
                    "type": "Control",
                    "i18n": "issueInstant",
                    "scope": "#/properties/issueInstant"
                  },
                  {
                    "type": "Control",
                    "i18n": "inResponseTo",
                    "scope": "#/properties/inResponseTo"
                  },
                  {
                    "type": "Control",
                    "i18n": "recipient",
                    "scope": "#/properties/recipient",
                    "rule": {
                      "effect": "HIDE",
                      "condition": {
                        "scope": "#/properties/__version",
                        "schema": {
                          "const": "2.0"
                        }
                      }
                    }
                  },
                  {
                    "type": "Control",
                    "i18n": "destination",
                    "scope": "#/properties/destination",
                    "rule": {
                      "effect": "HIDE",
                      "condition": {
                        "scope": "#/properties/__version",
                        "schema": {
                          "const": "1.1"
                        }
                      }
                    }
                  },
                  {
                    "type": "Control",
                    "i18n": "consent",
                    "scope": "#/properties/consent",
                    "rule": {
                      "effect": "HIDE",
                      "condition": {
                        "scope": "#/properties/__version",
                        "schema": {
                          "const": "1.1"
                        }
                      }
                    }
                  }
                ]
              },
              {
                "type": "Group",
                "i18n": "responseElements",
                "options": {
                  "groupType": "wrapCustomClass",
                  "customClass": "response-group"
                },
                "elements": [
                  {
                    "type": "Control",
                    "i18n": "responseAssertions",
                    "scope": "#/properties/responseAssertions"
                  },
                  {
                    "type": "Control",
                    "i18n": "encryptedAssertions",
                    "scope": "#/properties/encryptedAssertions",
                    "rule": {
                      "effect": "HIDE",
                      "condition": {
                        "scope": "#/properties/__version",
                        "schema": {
                          "const": "1.1"
                        }
                      }
                    }
                  },
                  {
                    "type": "Control",
                    "i18n": "responseExtensions",
                    "scope": "#/properties/responseExtensions",
                    "rule": {
                      "effect": "HIDE",
                      "condition": {
                        "scope": "#/properties/__version",
                        "schema": {
                          "const": "1.1"
                        }
                      }
                    }
                  }
                ]
              }
            ]
          },
          {
            "type": "Group",
            "options": {
              "groupType": "wrapCustomClass"
            },
            "rule": {
              "effect": "HIDE",
              "condition": {
                "scope": "#/properties/__version",
                "schema": {
                  "const": "1.1"
                }
              }
            },
            "elements": [
              {
                "type": "Group",
                "label": "Issuer",
                "options": {
                  "groupType": "Accordion"
                },
                "elements": [
                  {
                    "type": "Control",
                    "i18n": "addIssuer",
                    "scope": "#/properties/addIssuer"
                  },
                  {
                    "type": "Group",
                    "rule": {
                      "effect": "HIDE",
                      "condition": {
                        "scope": "#/properties/addIssuer",
                        "schema": {
                          "const": false
                        }
                      }
                    },
                    "options": {
                      "groupType": "wrapCustomClass",
                      "customClass": "issuer-group"
                    },
                    "elements": [
                      {
                        "type": "Group",
                        "i18n": "format",
                        "options": {
                          "groupType": "wrapCustomClass",
                          "customClass": "issuer-group"
                        },
                        "elements": [
                          {
                            "type": "Control",
                            "i18n": "__customIssuerFormat",
                            "scope": "#/properties/__customIssuerFormat"
                          },
                          {
                            "type": "Control",
                            "scope": "#/properties/customIssuerFormat",
                            "label": false,
                            "options": {
                              "format": "radio",
                              "useRowLayout": false
                            },
                            "rule": {
                              "effect": "HIDE",
                              "condition": {
                                "scope": "#/properties/__customIssuerFormat",
                                "schema": {
                                  "const": false
                                }
                              }
                            }
                          },
                          {
                            "type": "Control",
                            "i18n": "customIssuerNameQualifier",
                            "scope": "#/properties/customIssuerNameQualifier"
                          },
                          {
                            "type": "Group",
                            "i18n": "issuerValue",
                            "options": {
                              "groupType": "wrapCustomClass",
                              "customClass": "issuer-group"
                            },
                            "elements": [
                              {
                                "type": "Control",
                                "scope": "#/properties/__customIssuerValue",
                                "label": false,
                                "options": {
                                  "format": "radio",
                                  "useRowLayout": false,
                                  "uiSchemasMap": {
                                    "2": {
                                      "type": "VerticalLayout",
                                      "elements": [
                                        {
                                          "type": "Control",
                                          "label": false,
                                          "scope": "#/properties/customIssuerValue"
                                        }
                                      ]
                                    }
                                  }
                                }
                              }
                            ]
                          }
                        ]
                      }
                    ]
                  }
                ]
              }
            ]
          },
          {
            "type": "Group",
            "label": "Advanced",
            "options": {
              "groupType": "Accordion"
            },
            "elements": [
              {
                "type": "Control",
                "i18n": "includeSignerCertChain",
                "scope": "#/properties/includeSignerCertChain"
              }
            ]
          },
          {
            "type": "Group",
            "label": "Private Key",
            "options": {
              "groupType": "Accordion"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/__privateKey",
                "options": {
                  "privateKey": true,
                  "keyTypeOptions": [
                    "DEFAULT_KEY",
                    "CUSTOM_PRIVATE_KEY"
                  ]
                }
              }
            ]
          }
        ]
      }
    ],
    "configSchemaPatches": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/SamlpResponseBuilder",
        "patches": [
          {
            "op": "add",
            "path": "/properties/__customIssuerFormat",
            "value": {
              "type": "boolean"
            }
          },
          {
            "op": "replace",
            "path": "/properties/validateWebSsoRules/default",
            "value": false
          },
          {
            "op": "add",
            "path": "/properties/__version",
            "value": {
              "type": "string",
              "enum": [
                "2.0",
                "1.1"
              ],
              "default": "2.0"
            }
          },
          {
            "op": "add",
            "path": "/properties/__privateKey",
            "value": {
              "type": "string"
            }
          },
          {
            "op": "add",
            "path": "/properties/customIssuerFormat",
            "value": {
              "type": "string",
              "enum": [
                "1",
                "2",
                "3",
                "4",
                "5",
                "6"
              ],
              "default": "1"
            }
          },
          {
            "op": "add",
            "path": "/properties/__customIssuerValue",
            "value": {
              "type": "string",
              "enum": [
                "1",
                "2"
              ],
              "default": "1"
            }
          },
          {
            "op": "remove",
            "path": "/properties/samlStatusCode/default"
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "SamlpResponseBuilder/Main",
        "locale": "en",
        "content": {
          "version.label": "SAML Version",
          "signResponse.label": "Sign response",
          "validateWebSsoRules.label": "Validate web SSO rules",
          "samlStatusCode.label": "Status Code",
          "statusMessage.label": "Status Message",
          "statusDetail.label": "Status Detail",
          "responseId.label": "Response ID",
          "issueInstant.label": "Issue Instant",
          "inResponseTo.label": "In Response To",
          "recipient.label": "Recipient",
          "destination.label": "Destination",
          "consent.label": "Consent",
          "responseAssertions.label": "Assertion(s)",
          "encryptedAssertions.label": "Encrypted Assertion(s)",
          "responseExtensions.label": "Extensions",
          "addIssuer.label": "Add issuer",
          "customIssuerNameQualifier.label": "Name Qualifier",
          "includeSignerCertChain.label": "Include signer's full certificate chain in signature",
          "responseStatus": "Response Status",
          "responseAttribute": "Response Attributes",
          "responseElements": "Response Elements",
          "format": "Format",
          "issuerValue": "Issuer Value",
          "statusDetail.ERROR": "Status detail may only contain valid context variables references",
          "responseAssertions.ERROR": "Assertions(s) may only contain valid context variables references",
          "encryptedAssertions.ERROR": "Encrypted Assertions(s) may only contain valid context variables references",
          "responseExtensions.ERROR": "Extensions may only contain valid context variables references",
          "samlStatusCode.ERROR": "If no assertions are entered the status can not be success when Validate Web SSO Rules is configured.",
          "customIssuerFormat.1": "Entity identifier",
          "customIssuerFormat.2": "Unspecified",
          "customIssuerFormat.3": "Email address",
          "customIssuerFormat.4": "X.509 subject name",
          "customIssuerFormat.5": "Windows domain qualified name",
          "customIssuerFormat.6": "Kerberos principal name",
          "__customIssuerFormat.label": "Include format attribute",
          "__customIssuerValue.1": "Default",
          "__customIssuerValue.2": "From template",
          "samlVersion": "SAML Version & Signature",
          "statusMessage.ERROR": "Status message contains invalid variable references",
          "responseId.ERROR": "Response ID contains invalid variable references",
          "issueInstant.ERROR": "Issue instant contains invalid variable references",
          "inResponseTo.ERROR": "In Response To contains invalid variable references",
          "destination.ERROR": "Destination contains invalid variable references",
          "consent.ERROR": "Consent contains invalid variable references",
          "recipient.ERROR": "Recipient contains invalid variable references",
          "samlStatusCode.string.ERROR": "Invalid SAML Status code",
          "samlStatusCode.UnsupportedBinding.ERROR": "If status is not success then no assertions can be entered when Validate Web SSO Rules is configured."
        }
      }
    ]
  },
  {
    "configName": "SamlpResponseEvaluation",
    "displayNameFormats": [
      {
        "format": "Evaluate SAML Protocol Response (Authentication)",
        "condition": "and(not(isNull({{.authenticationStatement}})))"
      },
      {
        "format": "Evaluate SAML Protocol Response (Authorization Decision)",
        "condition": "and(not(isNull({{.authorizationStatement}})))"
      },
      {
        "format": "Evaluate SAML Protocol Response (Attribute Query)",
        "condition": "and(not(isNull({{.attributeStatement}})))"
      },
      {
        "format": "Evaluate SAML Protocol Response (Authentication)",
        "condition": "and(not(isNull({{.authenticationStatement}})))"
      },
      {
        "format": "Evaluate SAML Protocol Response (Authorization Decision)",
        "condition": "and(not(isNull({{.authorizationStatement}})))"
      },
      {
        "format": "Evaluate SAML Protocol Response (Attribute Query)",
        "condition": "and(not(isNull({{.attributeStatement}})))"
      },
      {
        "format": "Evaluate SAML Protocol Response",
        "condition": "true"
      }
    ],
    "refVariables": [
      {
        "fieldPath": ".",
        "suffix": "samlpResponse.status",
        "refType": "OUT",
        "dataType": "string",
        "multivalued": true
      },
      {
        "fieldPath": ".",
        "suffix": "samlpResponse.authz.decision",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".",
        "suffix": "samlpResponse.attribute",
        "refType": "OUT",
        "dataType": "string",
        "prefixed": true
      }
    ],
    "configSchemas": [
      {
        "$id": "https://l7tech.com/2025/json-schema/assertions/SamlpResponseEvaluation",
        "title": "Evaluate SAML Protocol Response",
        "type": "object",
        "properties": {
          "attributeStatement": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/sub-types/samlAttributeStatement"
          },
          "audienceRestriction": {
            "type": "string"
          },
          "authenticationStatement": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/sub-types/samlAuthenticationStatement"
          },
          "authorizationStatement": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/SamlpResponseEvaluation:samlpAuthorizationInfo"
          },
          "__samlpResponseType": {
            "type": "string",
            "default": "AUTHORIZATION",
            "enum": [
              "AUTHORIZATION",
              "ATTRIBUTE"
            ]
          },
          "authzDecisionFalsifyAssertion": {
            "type": "boolean",
            "default": true
          },
          "authzDecisionOption": {
            "type": "integer"
          },
          "__authzDecisionOption": {
            "type": "boolean",
            "default": true
          },
          "authzDecisionVariable": {
            "type": "string",
            "enum": [
              "Permit",
              "Deny",
              "Indeterminate"
            ],
            "default": "Permit"
          },
          "keyAlias": {
            "type": "string"
          },
          "nameQualifier": {
            "type": "string"
          },
          "noSubjectConfirmation": {
            "type": "boolean",
            "default": false
          },
          "nonDefaultKeystoreId": {
            "type": "number",
            "default": 0
          },
          "otherTargetMessageVariable": {
            "type": "string",
            "default": "samlpResponse.message"
          },
          "responseStatusFalsifyAssertion": {
            "type": "boolean",
            "default": true
          },
          "soapVersion": {
            "type": "integer"
          },
          "target": {
            "type": "string",
            "enum": [
              "REQUEST",
              "RESPONSE",
              "OTHER"
            ],
            "default": "OTHER"
          },
          "usesDefaultKeyStore": {
            "type": "boolean",
            "default": true
          },
          "variablePrefixOverride": {
            "type": "string"
          },
          "version": {
            "type": "integer",
            "default": 1
          },
          ".enabled": {
            "type": "boolean",
            "default": true
          },
          ".left.comment": {
            "type": "string"
          },
          ".right.comment": {
            "type": "string"
          }
        }
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/SamlpResponseEvaluation:samlpAuthorizationInfo",
        "properties": {
          "actions": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "resource": {
            "type": "string"
          }
        }
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/sub-types/samlAttributeStatement",
        "properties": {
          "attributes": {
            "type": "array",
            "items": {
              "$ref": "https://l7tech.com/2025/json-schema/assertions/sub-types/samlAttributeStatement$Attribute"
            }
          },
          "failIfAnyAttributeIsMissing": {
            "type": "boolean",
            "default": false
          },
          "failIfAttributeValueExcludesAttribute": {
            "type": "boolean",
            "default": false
          },
          "failIfNoAttributesAdded": {
            "type": "boolean",
            "default": true
          },
          "failIfUnknownAttributeInFilter": {
            "type": "boolean",
            "default": false
          },
          "filterExpression": {
            "type": "string",
            "default": ""
          },
          "variablePrefix": {
            "type": "string",
            "default": "attrStatement"
          }
        }
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/sub-types/samlAttributeStatement$Attribute",
        "properties": {
          "__samlVersion": {
            "type": "integer"
          },
          "addBehavior": {
            "type": "string",
            "enum": [
              "STRING_CONVERT",
              "ADD_AS_XML"
            ],
            "default": "STRING_CONVERT"
          },
          "anyValue": {
            "type": "boolean",
            "default": false
          },
          "emptyBehavior": {
            "type": "string",
            "enum": [
              "EMPTY_STRING",
              "EXISTS_NO_VALUE",
              "NULL_VALUE"
            ],
            "default": "EMPTY_STRING"
          },
          "friendlyName": {
            "type": "string"
          },
          "missingWhenEmpty": {
            "type": "boolean",
            "default": false
          },
          "name": {
            "type": "string"
          },
          "nameFormat": {
            "type": "string"
          },
          "__nameFormatType": {
            "type": "string",
            "enum": [
              "UNSPECIFIED",
              "URI_REF",
              "BASIC",
              "OTHER"
            ],
            "default": "UNSPECIFIED"
          },
          "namespace": {
            "type": "string"
          },
          "repeatIfMulti": {
            "type": "boolean",
            "default": false
          },
          "value": {
            "type": "string"
          },
          "__valueType": {
            "type": "string",
            "enum": [
              "NON_EMPTY",
              "SPECIFIC"
            ],
            "default": "SPECIFIC"
          },
          "valueComparison": {
            "type": "string",
            "enum": [
              "STRING_COMPARE",
              "CANONICALIZE"
            ],
            "default": "STRING_COMPARE"
          },
          "variableNotFoundBehavior": {
            "type": "string",
            "enum": [
              "REPLACE_EMPTY_STRING",
              "REPLACE_EXPRESSION_EMPTY_STRING"
            ],
            "default": "REPLACE_EMPTY_STRING"
          }
        }
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/sub-types/samlAuthenticationStatement",
        "properties": {
          "authenticationMethods": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "customAuthenticationMethods": {
            "type": "string",
            "default": ""
          },
          "includeAuthenticationContextDeclaration": {
            "type": "boolean",
            "default": true
          }
        }
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/SamlpResponseEvaluation/Main",
        "title": "Evaluate SAML Protocol Response",
        "properties": {
          "SamlpResponseEvaluation": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/SamlpResponseEvaluation"
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Evaluate SAML Protocol Response",
        "elements": [
          {
            "type": "Categorization",
            "elements": [
              {
                "type": "Category",
                "label": "messageAndVersionStepTitle",
                "description": "messageAndVersionStepDescription",
                "validateFields": [
                  "otherTargetMessageVariable"
                ],
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/target",
                    "options": {
                      "messageTarget": true,
                      "otherTargetMessageVariableLabel": "assertion.common.target.otherTargetMessageVariable"
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/version",
                    "i18n": "samlVersion",
                    "options": {
                      "autocomplete": false,
                      "markAsRequired": true,
                      "defaultOptions": [
                        {
                          "label": "Version 1.1",
                          "value": 1
                        },
                        {
                          "label": "Version 2.0",
                          "value": 2
                        }
                      ]
                    }
                  }
                ]
              },
              {
                "type": "Category",
                "label": "responseTypeAndStatusStepTitle",
                "description": "responseTypeAndStatusStepDescription",
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/__samlpResponseType",
                    "i18n": "samlpResponseType"
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/responseStatusFalsifyAssertion",
                    "i18n": "responseStatus"
                  }
                ]
              },
              {
                "type": "Category",
                "label": "authorizationDecisionStepTitle",
                "description": "authorizationDecisionStepDescription",
                "elements": [
                  {
                    "type": "HorizontalLayout",
                    "elements": [
                      {
                        "type": "Control",
                        "scope": "#/properties/__authzDecisionOption",
                        "i18n": "authorizationDecisionOption"
                      },
                      {
                        "type": "Control",
                        "scope": "#/properties/authzDecisionVariable",
                        "label": false,
                        "i18n": "authorizationDecisionVariable",
                        "rule": {
                          "effect": "DISABLE",
                          "condition": {
                            "scope": "#/properties/__authzDecisionOption",
                            "schema": {
                              "const": false
                            }
                          }
                        }
                      }
                    ]
                  }
                ],
                "rule": {
                  "effect": "SHOW",
                  "condition": {
                    "scope": "#/properties/__samlpResponseType",
                    "schema": {
                      "const": "AUTHORIZATION"
                    }
                  }
                }
              },
              {
                "type": "Category",
                "label": "attributeStatementStepTitle",
                "description": "attributeStatementStepDescription",
                "validateFields": [
                  "name",
                  "value",
                  "nameFormat",
                  "attributeStatement"
                ],
                "elements": [
                  {
                    "type": "Group",
                    "i18n": "attributeStatement.attributes.label",
                    "options": {
                      "groupType": "wrapCustomClass",
                      "customClass": "label-heading-style"
                    },
                    "elements": [
                      {
                        "type": "Control",
                        "scope": "#/properties/attributeStatement/properties/attributes",
                        "i18n": "attributeStatement.attributes",
                        "options": {
                          "fieldGroup": true,
                          "buttonLabel": "attributeStatement.attributes.btn",
                          "detail": {
                            "type": "VerticalLayout",
                            "elements": [
                              {
                                "type": "Control",
                                "scope": "#/properties/name",
                                "i18n": "attributeStatement.attributes.name",
                                "options": {
                                  "markAsRequired": true
                                }
                              },
                              {
                                "type": "Control",
                                "scope": "#/properties/namespace",
                                "i18n": "attributeStatement.attributes.namespace",
                                "rule": {
                                  "effect": "SHOW",
                                  "condition": {
                                    "scope": "#/properties/__samlVersion",
                                    "schema": {
                                      "const": 1
                                    }
                                  }
                                }
                              },
                              {
                                "type": "Group",
                                "options": {
                                  "groupType": "wrapCustomClass"
                                },
                                "elements": [
                                  {
                                    "type": "Group",
                                    "i18n": "attributeStatement.nameFormat.label",
                                    "options": {
                                      "groupType": "wrapCustomClass",
                                      "customClass": "samlp-response-eval-two-elements"
                                    },
                                    "elements": [
                                      {
                                        "type": "HorizontalLayout",
                                        "elements": [
                                          {
                                            "type": "Control",
                                            "scope": "#/properties/__nameFormatType",
                                            "i18n": "attributeStatement.attributes.nameFormatType",
                                            "label": false
                                          },
                                          {
                                            "type": "Control",
                                            "scope": "#/properties/nameFormat",
                                            "label": false,
                                            "options": {
                                              "markAsRequired": true
                                            },
                                            "rule": {
                                              "effect": "ENABLE",
                                              "condition": {
                                                "scope": "#/properties/__nameFormatType",
                                                "schema": {
                                                  "const": "OTHER"
                                                }
                                              }
                                            }
                                          }
                                        ]
                                      }
                                    ]
                                  }
                                ],
                                "rule": {
                                  "effect": "SHOW",
                                  "condition": {
                                    "scope": "#/properties/__samlVersion",
                                    "schema": {
                                      "const": 2
                                    }
                                  }
                                }
                              },
                              {
                                "type": "Control",
                                "scope": "#/properties/friendlyName",
                                "i18n": "attributeStatement.attributes.friendlyName",
                                "rule": {
                                  "effect": "SHOW",
                                  "condition": {
                                    "scope": "#/properties/__samlVersion",
                                    "schema": {
                                      "const": 2
                                    }
                                  }
                                }
                              },
                              {
                                "type": "Control",
                                "scope": "#/properties/__valueType",
                                "i18n": "attributeStatement.attributes.attributeValue",
                                "options": {
                                  "format": "radio",
                                  "subschemaPath": "properties.attributeStatement.properties.attributes.items",
                                  "uiSchemasMap": {
                                    "SPECIFIC": {
                                      "type": "VerticalLayout",
                                      "elements": [
                                        {
                                          "type": "Control",
                                          "scope": "#/properties/value",
                                          "label": false,
                                          "options": {
                                            "multiline": true,
                                            "rows": 3
                                          }
                                        }
                                      ]
                                    }
                                  }
                                }
                              }
                            ]
                          }
                        }
                      }
                    ]
                  }
                ],
                "rule": {
                  "effect": "SHOW",
                  "condition": {
                    "scope": "#/properties/__samlpResponseType",
                    "schema": {
                      "const": "ATTRIBUTE"
                    }
                  }
                }
              }
            ],
            "options": {
              "variant": "apimStepper",
              "wizardTitle": "samlProtocolResponseWizardTitle"
            }
          },
          {
            "type": "Group",
            "options": {
              "groupType": "ReadOnlyForm"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/target",
                "options": {
                  "messageTarget": true,
                  "otherTargetMessageVariableLabel": "assertion.common.target.otherTargetMessageVariable"
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/version",
                "i18n": "samlVersion",
                "options": {
                  "autocomplete": false,
                  "markAsRequired": true,
                  "defaultOptions": [
                    {
                      "label": "Version 1.1",
                      "value": 1
                    },
                    {
                      "label": "Version 2.0",
                      "value": 2
                    }
                  ]
                }
              },
              {
                "type": "Group",
                "label": "SAMLP Response Type and Status",
                "options": {
                  "groupType": "Accordion"
                },
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/__samlpResponseType",
                    "i18n": "samlpResponseType"
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/responseStatusFalsifyAssertion",
                    "i18n": "responseStatus"
                  }
                ]
              },
              {
                "type": "Group",
                "options": {
                  "groupType": "wrapCustomClass"
                },
                "elements": [
                  {
                    "type": "Group",
                    "label": "Authorization Decision",
                    "options": {
                      "groupType": "Accordion"
                    },
                    "elements": [
                      {
                        "type": "HorizontalLayout",
                        "elements": [
                          {
                            "type": "Control",
                            "scope": "#/properties/__authzDecisionOption",
                            "i18n": "authorizationDecisionOption"
                          },
                          {
                            "type": "Control",
                            "scope": "#/properties/authzDecisionVariable",
                            "label": false,
                            "i18n": "authorizationDecisionVariable"
                          }
                        ]
                      }
                    ]
                  }
                ],
                "rule": {
                  "effect": "SHOW",
                  "condition": {
                    "scope": "#/properties/__samlpResponseType",
                    "schema": {
                      "const": "AUTHORIZATION"
                    }
                  }
                }
              },
              {
                "type": "Group",
                "options": {
                  "groupType": "wrapCustomClass"
                },
                "elements": [
                  {
                    "type": "Group",
                    "label": "Attribute Statement",
                    "options": {
                      "groupType": "Accordion"
                    },
                    "elements": [
                      {
                        "type": "Group",
                        "i18n": "attributeStatement.attributes.label",
                        "options": {
                          "groupType": "wrapCustomClass",
                          "customClass": "label-heading-style"
                        },
                        "elements": [
                          {
                            "type": "Control",
                            "scope": "#/properties/attributeStatement/properties/attributes",
                            "i18n": "attributeStatement.attributes",
                            "options": {
                              "fieldGroup": true,
                              "buttonLabel": "attributeStatement.attributes.btn",
                              "detail": {
                                "type": "VerticalLayout",
                                "elements": [
                                  {
                                    "type": "Control",
                                    "scope": "#/properties/name",
                                    "i18n": "attributeStatement.attributes.name",
                                    "options": {
                                      "markAsRequired": true
                                    }
                                  },
                                  {
                                    "type": "Control",
                                    "scope": "#/properties/namespace",
                                    "i18n": "attributeStatement.attributes.namespace",
                                    "rule": {
                                      "effect": "SHOW",
                                      "condition": {
                                        "scope": "#/properties/__samlVersion",
                                        "schema": {
                                          "const": 1
                                        }
                                      }
                                    }
                                  },
                                  {
                                    "type": "Group",
                                    "options": {
                                      "groupType": "wrapCustomClass"
                                    },
                                    "elements": [
                                      {
                                        "type": "Group",
                                        "i18n": "attributeStatement.nameFormat.label",
                                        "options": {
                                          "groupType": "wrapCustomClass",
                                          "customClass": "samlp-response-eval-two-elements"
                                        },
                                        "elements": [
                                          {
                                            "type": "HorizontalLayout",
                                            "elements": [
                                              {
                                                "type": "Control",
                                                "scope": "#/properties/__nameFormatType",
                                                "i18n": "attributeStatement.attributes.nameFormatType",
                                                "label": false
                                              },
                                              {
                                                "type": "Control",
                                                "scope": "#/properties/nameFormat",
                                                "label": false,
                                                "options": {
                                                  "markAsRequired": true
                                                }
                                              }
                                            ]
                                          }
                                        ]
                                      }
                                    ],
                                    "rule": {
                                      "effect": "SHOW",
                                      "condition": {
                                        "scope": "#/properties/__samlVersion",
                                        "schema": {
                                          "const": 2
                                        }
                                      }
                                    }
                                  },
                                  {
                                    "type": "Control",
                                    "scope": "#/properties/friendlyName",
                                    "i18n": "attributeStatement.attributes.friendlyName",
                                    "rule": {
                                      "effect": "SHOW",
                                      "condition": {
                                        "scope": "#/properties/__samlVersion",
                                        "schema": {
                                          "const": 2
                                        }
                                      }
                                    }
                                  },
                                  {
                                    "type": "Control",
                                    "scope": "#/properties/__valueType",
                                    "i18n": "attributeStatement.attributes.attributeValue",
                                    "options": {
                                      "format": "radio",
                                      "subschemaPath": "properties.attributeStatement.properties.attributes.items",
                                      "uiSchemasMap": {
                                        "SPECIFIC": {
                                          "type": "VerticalLayout",
                                          "elements": [
                                            {
                                              "type": "Control",
                                              "scope": "#/properties/value",
                                              "label": false,
                                              "options": {
                                                "multiline": true,
                                                "rows": 3,
                                                "markAsRequired": true
                                              }
                                            }
                                          ]
                                        }
                                      }
                                    }
                                  },
                                  {
                                    "type": "Control",
                                    "scope": "#/properties/repeatIfMulti",
                                    "i18n": "attributeStatement.attributes.repeatIfMulti"
                                  }
                                ]
                              }
                            }
                          }
                        ]
                      }
                    ]
                  }
                ],
                "rule": {
                  "effect": "SHOW",
                  "condition": {
                    "scope": "#/properties/__samlpResponseType",
                    "schema": {
                      "const": "ATTRIBUTE"
                    }
                  }
                }
              }
            ]
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/SamlpResponseEvaluation",
        "locale": "en",
        "content": {
          "samlProtocolResponseWizardTitle": "SAML Protocol Response Wizard",
          "messageAndVersionStepTitle": "Target Message and SAML Version",
          "messageAndVersionStepDescription": "Specify the location of the SAMLP response message and the version of SAMLP response",
          "samlVersion.label": "SAML Version",
          "responseTypeAndStatusStepTitle": "SAMLP Response Type and Status",
          "responseTypeAndStatusStepDescription": "Select the type of SAMLP response and whether the assertion will fail when the response status code is not \"Success\"",
          "samlpResponseType.label": "SAMLP Response Type",
          "samlpResponseType.AUTHENTICATION": "Authentication Response",
          "samlpResponseType.AUTHORIZATION": "Authorization Decision Response",
          "samlpResponseType.ATTRIBUTE": "Attribute Query Response",
          "responseStatus.label": "Fail when status is not success",
          "authorizationDecisionStepTitle": "Authorization Decision",
          "authorizationDecisionStepDescription": "Specify whether the assertion will fail when the authorization decision does not match the expected result.",
          "attributeStatementStepTitle": "Attribute Statement",
          "attributeStatementStepDescription": "\nSpecify the SAML attributes that the SAML statement MUST describe; the Attribute Name [required] The Attribute Namespace [optional] and the AttributeValue",
          "authorizationDecisionOption.label": "Fail the assertion if the authorization decision is not ",
          "authorizationDecisionVariable.Permit": "Permit",
          "authorizationDecisionVariable.Deny": "Deny",
          "authorizationDecisionVariable.Indeterminate": "Indeterminate",
          "attributeStatement.attributes.label": "Attributes",
          "attributeStatement.attributes.name.label": "Attribute Name",
          "attributeStatement.attributes.namespace.label": "Attribute Namespace",
          "attributeStatement.attributes.nameFormatType.UNSPECIFIED": "Unspecified",
          "attributeStatement.attributes.nameFormatType.URI_REF": "URI Reference",
          "attributeStatement.attributes.nameFormatType.BASIC": "Basic",
          "attributeStatement.attributes.nameFormatType.OTHER": "Other",
          "attributeStatement.nameFormat.label": "Attribute Name Format",
          "attributeStatement.attributes.friendlyName.label": "Friendly Name",
          "attributeStatement.attributes.repeatIfMulti.label": "Repeat?",
          "attributeStatement.attributes.attributeValue.label": "Attribute Value",
          "attributeStatement.attributes.attributeValue.SPECIFIC": "Specific Value",
          "attributeStatement.attributes.attributeValue.NON_EMPTY": "Allow any non-empty value",
          "attributeStatement.attributes.btn": "Add Attribute"
        }
      }
    ]
  },
  {
    "configName": "SchemaValidation",
    "displayNameFormats": [
      {
        "format": "Validate XML Schema",
        "condition": "true"
      }
    ],
    "refVariables": [
      {
        "fieldPath": ".",
        "suffix": "schema.failure",
        "refType": "OUT",
        "dataType": "string",
        "multivalued": true
      }
    ],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/SchemaValidation",
        "title": "Validate XML Schema",
        "properties": {
          "applyToArguments": {
            "type": "boolean",
            "default": false
          },
          "otherTargetMessageVariable": {
            "type": "string"
          },
          "resourceInfo": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/sub-types/assertionResourceInfo"
          },
          "target": {
            "type": "string",
            "enum": [
              "REQUEST",
              "RESPONSE",
              "OTHER"
            ]
          },
          "validationTarget": {
            "type": "string",
            "enum": [
              "ENVELOPE",
              "BODY",
              "ARGUMENTS"
            ],
            "default": "BODY"
          },
          "__schemaLocation": {
            "type": "string",
            "enum": [
              "staticResourceInfo",
              "singleUrlResourceInfo",
              "globalResourceInfo"
            ],
            "default": "staticResourceInfo"
          },
          "__extractFromWSDL": {
            "type": "string"
          },
          "__uploadFile": {
            "type": "string"
          },
          "__readURL": {
            "type": "string"
          },
          "__httpOptions": {
            "type": "string"
          },
          "__manageGlobalResources": {
            "type": "string"
          },
          "__schemaApiError": {
            "type": "string"
          }
        }
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/sub-types/assertionResourceInfo",
        "anyOf": [
          {
            "type": "object",
            "properties": {
              "document": {
                "type": "string"
              },
              "originalUrl": {
                "type": "string"
              }
            }
          },
          {
            "type": "object",
            "properties": {
              "url": {
                "type": "string"
              }
            }
          },
          {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "enum": [
                  "<not set>"
                ]
              }
            }
          },
          {
            "type": "object",
            "properties": {
              "allowMessagesWithoutUrl": {
                "type": "boolean",
                "default": false
              },
              "urlRegexes": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            }
          }
        ]
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/SchemaValidation/Main",
        "title": "Validate XML Schema",
        "properties": {
          "SchemaValidation": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/SchemaValidation"
          },
          ".properties": {
            "type": "object",
            "properties": {
              ".enabled": {
                "type": "boolean",
                "default": true
              },
              ".left.comment": {
                "type": "string"
              },
              ".right.comment": {
                "type": "string"
              }
            }
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Validate XML Schema",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/target",
            "i18n": "assertion.common.target",
            "options": {
              "messageTarget": true
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/validationTarget",
            "i18n": "validationTarget",
            "options": {
              "format": "radio",
              "useRowLayout": false
            }
          },
          {
            "type": "Group",
            "i18n": "validationTarget.non-soap.label",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "validation-target-spacing"
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/__schemaLocation",
            "i18n": "__schemaLocation"
          },
          {
            "type": "Control",
            "options": {
              "controlType": "Divider"
            }
          },
          {
            "type": "VerticalLayout",
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/resourceInfo/properties/originalUrl",
                "i18n": "originalUrl",
                "options": {
                  "markAsRequired": true
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/resourceInfo/properties/document",
                "i18n": "document",
                "options": {
                  "validateSchema": true,
                  "schemaType": "xml",
                  "showExtractFromWSDL": true,
                  "isReadUrlDisabled": true
                }
              }
            ],
            "rule": {
              "effect": "SHOW",
              "condition": {
                "scope": "#/properties/__schemaLocation",
                "schema": {
                  "const": "staticResourceInfo"
                }
              }
            }
          },
          {
            "type": "VerticalLayout",
            "elements": [
              {
                "type": "Group",
                "i18n": "__monitorURLLabel.label",
                "options": {
                  "groupType": "wrapCustomClass",
                  "labelColor": "bodyText",
                  "customClass": "location-options"
                },
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/resourceInfo/properties/url",
                    "i18n": "url",
                    "options": {
                      "markAsRequired": true
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/__httpOptions",
                    "i18n": "__httpOptions.label",
                    "options": {
                      "controlType": "Button",
                      "variant": "outlined",
                      "readonly": true
                    }
                  }
                ]
              }
            ],
            "rule": {
              "effect": "SHOW",
              "condition": {
                "scope": "#/properties/__schemaLocation",
                "schema": {
                  "const": "singleUrlResourceInfo"
                }
              }
            }
          },
          {
            "type": "VerticalLayout",
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/resourceInfo/properties/id",
                "i18n": "id",
                "options": {
                  "markAsRequired": true
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/__manageGlobalResources",
                "i18n": "__manageGlobalResources.label",
                "options": {
                  "controlType": "Button",
                  "variant": "outlined",
                  "readonly": true
                }
              }
            ],
            "rule": {
              "effect": "SHOW",
              "condition": {
                "scope": "#/properties/__schemaLocation",
                "schema": {
                  "const": "globalResourceInfo"
                }
              }
            }
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/SchemaValidation",
        "locale": "en",
        "content": {
          "validationTarget.label": "Schema Applies To",
          "validationTarget.ENVELOPE": "Entire SOAP message",
          "validationTarget.BODY": "SOAP message body",
          "validationTarget.ARGUMENTS": "SOAP message arguments",
          "validationTarget.non-soap.label": "Non-SOAP: Entire Message",
          "__schemaLocation.label": "Schema Location",
          "__schemaLocation.staticResourceInfo": "Configured in advance",
          "__schemaLocation.singleUrlResourceInfo": "Monitor URL for latest value",
          "__schemaLocation.globalResourceInfo": "Pick XML Schema form global resources",
          "originalUrl.label": "System ID",
          "originalUrl.error": "This is not a well formed URL.",
          "document.label": "Validation Schema",
          "__extractFromWSDL.label": "Extract from WSDL",
          "__uploadFile.label": "Upload File",
          "__readURL.label": "Read URL",
          "__monitorURLLabel.label": "The Gateway will periodically check this URL and download the latest schema",
          "url.label": "URL to Monitor",
          "__httpOptions.label": "HTTP Options",
          "id.label": "Selected Schema",
          "__manageGlobalResources.label": "Manage Global Resources",
          "__urlToMonitor.error": "This is not a well formed HTTP(S) URL",
          "id.error": "Please select a Global Schema"
        }
      }
    ]
  },
  {
    "configName": "SecureConversation",
    "displayNameFormats": [
      {
        "format": "Require WS-SecureConversation",
        "condition": "isEmpty({{.recipientContext.actor}})"
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Require WS-SecureConversation",
        "elements": [
          {
            "type": "Group",
            "label": "WS-Security Recipient",
            "options": {
              "groupType": "ShowHide",
              "expanded": true
            },
            "elements": [
              {
                "type": "Control",
                "options": {
                  "wssRecipient": true
                }
              }
            ]
          }
        ]
      }
    ]
  },
  {
    "configName": "SetSamlStatus",
    "displayNameFormats": [
      {
        "format": "Set SAML Response Status Code: ${responseStatus}",
        "condition": "isNull({{.variableName}})"
      },
      {
        "format": "Set SAML Response Status Code: {{.variableName#variable#expression}}",
        "condition": "true"
      }
    ],
    "refVariables": [
      {
        "fieldPath": ".variableName",
        "refType": "OUT",
        "dataType": "string"
      }
    ],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/SetSamlStatus",
        "title": "Set SAML Response Status Code",
        "properties": {
          "__samlVersion": {
            "type": "string",
            "enum": [
              "1.1",
              "2.0"
            ]
          },
          "samlStatus": {
            "type": "string"
          },
          "variableName": {
            "type": "string"
          }
        }
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/SetSamlStatus/Main",
        "title": "Set SAML Response Status Code",
        "properties": {
          "SetSamlStatus": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/SetSamlStatus"
          },
          ".properties": {
            "type": "object",
            "properties": {
              ".enabled": {
                "type": "boolean",
                "default": true
              },
              ".left.comment": {
                "type": "string"
              },
              ".right.comment": {
                "type": "string"
              }
            }
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Set SAML Response Status Code",
        "elements": [
          {
            "type": "Control",
            "i18n": "__samlVersion",
            "scope": "#/properties/__samlVersion"
          },
          {
            "type": "Control",
            "i18n": "samlStatus",
            "scope": "#/properties/samlStatus"
          },
          {
            "type": "Control",
            "i18n": "variableName",
            "scope": "#/properties/variableName",
            "options": {
              "markAsRequired": true,
              "contextVariable": true,
              "variableType": "output",
              "allowedDataTypes": []
            }
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/SetSamlStatus",
        "locale": "en",
        "content": {
          "__samlVersion.label": "SAML Version",
          "samlStatus.label": "SAML Response Status",
          "samlStatus.SAML_SUCCESS": "Success",
          "samlStatus.SAML_VERSION_MISMATCH": "VersionMismatch",
          "samlStatus.SAML_REQUESTER": "Requester",
          "samlStatus.SAML_RESPONDER": "Responder",
          "samlStatus.SAML_REQUEST_VERSION_TOO_HIGH": "RequestVersionTooHigh",
          "samlStatus.SAML_REQUEST_VERSION_TOO_LOW": "RequestVersionTooLow",
          "samlStatus.SAML_REQUEST_VERSION_DEPRECATED": "RequestVersionDeprecated",
          "samlStatus.SAML_TOO_MANY_RESPONSES": "TooManyResponses",
          "samlStatus.SAML_REQUEST_DENIED": "RequestDenied",
          "samlStatus.SAML_RESOURCE_NOT_RECOGNIZED": "ResourceNotRecognized",
          "samlStatus.SAML2_SUCCESS": "urn:oasis:names:tc:SAML:2.0:status:Success",
          "samlStatus.SAML2_REQUESTER": "urn:oasis:names:tc:SAML:2.0:status:Requester",
          "samlStatus.SAML2_RESPONDER": "urn:oasis:names:tc:SAML:2.0:status:Responder",
          "samlStatus.SAML2_VERSION_MISMATCH": "urn:oasis:names:tc:SAML:2.0:status:VersionMismatch",
          "samlStatus.SAML2_AUTHN_FAILED": "urn:oasis:names:tc:SAML:2.0:status:AuthnFailed",
          "samlStatus.SAML2_INVALID_ATTR_NAME_OR_VALUE": "urn:oasis:names:tc:SAML:2.0:status:InvalidAttrNameOrValue",
          "samlStatus.SAML2_INVALID_NAMEID_POLICY": "urn:oasis:names:tc:SAML:2.0:status:InvalidNameIDPolicy",
          "samlStatus.SAML2_NO_AUTHN_CONTEXT": "urn:oasis:names:tc:SAML:2.0:status:NoAuthnContext",
          "samlStatus.SAML2_NO_AVAILABLE_IDP": "urn:oasis:names:tc:SAML:2.0:status:NoAvailableIDP",
          "samlStatus.SAML2_NO_PASSIVE": "urn:oasis:names:tc:SAML:2.0:status:NoPassive",
          "samlStatus.SAML2_NO_SUPPORTED_IDP": "urn:oasis:names:tc:SAML:2.0:status:NoSupportedIDP",
          "samlStatus.SAML2_PARTIAL_LOGOUT": "urn:oasis:names:tc:SAML:2.0:status:PartialLogout",
          "samlStatus.SAML2_PROXY_COUNT_EXCEEDED": "urn:oasis:names:tc:SAML:2.0:status:ProxyCountExceeded",
          "samlStatus.SAML2_REQUEST_DENIED": "urn:oasis:names:tc:SAML:2.0:status:RequestDenied",
          "samlStatus.SAML2_REQUEST_UNSUPPORTED": "urn:oasis:names:tc:SAML:2.0:status:RequestUnsupported",
          "samlStatus.SAML2_REQUEST_VERSION_DEPRECATED": "urn:oasis:names:tc:SAML:2.0:status:RequestVersionDeprecated",
          "samlStatus.SAML2_REQUEST_VERSION_TOO_HIGH": "urn:oasis:names:tc:SAML:2.0:status:RequestVersionTooHigh",
          "samlStatus.SAML2_REQUEST_VERSION_TOO_LOW": "urn:oasis:names:tc:SAML:2.0:status:RequestVersionTooLow",
          "samlStatus.SAML2_RESOURCE_NOT_RECOGNIZED": "urn:oasis:names:tc:SAML:2.0:status:ResourceNotRecognized",
          "samlStatus.SAML2_TOO_MANY_RESPONSES": "urn:oasis:names:tc:SAML:2.0:status:TooManyResponses",
          "samlStatus.SAML2_UNKNOWN_ATTR_PROFILE": "urn:oasis:names:tc:SAML:2.0:status:UnknownAttrProfile",
          "samlStatus.SAML2_UNKNOWN_PRINCIPAL": "urn:oasis:names:tc:SAML:2.0:status:UnknownPrincipal",
          "samlStatus.SAML2_UNSUPPORTED_BINDING": "urn:oasis:names:tc:SAML:2.0:status:UnsupportedBinding",
          "variableName.label": "Output Variable"
        }
      }
    ]
  },
  {
    "configName": "SetVariable",
    "displayNameFormats": [
      {
        "format": "Set Context Variable {{.variable#variable}} as {{.dataType#enum#DataType}} to empty",
        "condition": "or(isNull({{.expression}}), isEmpty({{.expression}}))"
      },
      {
        "format": "Set Context Variable {{.variable#variable}} as {{.dataType#enum#DataType}} to: {{.expression}}",
        "condition": "true"
      }
    ],
    "refVariables": [
      {
        "fieldPath": ".variable",
        "refType": "OUT",
        "dataType": "string",
        "settable": true
      }
    ],
    "configSchemas": [
      {
        "$id": "https://l7tech.com/2025/json-schema/assertions/SetVariable",
        "type": "object",
        "title": "Set Context Variable",
        "properties": {
          "contentType": {
            "type": "string"
          },
          "dataType": {
            "type": "string",
            "enum": [
              "string",
              "message",
              "dateTime",
              "int"
            ]
          },
          "dateFormat": {
            "type": "string"
          },
          "dateOffsetExpression": {
            "type": "string"
          },
          "dateOffsetField": {
            "type": "integer",
            "default": 13
          },
          "expression": {
            "type": "string"
          },
          "lineBreak": {
            "type": "string",
            "enum": [
              "CR-LF",
              "LF",
              "CR"
            ],
            "default": "CR-LF"
          },
          "variable": {
            "type": "string"
          },
          "__inlineAlerts": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "__inlineAlertsExpression": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "__preview": {
            "type": "string"
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Set Context Variable",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/variable",
            "options": {
              "markAsRequired": true
            },
            "i18n": "set-variable.variable"
          },
          {
            "type": "Control",
            "scope": "#/properties/dataType",
            "rule": {
              "effect": "DISABLE",
              "condition": {
                "scope": "#/properties/variable",
                "schema": {
                  "enum": [
                    "request",
                    "response"
                  ]
                }
              }
            },
            "i18n": "set-variable.data_type"
          },
          {
            "type": "Control",
            "scope": "#/properties/contentType",
            "rule": {
              "effect": "SHOW",
              "condition": {
                "scope": "#/properties/dataType",
                "schema": {
                  "const": "message"
                }
              }
            },
            "options": {
              "autocomplete": true,
              "allowUserProvidedInput": true,
              "defaultOptions": [
                {
                  "label": "text/xml; charset=utf-8",
                  "value": "text/xml; charset=utf-8"
                },
                {
                  "label": "text/plain; charset=utf-8",
                  "value": "text/plain; charset=utf-8"
                },
                {
                  "label": "application/soap+xml; charset=utf-8",
                  "value": "application/soap+xml; charset=utf-8"
                },
                {
                  "label": "application/json; charset=utf-8",
                  "value": "application/json; charset=utf-8"
                }
              ]
            },
            "i18n": "set-variable.content_type"
          },
          {
            "type": "Control",
            "scope": "#/properties/dateFormat",
            "rule": {
              "effect": "SHOW",
              "condition": {
                "scope": "#/properties/dataType",
                "schema": {
                  "const": "dateTime"
                }
              }
            },
            "options": {
              "autocomplete": true,
              "allowUserProvidedInput": true,
              "defaultOptions": [
                {
                  "label": "<auto>",
                  "value": "<auto>"
                },
                {
                  "label": "<Timestamp>",
                  "value": "<Timestamp>"
                },
                {
                  "label": "<Millisecond Timestamp>",
                  "value": "<Millisecond Timestamp>"
                },
                {
                  "label": "<Second Timestamp>",
                  "value": "<Second Timestamp>"
                },
                {
                  "label": "yyyy-MM-dd'T'HH:mm:ss.SSSXXX",
                  "value": "yyyy-MM-dd'T'HH:mm:ss.SSSXXX"
                },
                {
                  "label": "yyyy-MM-dd'T'HH:mm:ss.SSXX",
                  "value": "yyyy-MM-dd'T'HH:mm:ss.SSXX"
                },
                {
                  "label": "yyyy-MM-dd'T'HH:mm:ss.SXXX",
                  "value": "yyyy-MM-dd'T'HH:mm:ss.SXXX"
                },
                {
                  "label": "yyyy-MM-dd'T'HH:mm:ssXXX",
                  "value": "yyyy-MM-dd'T'HH:mm:ssXXX"
                },
                {
                  "label": "yyyy-MM-dd'T'HH:mmXXX",
                  "value": "yyyy-MM-dd'T'HH:mmXXX"
                },
                {
                  "label": "yyyy-MM-dd",
                  "value": "yyyy-MM-dd"
                },
                {
                  "label": "yyyy-MM",
                  "value": "yyyy-MM"
                },
                {
                  "label": "yyyy",
                  "value": "yyyy"
                },
                {
                  "label": "EEE, dd MMM yyyy HH:mm:ss z",
                  "value": "EEE, dd MMM yyyy HH:mm:ss z"
                },
                {
                  "label": "EEE, dd MMM yy HH:mm:ss Z",
                  "value": "EEE, dd MMM yy HH:mm:ss Z"
                },
                {
                  "label": "EEE, dd-MMM-yy HH:mm:ss z",
                  "value": "EEE, dd-MMM-yy HH:mm:ss z"
                },
                {
                  "label": "EEE MMM dd HH:mm:ss yyyy",
                  "value": "EEE MMM dd HH:mm:ss yyyy"
                }
              ]
            },
            "i18n": "set-variable.data_format"
          },
          {
            "type": "Control",
            "scope": "#/properties/expression",
            "options": {
              "multiline": true,
              "rows": 5
            },
            "i18n": "set-variable.expression.label"
          },
          {
            "type": "Control",
            "scope": "#/properties/__inlineAlertsExpression",
            "options": {
              "inlineAlerts": "warning"
            }
          },
          {
            "type": "Group",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "date_time-group"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/dateOffsetExpression",
                "i18n": "set-variable.date_offset_expression"
              },
              {
                "type": "Control",
                "scope": "#/properties/dateOffsetField",
                "i18n": "set-variable.dateOffsetField",
                "options": {
                  "customClass": "dateOffsetField-field",
                  "autocomplete": true,
                  "defaultOptions": [
                    {
                      "label": "Milliseconds",
                      "value": 14
                    },
                    {
                      "label": "Seconds",
                      "value": 13
                    },
                    {
                      "label": "Minutes",
                      "value": 12
                    },
                    {
                      "label": "Hours",
                      "value": 11
                    },
                    {
                      "label": "Days",
                      "value": 5
                    },
                    {
                      "label": "Weeks",
                      "value": 3
                    },
                    {
                      "label": "Months",
                      "value": 2
                    }
                  ]
                }
              }
            ],
            "rule": {
              "effect": "SHOW",
              "condition": {
                "scope": "#/properties/dataType",
                "schema": {
                  "const": "dateTime"
                }
              }
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/__preview",
            "rule": {
              "effect": "SHOW",
              "condition": {
                "scope": "#/properties/dataType",
                "schema": {
                  "const": "dateTime"
                }
              }
            },
            "options": {
              "readonly": true,
              "markAsRequired": true
            },
            "i18n": "set-variable.__preview"
          },
          {
            "type": "Control",
            "scope": "#/properties/lineBreak",
            "options": {
              "format": "radio"
            },
            "rule": {
              "effect": "HIDE",
              "condition": {
                "scope": "#/properties/dataType",
                "schema": {
                  "enum": [
                    "dateTime",
                    "int"
                  ]
                }
              }
            },
            "i18n": "set-variable.line-break"
          },
          {
            "type": "Control",
            "scope": "#/properties/__inlineAlerts",
            "options": {
              "inlineAlerts": "warning"
            }
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/SetVariable",
        "locale": "en",
        "content": {
          "set-variable.__preview.label": "Preview",
          "set-variable.content_type.label": "Content-Type",
          "set-variable.data_format.label": "Format",
          "set-variable.date_offset_expression.label": "Time Offset",
          "set-variable.date_offset_field.label": "Units",
          "set-variable.data_type.label": "Data Type",
          "set-variable.data_type.string": "String",
          "set-variable.data_type.message": "Message",
          "set-variable.data_type.dateTime": "Date/Time",
          "set-variable.data_type.int": "Integer",
          "set-variable.expression.label": "Expression",
          "set-variable.expression.spaces.error_text": "Expression contains leading or trailing whitespace",
          "set-variable.line-break.label": "Save as line break",
          "set-variable.line-break.CR-LF": "CR LF",
          "set-variable.line-break.LF": "LF",
          "set-variable.line-break.CR": "CR",
          "set-variable.dateOffsetField.label": "Date off set unit",
          "set-variable.variable.label": "Variable Name",
          "set-variable.variable.helper_text": "Must start with a letter or underscore. May contain letters, digits, periods, dashes, or underscores.",
          "set-variable.variable.invalid_name_text": "Variable name is invalid",
          "set-variable.expression.integer.error_text": "This value must be an integer",
          "set-variable.dateFormat.invalid_format.error_text": "Date format is invalid",
          "set-variable.content_type.error_text": "Content type is invalid",
          "expression.error": "Invalid syntax"
        }
      }
    ]
  },
  {
    "configName": "SimpleRawTransport",
    "displayNameFormats": [
      {
        "format": "Route via Raw TCP to {{.targetHost}} port {{.targetPort}}",
        "condition": "and(not(isNull({{.targetHost}})),not(isNull({{.targetPort}})))"
      }
    ],
    "refVariables": [
      {
        "fieldPath": ".requestTarget",
        "refType": "IN",
        "dataType": "messageTarget"
      },
      {
        "fieldPath": ".responseTarget",
        "refType": "OUT",
        "dataType": "messageTarget"
      },
      {
        "fieldPath": ".",
        "suffix": "rawtcp.reasonCode",
        "refType": "OUT",
        "dataType": "int"
      }
    ],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/SimpleRawTransport",
        "title": "Route via Raw TCP",
        "properties": {
          "connectionTimeoutMillis": {
            "type": "integer"
          },
          "currentSecurityHeaderHandling": {
            "type": "integer",
            "default": 0
          },
          "maxResponseBytesText": {
            "type": "string"
          },
          "readTimeoutMillis": {
            "type": "integer"
          },
          "recipientContext": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/sub-types/xmlSecurityRecipientContext"
          },
          "requestTarget": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/sub-types/messageTargetableSupport"
          },
          "responseContentType": {
            "type": "string"
          },
          "responseTarget": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/sub-types/messageTargetableSupport"
          },
          "targetHost": {
            "type": "string"
          },
          "targetPort": {
            "type": "string"
          },
          "writeTimeoutMillis": {
            "type": "integer"
          },
          "xmlSecurityActorToPromote": {
            "type": "string"
          },
          "__overrideMaxSize": {
            "type": "boolean",
            "default": false
          },
          "__restrictAllowMessage": {
            "type": "string",
            "i18n": "__restrictAllowMessage",
            "enum": [
              "restrict",
              "allow"
            ],
            "default": "restrict"
          },
          "__useSystemDefaults": {
            "type": "boolean",
            "default": true
          },
          "__setTransmitTimeout": {
            "type": "boolean",
            "default": false
          },
          "__setRecieveTimeout": {
            "type": "boolean",
            "default": false
          },
          "__responseMessageDestination": {
            "type": "string",
            "i18n": "__responseMessageDestination",
            "enum": [
              "default",
              "saveAsContextVar"
            ],
            "default": "default"
          }
        }
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/sub-types/xmlSecurityRecipientContext",
        "properties": {
          "actor": {
            "type": "string"
          },
          "base64edX509Certificate": {
            "type": "string"
          }
        }
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/sub-types/messageTargetableSupport",
        "properties": {
          "otherTargetMessageVariable": {
            "type": "string"
          },
          "sourceUsedByGateway": {
            "type": "boolean",
            "default": true
          },
          "target": {
            "type": "string",
            "enum": [
              "REQUEST",
              "RESPONSE",
              "OTHER"
            ],
            "default": "REQUEST"
          },
          "targetModifiedByGateway": {
            "type": "boolean",
            "default": false
          }
        }
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/SimpleRawTransport/Main",
        "title": "Route via Raw TCP",
        "properties": {
          "SimpleRawTransport": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/SimpleRawTransport"
          },
          ".properties": {
            "type": "object",
            "properties": {
              ".enabled": {
                "type": "boolean",
                "default": true
              },
              ".left.comment": {
                "type": "string"
              },
              ".right.comment": {
                "type": "string"
              }
            }
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Route via Raw TCP",
        "elements": [
          {
            "type": "Group",
            "i18n": "connectionSettings.label",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "common-group-style"
            },
            "elements": [
              {
                "type": "Group",
                "options": {
                  "groupType": "wrapCustomClass",
                  "customClass": "field-flex-style"
                },
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/targetHost",
                    "i18n": "targetHost",
                    "options": {
                      "markAsRequired": true
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/targetPort",
                    "i18n": "targetPort",
                    "options": {
                      "markAsRequired": true
                    }
                  }
                ]
              },
              {
                "type": "Group",
                "i18n": "connectionTimeoutMillis.label",
                "options": {
                  "groupType": "wrapCustomClass",
                  "customClass": "connection-header-style"
                },
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/connectionTimeoutMillis",
                    "label": false,
                    "rule": {
                      "effect": "SHOW",
                      "condition": {
                        "scope": "#/properties/__useSystemDefaults",
                        "schema": {
                          "const": false
                        }
                      }
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/__useSystemDefaults",
                    "i18n": "__useSystemDefaults",
                    "options": {
                      "format": "checkbox"
                    }
                  }
                ]
              }
            ]
          },
          {
            "type": "Group",
            "i18n": "requestRule.label",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "common-group-style"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/requestTarget/properties/target",
                "i18n": "requestTarget",
                "options": {
                  "contextVariable": true,
                  "variableType": "output",
                  "allowedDataTypes": []
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/__setTransmitTimeout",
                "i18n": "__setTransmitTimeout",
                "options": {
                  "format": "checkbox"
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/writeTimeoutMillis",
                "i18n": "writeTimeoutMillis",
                "options": {
                  "markAsRequired": true
                },
                "rule": {
                  "effect": "SHOW",
                  "condition": {
                    "scope": "#/properties/__setTransmitTimeout",
                    "schema": {
                      "const": true
                    }
                  }
                }
              }
            ]
          },
          {
            "type": "Group",
            "i18n": "responseRule.label",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "common-group-style"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/responseContentType",
                "i18n": "responseContentType",
                "options": {
                  "markAsRequired": true
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/__responseMessageDestination",
                "i18n": "__responseMessageDestination",
                "options": {
                  "format": "radio",
                  "useRowLayout": false,
                  "uiSchemasMap": {
                    "saveAsContextVar": {
                      "type": "Group",
                      "options": {
                        "groupType": "wrapCustomClass"
                      },
                      "elements": [
                        {
                          "type": "Control",
                          "scope": "#/properties/responseTarget/properties/otherTargetMessageVariable",
                          "i18n": "contextVariable",
                          "options": {
                            "markAsRequired": true,
                            "contextVariable": true,
                            "variableType": "output",
                            "allowedDataTypes": []
                          }
                        }
                      ]
                    }
                  }
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/__setRecieveTimeout",
                "i18n": "__setRecieveTimeout",
                "options": {
                  "format": "checkbox"
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/readTimeoutMillis",
                "i18n": "readTimeoutMillis",
                "options": {
                  "markAsRequired": true
                },
                "rule": {
                  "effect": "SHOW",
                  "condition": {
                    "scope": "#/properties/__setRecieveTimeout",
                    "schema": {
                      "const": true
                    }
                  }
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/__overrideMaxSize",
                "i18n": "__overrideMaxMessageSize",
                "options": {
                  "subUiSchema": {
                    "type": "Control",
                    "scope": "#/properties/__restrictAllowMessage",
                    "label": false,
                    "options": {
                      "format": "radio",
                      "useRowLayout": false,
                      "uiSchemasMap": {
                        "restrict": {
                          "type": "Group",
                          "options": {
                            "groupType": "wrapCustomClass"
                          },
                          "elements": [
                            {
                              "type": "Control",
                              "i18n": "maxResponseBytesText",
                              "scope": "#/properties/maxResponseBytesText",
                              "options": {
                                "markAsRequired": true
                              }
                            }
                          ]
                        }
                      }
                    }
                  }
                }
              }
            ]
          },
          {
            "type": "Group",
            "label": "WS-Security Recipient",
            "options": {
              "groupType": "ShowHide"
            },
            "elements": [
              {
                "type": "Control",
                "options": {
                  "wssRecipient": true
                }
              }
            ]
          }
        ]
      }
    ],
    "configSchemaPatches": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/SimpleRawTransport",
        "patches": [
          {
            "op": "add",
            "path": "/properties/requestTarget/properties/target/enum",
            "value": [
              "request",
              "response"
            ]
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/SimpleRawTransport",
        "locale": "en",
        "content": {
          "connectionSettings.label": "Connection Details",
          "targetHost.label": "Destination Hostname or Address",
          "targetPort.label": "Port",
          "connectionTimeoutMillis.label": "Connection Timeout (ms)",
          "connectionTimeout.label": "Connection Timeout",
          "requestRule.label": "Request Rules",
          "requestTarget.label": "Request Message Source",
          "responseRule.label": "Response Rules",
          "responseContentType.label": "Response Content Type",
          "writeTimeoutMillis.label": "Timeout (ms)",
          "readTimeoutMillis.label": "Timeout (ms)",
          "maxResponseBytesText.label": "Maximum Message Size (bytes)",
          "__useSystemDefaults.label": "Use system default",
          "contextVariable.label": "Context Variable",
          "__responseMessageDestination.label": "Response Message Destination",
          "__responseMessageDestination.default": "Default response",
          "__responseMessageDestination.saveAsContextVar": "Save as context variable",
          "__restrictAllowMessage.restrict": "Restrict message size",
          "__restrictAllowMessage.allow": "Allow unlimited message size (not recommended)",
          "__setTransmitTimeout.label": "Set transmit timeout",
          "__setRecieveTimeout.label": "Set receive timeout",
          "__overrideMaxMessageSize.label": "Override maximum message size",
          "error.invalid_transmit_timeout": "The Transmit timeout field must be a number between 0 and 2147483647.",
          "error.invalid_recieve_timeout": "The Receive timeout field must be a number between 0 and 2147483647.",
          "error.invalid_connection_timeout": "The Connection timeout field must be a number between 0 and 2147483647.",
          "error.invalid_number_or_variable.field": "The restrict messages to field must contain a context variable and/or an integer."
        }
      }
    ]
  },
  {
    "configName": "SiteMinderAuthenticate",
    "displayNameFormats": [
      {
        "format": "Authenticate Against CA Single Sign-On: [{{.prefix}}]",
        "condition": "not(isNull({{.prefix}}))"
      }
    ],
    "refVariables": [
      {
        "fieldPath": ".cookieSourceVar",
        "refType": "OUT",
        "dataType": "other"
      },
      {
        "fieldPath": ".prefix",
        "refType": "OUT",
        "dataType": "other",
        "prefixed": true
      },
      {
        "fieldPath": ".prefix",
        "suffix": ".smcontext",
        "refType": "BOTH",
        "dataType": "binary"
      }
    ],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/SiteMinderAuthenticate",
        "title": "Authenticate Against CA Single Sign-On",
        "properties": {
          "__credentials": {
            "type": "string",
            "enum": [
              "Use Last Credentials",
              "Specify Credentials"
            ]
          },
          "__ssoToken": {
            "type": "string",
            "enum": [
              "Create SSO Token",
              "Use SSO Token from Context Variable",
              "None"
            ]
          },
          "__passwordPolicy": {
            "type": "boolean"
          },
          "cookieSourceVar": {
            "type": "string"
          },
          "createSsoToken": {
            "type": "boolean"
          },
          "lastCredential": {
            "type": "boolean"
          },
          "namedCertificate": {
            "type": "string"
          },
          "namedJsonWebToken": {
            "type": "string"
          },
          "namedUser": {
            "type": "string"
          },
          "otherTargetMessageVariable": {
            "type": "string"
          },
          "passwordPolicy": {
            "type": "string"
          },
          "prefix": {
            "type": "string"
          },
          "sendJWT": {
            "type": "boolean"
          },
          "sendUsernamePasswordCredential": {
            "type": "boolean"
          },
          "sendX509CertificateCredential": {
            "type": "boolean"
          },
          "ssoZoneName": {
            "type": "string"
          },
          "target": {
            "type": "string",
            "enum": [
              "REQUEST",
              "RESPONSE",
              "OTHER"
            ],
            "default": "REQUEST"
          },
          "useSMCookie": {
            "type": "boolean"
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Authenticate Against CA Single Sign-On",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/target",
            "options": {
              "messageTarget": true,
              "otherTargetMessageVariableLabel": "assertion.common.target.otherTargetContextVariable"
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/prefix",
            "i18n": "prefix",
            "options": {
              "markAsRequired": true,
              "contextVariable": true,
              "variableType": "output",
              "allowedDataTypes": []
            }
          },
          {
            "type": "Group",
            "i18n": "credentials.subTitle",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "sub-title-text",
              "labelColor": "pageTitle"
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/__credentials",
            "i18n": "credentials",
            "label": false,
            "options": {
              "format": "radio",
              "useRowLayout": false,
              "markAsRequired": true
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/__passwordPolicy",
            "options": {
              "markAsRequired": true,
              "customClass": "common-conditional-field"
            },
            "i18n": "__passwordPolicy"
          },
          {
            "type": "Control",
            "scope": "#/properties/passwordPolicy",
            "label": false,
            "rule": {
              "effect": "SHOW",
              "condition": {
                "scope": "#/properties/__passwordPolicy",
                "schema": {
                  "const": true
                }
              }
            },
            "options": {
              "markAsRequired": true,
              "customClass": "common-conditional-field"
            }
          },
          {
            "type": "Group",
            "i18n": "supportedCredentials.subTitle",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "sub-title-text",
              "labelColor": "pageTitle"
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/sendUsernamePasswordCredential",
            "options": {
              "markAsRequired": true,
              "customClass": "common-conditional-field"
            },
            "i18n": "sendUsernamePasswordCredential"
          },
          {
            "type": "Control",
            "scope": "#/properties/namedUser",
            "rule": {
              "effect": "SHOW",
              "condition": {
                "schema": {
                  "allOf": [
                    {
                      "required": [
                        "__credentials",
                        "sendUsernamePasswordCredential"
                      ]
                    },
                    {
                      "properties": {
                        "__credentials": {
                          "const": "Specify Credentials"
                        },
                        "sendUsernamePasswordCredential": {
                          "const": true
                        }
                      }
                    }
                  ]
                },
                "scope": "#"
              }
            },
            "i18n": "namedUser",
            "options": {
              "markAsRequired": true,
              "customClass": "common-conditional-field"
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/sendX509CertificateCredential",
            "options": {
              "markAsRequired": true,
              "customClass": "common-conditional-field"
            },
            "i18n": "sendX509CertificateCredential"
          },
          {
            "type": "Control",
            "scope": "#/properties/namedCertificate",
            "rule": {
              "effect": "SHOW",
              "condition": {
                "schema": {
                  "allOf": [
                    {
                      "required": [
                        "__credentials",
                        "sendX509CertificateCredential"
                      ]
                    },
                    {
                      "properties": {
                        "__credentials": {
                          "const": "Specify Credentials"
                        },
                        "sendX509CertificateCredential": {
                          "const": true
                        }
                      }
                    }
                  ]
                },
                "scope": "#"
              }
            },
            "i18n": "namedCertificate",
            "options": {
              "markAsRequired": true,
              "customClass": "common-conditional-field"
            }
          },
          {
            "type": "Group",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "check-box-group"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/sendJWT",
                "options": {
                  "markAsRequired": true,
                  "customClass": "common-conditional-field"
                },
                "rule": {
                  "effect": "SHOW",
                  "condition": {
                    "scope": "#/properties/__credentials",
                    "schema": {
                      "const": "Specify Credentials"
                    }
                  }
                },
                "i18n": "sendJWT"
              }
            ]
          },
          {
            "type": "Control",
            "scope": "#/properties/namedJsonWebToken",
            "rule": {
              "effect": "SHOW",
              "condition": {
                "schema": {
                  "allOf": [
                    {
                      "required": [
                        "__credentials",
                        "sendJWT"
                      ]
                    },
                    {
                      "properties": {
                        "__credentials": {
                          "const": "Specify Credentials"
                        },
                        "sendJWT": {
                          "const": true
                        }
                      }
                    }
                  ]
                },
                "scope": "#"
              }
            },
            "i18n": "namedJsonWebToken",
            "options": {
              "markAsRequired": true,
              "customClass": "common-conditional-field"
            }
          },
          {
            "type": "Group",
            "i18n": "SSOToken.subTitle",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "sub-title-text",
              "labelColor": "pageTitle"
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/__ssoToken",
            "i18n": "ssoToken",
            "label": false,
            "options": {
              "format": "radio",
              "useRowLayout": false,
              "uiSchemasMap": {
                "Create SSO Token": {
                  "type": "VerticalLayout",
                  "elements": [
                    {
                      "type": "Control",
                      "scope": "#/properties/ssoZoneName",
                      "i18n": "ssoZoneName"
                    }
                  ]
                },
                "Use SSO Token from Context Variable": {
                  "type": "VerticalLayout",
                  "elements": [
                    {
                      "type": "Control",
                      "scope": "#/properties/cookieSourceVar",
                      "label": false,
                      "options": {
                        "markAsRequired": true,
                        "contextVariable": true,
                        "variableType": "output",
                        "allowedDataTypes": []
                      }
                    }
                  ]
                }
              }
            }
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/SiteMinderAuthenticate",
        "locale": "en",
        "content": {
          "prefix.label": "CA Single Sign-On Variable Prefix",
          "other.label": "Context Variable",
          "__passwordPolicy.label": "Password Policy",
          "sendUsernamePasswordCredential.label": "Username Password",
          "namedUser.label": "Username",
          "namedCertificate.label": "Certificate CN or DN",
          "sendX509CertificateCredential.label": "X.509 Certificate",
          "sendJWT.label": "Json Web Token",
          "namedJsonWebToken.label": "Json Web Token",
          "ssoZoneName.label": "SSO Zone Name",
          "credentials.subTitle": "Credentials",
          "credentials.Specify Credentials": "Specify Credentials",
          "credentials.Use Last Credentials": "Use Last Credentials",
          "supportedCredentials.subTitle": "Supported Credential Types",
          "SSOToken.subTitle": "SSO Token",
          "ssoToken.Create SSO Token": "Create SSO Token",
          "ssoToken.Use SSO Token from Context Variable": "Context variable",
          "ssoToken.None": "None",
          "JWT.error": "At least one of Username, X.509 Certificate, or JWT must be selected when using Specified Credentials.",
          "JWT.conflictError": "JWT cannot be selected in combination with any other authentication types when using Specified Credentials."
        }
      }
    ]
  },
  {
    "configName": "SiteMinderAuthorize",
    "displayNameFormats": [
      {
        "format": "Authorize via CA Single Sign-On: [{{.prefix}}]",
        "condition": "not(isNull({{.prefix}}))"
      }
    ],
    "refVariables": [
      {
        "fieldPath": ".cookieSourceVar",
        "refType": "OUT",
        "dataType": "other"
      },
      {
        "fieldPath": ".prefix",
        "refType": "OUT",
        "dataType": "other",
        "prefixed": true
      },
      {
        "fieldPath": ".prefix",
        "suffix": ".smcontext",
        "refType": "BOTH",
        "dataType": "binary"
      }
    ],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/SiteMinderAuthorize",
        "title": "Authorize via CA Single Sign-On",
        "properties": {
          "cookieComment": {
            "type": "string"
          },
          "cookieDomain": {
            "type": "string"
          },
          "cookieMaxAge": {
            "type": "string"
          },
          "cookieName": {
            "type": "string"
          },
          "cookiePath": {
            "type": "string"
          },
          "cookieSecure": {
            "type": "string"
          },
          "cookieSourceVar": {
            "type": "string"
          },
          "cookieVersion": {
            "type": "string"
          },
          "otherTargetMessageVariable": {
            "type": "string"
          },
          "prefix": {
            "type": "string"
          },
          "setSMCookie": {
            "type": "boolean",
            "default": false
          },
          "target": {
            "type": "string",
            "enum": [
              "REQUEST",
              "RESPONSE",
              "OTHER"
            ],
            "default": "REQUEST"
          },
          "useCustomCookieName": {
            "type": "boolean",
            "default": "false"
          },
          "useVarAsCookieSource": {
            "type": "boolean",
            "default": false
          },
          "__useSSOToken": {
            "type": "string",
            "enum": [
              "Use SSO token from CA Single Sign-On context",
              "Use SSO token from context variable"
            ],
            "default": "Use SSO token from CA Single Sign-On context"
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Authorize via CA Single Sign-On",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/target",
            "options": {
              "messageTarget": true,
              "otherTargetMessageVariableLabel": "assertion.common.target.otherTargetContextVariable"
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/prefix",
            "i18n": "prefix",
            "options": {
              "markAsRequired": true,
              "contextVariable": true,
              "variableType": "output",
              "allowedDataTypes": []
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/__useSSOToken",
            "i18n": "useSSOToken",
            "label": false,
            "options": {
              "format": "radio",
              "uiSchemasMap": {
                "Use SSO token from context variable": {
                  "type": "Group",
                  "options": {
                    "groupType": "wrapCustomClass"
                  },
                  "elements": [
                    {
                      "type": "Control",
                      "scope": "#/properties/cookieSourceVar",
                      "i18n": "cookieSourceVar",
                      "options": {
                        "markAsRequired": true,
                        "contextVariable": true,
                        "variableType": "output",
                        "allowedDataTypes": [],
                        "customClass": "cookieSourceVar-field"
                      }
                    }
                  ]
                }
              }
            }
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/SiteMinderAuthorize",
        "locale": "en",
        "content": {
          "prefix.label": "CA Single Sign-On Variable Prefix",
          "useSSOToken.Use SSO token from CA Single Sign-On context": "Use SSO token from CA Single Sign-On context",
          "useSSOToken.Use SSO token from context variable": "Use SSO token from context variable",
          "cookieSourceVar.label": "Context Variable",
          "useSSOToken.label": "SSO Token Source"
        }
      }
    ]
  },
  {
    "configName": "SiteMinderChangePassword",
    "displayNameFormats": [
      {
        "format": "Change CA Single Sign-On User Password: agent [{{.agentId}}]",
        "condition": "not(isNull({{.agentId}}))"
      },
      {
        "format": "Change CA Single Sign-On User Password",
        "condition": "true"
      }
    ],
    "refVariables": [
      {
        "fieldPath": ".",
        "suffix": "reasonCode",
        "refType": "OUT",
        "dataType": "int"
      }
    ],
    "refEntities": [
      {
        "fieldPath": ".agentGoid",
        "refType": "GOID",
        "entityType": "SMConfig"
      }
    ],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/SiteMinderChangePassword",
        "title": "Change CA Single Sign-On User Password",
        "properties": {
          "agentGoid": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/sub-types/goid"
          },
          "agentId": {
            "type": "string"
          },
          "domOid": {
            "type": "string"
          },
          "newPassword": {
            "type": "string"
          },
          "oldPassword": {
            "type": "string"
          },
          "otherTargetMessageVariable": {
            "type": "string"
          },
          "target": {
            "type": "string",
            "enum": [
              "REQUEST",
              "RESPONSE",
              "OTHER"
            ],
            "default": "REQUEST"
          },
          "username": {
            "type": "string"
          }
        }
      },
      {
        "type": "string",
        "$id": "https://l7tech.com/2025/json-schema/assertions/sub-types/goid"
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/SiteMinderChangePassword/Main",
        "title": "Change CA Single Sign-On User Password",
        "properties": {
          "SiteMinderChangePassword": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/SiteMinderChangePassword"
          },
          ".properties": {
            "type": "object",
            "properties": {
              ".enabled": {
                "type": "boolean",
                "default": true
              },
              ".left.comment": {
                "type": "string"
              },
              ".right.comment": {
                "type": "string"
              }
            }
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Change CA Single Sign-On User Password",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/target",
            "i18n": "assertion.common.target",
            "options": {
              "messageTarget": true,
              "otherTargetMessageVariableLabel": "assertion.common.target.otherTargetContextVariable"
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/agentId",
            "i18n": "agentId",
            "options": {
              "markAsRequired": true
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/domOid",
            "i18n": "domOid",
            "options": {
              "markAsRequired": true
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/username",
            "i18n": "username",
            "options": {
              "markAsRequired": true
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/oldPassword",
            "i18n": "oldPassword",
            "options": {
              "markAsRequired": true,
              "format": "password"
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/newPassword",
            "i18n": "newPassword",
            "options": {
              "markAsRequired": true,
              "format": "password"
            }
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/SiteMinderChangePassword",
        "locale": "en",
        "content": {
          "agentId.label": "Configuration Name",
          "domOid.label": "Domain Object ID",
          "username.label": "Username",
          "oldPassword.label": "Old Password",
          "newPassword.label": "New Password"
        }
      }
    ]
  },
  {
    "configName": "SiteMinderCheckProtected",
    "displayNameFormats": [
      {
        "format": "Check Protected Resource Against CA Single Sign-On: [{{.prefix}}], agent [{{.agentId}}]",
        "condition": "true"
      }
    ],
    "refVariables": [
      {
        "fieldPath": ".prefix",
        "refType": "OUT",
        "dataType": "other",
        "prefixed": true
      },
      {
        "fieldPath": ".prefix",
        "suffix": ".smcontext",
        "refType": "BOTH",
        "dataType": "binary"
      }
    ],
    "refEntities": [
      {
        "fieldPath": ".agentGoid",
        "refType": "GOID",
        "entityType": "SMConfig"
      }
    ],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/SiteMinderCheckProtected",
        "title": "Check Protected Resource Against CA Single Sign-On",
        "properties": {
          "acoName": {
            "type": "string"
          },
          "action": {
            "type": "string",
            "default": "GET"
          },
          "agentGoid": {
            "type": "string"
          },
          "agentId": {
            "type": "string"
          },
          "otherTargetMessageVariable": {
            "type": "string"
          },
          "prefix": {
            "type": "string"
          },
          "protectedResource": {
            "type": "string"
          },
          "serverName": {
            "type": "string"
          },
          "smAgentName": {
            "type": "string"
          },
          "sourceIpAddress": {
            "type": "string"
          },
          "target": {
            "type": "string",
            "enum": [
              "REQUEST",
              "RESPONSE",
              "OTHER"
            ],
            "default": "REQUEST"
          }
        }
      },
      {
        "type": "string",
        "$id": "https://l7tech.com/2025/json-schema/assertions/sub-types/goid"
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/SiteMinderCheckProtected/Main",
        "title": "Check Protected Resource Against CA Single Sign-On",
        "properties": {
          "SiteMinderCheckProtected": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/SiteMinderCheckProtected"
          },
          ".properties": {
            "type": "object",
            "properties": {
              ".enabled": {
                "type": "boolean",
                "default": true
              },
              ".left.comment": {
                "type": "string"
              },
              ".right.comment": {
                "type": "string"
              }
            }
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Check Protected Resource Against CA Single Sign-On",
        "elements": [
          {
            "type": "Control",
            "i18n": "target",
            "scope": "#/properties/target",
            "options": {
              "messageTarget": true,
              "otherTargetMessageVariableLabel": "assertion.common.target.otherTargetContextVariable"
            }
          },
          {
            "type": "Control",
            "i18n": "agentId",
            "scope": "#/properties/agentId",
            "options": {
              "markAsRequired": true
            }
          },
          {
            "type": "Control",
            "i18n": "smAgentName",
            "scope": "#/properties/smAgentName",
            "options": {
              "markAsRequired": true
            }
          },
          {
            "type": "Control",
            "i18n": "protectedResource",
            "scope": "#/properties/protectedResource",
            "options": {
              "markAsRequired": true
            }
          },
          {
            "type": "Control",
            "i18n": "action",
            "scope": "#/properties/action",
            "options": {
              "allowUserProvidedInput": true,
              "autocomplete": true,
              "markAsRequired": true,
              "defaultOptions": [
                {
                  "label": "GET",
                  "value": "GET"
                },
                {
                  "label": "POST",
                  "value": "POST"
                },
                {
                  "label": "PUT",
                  "value": "PUT"
                }
              ]
            }
          },
          {
            "type": "Control",
            "i18n": "serverName",
            "scope": "#/properties/serverName"
          },
          {
            "type": "Control",
            "i18n": "sourceIpAddress",
            "scope": "#/properties/sourceIpAddress"
          },
          {
            "type": "Control",
            "i18n": "acoName",
            "scope": "#/properties/acoName"
          },
          {
            "type": "Control",
            "i18n": "prefix",
            "scope": "#/properties/prefix",
            "options": {
              "markAsRequired": true,
              "contextVariable": true,
              "variableType": "output",
              "allowedDataTypes": []
            }
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/SiteMinderCheckProtected",
        "locale": "en",
        "content": {
          "target.label": "Message Target",
          "agentId.label": "Configuration Name",
          "smAgentName.label": "Agent",
          "protectedResource.label": "Protected Resource",
          "sourceIpAddress.label": "Source IP Address",
          "acoName.label": "Agent Configuration Object",
          "prefix.label": "CA Single Sign-On Variable Prefix",
          "action.label": "Action",
          "serverName.label": "Server Name",
          "serverName.error_text": "CA Single Sign-On Server Name contains invalid hostname"
        }
      }
    ]
  },
  {
    "configName": "SiteMinderEnableUser",
    "displayNameFormats": [
      {
        "format": "Enable CA Single Sign-On User: agent []",
        "condition": "isNull({{.agentId}})"
      },
      {
        "format": "Enable CA Single Sign-On User: agent [{{.agentId}}]",
        "condition": "true"
      }
    ],
    "refVariables": [
      {
        "fieldPath": ".",
        "suffix": "reasonCode",
        "refType": "OUT",
        "dataType": "int"
      }
    ],
    "refEntities": [
      {
        "fieldPath": ".agentGoid",
        "refType": "GOID",
        "entityType": "SMConfig"
      }
    ],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/SiteMinderEnableUser",
        "title": "Enable CA Single Sign-On User",
        "properties": {
          "agentGoid": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/sub-types/goid"
          },
          "agentId": {
            "type": "string"
          },
          "domOid": {
            "type": "string"
          },
          "otherTargetMessageVariable": {
            "type": "string"
          },
          "target": {
            "type": "string",
            "enum": [
              "REQUEST",
              "RESPONSE",
              "OTHER"
            ],
            "default": "REQUEST"
          },
          "username": {
            "type": "string"
          }
        }
      },
      {
        "type": "string",
        "$id": "https://l7tech.com/2025/json-schema/assertions/sub-types/goid"
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/SiteMinderEnableUser/Main",
        "title": "Enable CA Single Sign-On User",
        "properties": {
          "SiteMinderEnableUser": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/SiteMinderEnableUser"
          },
          ".properties": {
            "type": "object",
            "properties": {
              ".enabled": {
                "type": "boolean",
                "default": true
              },
              ".left.comment": {
                "type": "string"
              },
              ".right.comment": {
                "type": "string"
              }
            }
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Enable CA Single Sign-On User",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/target",
            "i18n": "target",
            "options": {
              "messageTarget": true,
              "otherTargetMessageVariableLabel": "assertion.common.target.otherTargetContextVariable"
            }
          },
          {
            "type": "Control",
            "i18n": "agentId",
            "scope": "#/properties/agentId"
          },
          {
            "type": "Control",
            "scope": "#/properties/domOid",
            "i18n": "domOid",
            "options": {
              "markAsRequired": true
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/username",
            "i18n": "username",
            "options": {
              "markAsRequired": true
            }
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/SiteMinderEnableUser",
        "locale": "en",
        "content": {
          "target.label": "Message Target",
          "agentId.label": "Configuration Name",
          "domOid.label": "Domain Object ID",
          "username.label": "Username"
        }
      }
    ]
  },
  {
    "configName": "SnmpTrap",
    "displayNameFormats": [
      {
        "format": "Send SNMP Trap",
        "condition": "isNull({{.targetHostname}})"
      },
      {
        "format": "Send SNMP Trap to {{.targetHostname}}",
        "condition": "true"
      }
    ],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/SnmpTrap",
        "title": "Send SNMP Trap",
        "properties": {
          "community": {
            "type": "string"
          },
          "errorMessage": {
            "type": "string"
          },
          "oid": {
            "type": "string"
          },
          "targetHostname": {
            "type": "string"
          },
          "targetPort": {
            "type": "integer"
          },
          "__snmpPort": {
            "type": "string",
            "enum": [
              "default",
              "custom"
            ]
          }
        }
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/SnmpTrap/Main",
        "title": "Send SNMP Trap",
        "properties": {
          "SnmpTrap": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/SnmpTrap"
          },
          ".properties": {
            "type": "object",
            "properties": {
              ".enabled": {
                "type": "boolean",
                "default": true
              },
              ".left.comment": {
                "type": "string"
              },
              ".right.comment": {
                "type": "string"
              }
            }
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Send SNMP Trap",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/targetHostname",
            "options": {
              "markAsRequired": true
            },
            "i18n": "targetHostname"
          },
          {
            "type": "Control",
            "scope": "#/properties/__snmpPort",
            "i18n": "snmpPort",
            "options": {
              "format": "radio",
              "useRowLayout": false,
              "uiSchemasMap": {
                "custom": {
                  "type": "Group",
                  "options": {
                    "groupType": "wrapCustomClass",
                    "customClass": "property-targetPort-group"
                  },
                  "elements": [
                    {
                      "type": "Control",
                      "scope": "#/properties/targetPort",
                      "i18n": "targetPort",
                      "options": {
                        "markAsRequired": true
                      }
                    }
                  ]
                }
              }
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/community",
            "options": {
              "format": "password"
            },
            "i18n": "community"
          },
          {
            "type": "Control",
            "scope": "#/properties/errorMessage",
            "i18n": "errorMessage"
          },
          {
            "type": "Control",
            "scope": "#/properties/oid",
            "i18n": "oid",
            "options": {
              "prefixInputText": "1.3.6.1.4.1.17304.7.3.",
              "markAsRequired": true
            }
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/SnmpTrap",
        "locale": "en",
        "content": {
          "targetHostname.label": "SNMP Hostname",
          "snmpPort.label": "SNMP Port",
          "snmpPort.custom": "Custom",
          "targetPort.label": "Port",
          "snmpPort.default": "Default (162)",
          "community.label": "SNMP Community",
          "targetPort.error_text": "The port field must be a number between 1 and 65535",
          "errorMessage.label": "Text to Send",
          "oid.label": "OID to Send (min. 1)",
          "oid.error_text": "The oid field must be an integer between 1 and 2147483647"
        }
      }
    ]
  },
  {
    "configName": "SpecificUser",
    "displayNameFormats": [
      {
        "format": "Authenticate User: {{.userLogin}} from [{{.identityProviderOid}}]",
        "condition": "not(isNull({{.userLogin}}))"
      },
      {
        "format": "Authenticate User: {{.userName}} from [{{.identityProviderOid}}]",
        "condition": "not(isNull({{.userName}}))"
      },
      {
        "format": "Authenticate User: {{.userUid}} from [{{.identityProviderOid}}]",
        "condition": "true"
      }
    ],
    "refEntities": [
      {
        "fieldPath": ".identityProviderOid",
        "refType": "GOID",
        "entityType": "IdpRef"
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Authenticate User",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/target",
            "options": {
              "messageTarget": true,
              "otherTargetMessageVariableLabel": "assertion.common.target.otherTargetContextVariable"
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/__providerName",
            "i18n": "__providerName",
            "options": {
              "markAsRequired": true,
              "readonly": true
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/userName",
            "i18n": "userName",
            "options": {
              "markAsRequired": true,
              "readonly": true
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/__searchButton",
            "i18n": "__searchButton.text",
            "options": {
              "controlType": "Button",
              "variant": "outlined"
            }
          },
          {
            "type": "Group",
            "label": "Target Identity",
            "options": {
              "groupType": "ShowHide"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/identityTag",
                "i18n": "identityTag",
                "options": {
                  "identityTags": true
                }
              }
            ]
          }
        ]
      }
    ],
    "configSchemaPatches": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/SpecificUser",
        "patches": [
          {
            "op": "add",
            "path": "/properties/__searchButton",
            "value": {
              "type": "string"
            }
          },
          {
            "op": "add",
            "path": "/properties/__providerName",
            "value": {
              "type": "string"
            }
          }
        ]
      }
    ],
    "configDataPatches": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/SpecificUser#AfterEdit",
        "patches": [
          {
            "op": "remove",
            "path": "/__providerName"
          },
          {
            "op": "remove",
            "path": "/_enabled"
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/SpecificUser",
        "locale": "en",
        "content": {
          "__providerName.label": "Identity Provider",
          "userName.label": "User Name",
          "__searchButton.text": "Search Identity Provider",
          "search-modal.title": "Search Identity Provider",
          "search-modal.cancel-button": "Cancel",
          "search-modal.select-button": "Select User",
          "search-modal.info": "Search for users in the selected identity provider",
          "error.pattern": "Only alphanumeric, space, underline, dash, dot and comma characters allowed!"
        }
      }
    ]
  },
  {
    "configName": "Split",
    "displayNameFormats": [
      {
        "format": "Split variable {{.inputVariable}} into {{.outputVariable}} on \"{{.splitPattern}}\" [Ignore empty values]",
        "condition": "equals({{.ignoreEmptyValues}}, true)"
      },
      {
        "format": "Split variable {{.inputVariable}} into {{.outputVariable}} on \"{{.splitPattern}}\"",
        "condition": "true"
      }
    ],
    "refVariables": [
      {
        "fieldPath": ".inputVariable",
        "refType": "IN",
        "dataType": "other"
      },
      {
        "fieldPath": ".outputVariable",
        "refType": "OUT",
        "dataType": "other",
        "multivalued": true,
        "settable": true
      }
    ],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/Split",
        "title": "Split Variable",
        "properties": {
          "ignoreEmptyValues": {
            "type": "boolean",
            "default": false
          },
          "inputVariable": {
            "type": "string"
          },
          "outputVariable": {
            "type": "string"
          },
          "splitPattern": {
            "type": "string"
          },
          "splitPatternRegEx": {
            "type": "boolean",
            "default": true
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Split Variable",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/inputVariable",
            "options": {
              "markAsRequired": true
            },
            "i18n": "inputVariable"
          },
          {
            "type": "Control",
            "scope": "#/properties/outputVariable",
            "options": {
              "markAsRequired": true,
              "contextVariable": true,
              "variableType": "output",
              "allowedDataTypes": []
            },
            "i18n": "outputVariable"
          },
          {
            "type": "Control",
            "scope": "#/properties/splitPattern",
            "i18n": "splitPattern"
          },
          {
            "type": "Control",
            "scope": "#/properties/splitPatternRegEx",
            "options": {},
            "i18n": "splitPatternRegEx"
          },
          {
            "type": "Control",
            "scope": "#/properties/ignoreEmptyValues",
            "i18n": "ignoreEmptyValues"
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/Split",
        "locale": "en",
        "content": {
          "inputVariable.label": "Source Variable",
          "outputVariable.label": "Target Variable",
          "splitPattern.label": "Split Pattern",
          "splitPatternRegEx.label": "Regular Expression",
          "ignoreEmptyValues.label": "Ignore Empty Values",
          "splitPattern.ERROR": "Invalid Pattern"
        }
      }
    ]
  },
  {
    "configName": "SqlAttack",
    "displayNameFormats": [
      {
        "format": "Protect Against SQL Attacks [URL Path + URL Query String + Body]",
        "condition": "and(equals({{.includeUrlPath}}, true), equals({{.includeUrlQueryString}}, true), or(isNull({{.includeBody}}), equals({{.includeBody}}, true)))"
      },
      {
        "format": "Protect Against SQL Attacks [URL Path + URL Query String]",
        "condition": "and(equals({{.includeUrlPath}}, true), equals({{.includeUrlQueryString}}, true))"
      },
      {
        "format": "Protect Against SQL Attacks [URL Path + Body]",
        "condition": "and(equals({{.includeUrlPath}}, true), or(isNull({{.includeBody}}), equals({{.includeBody}}, true)))"
      },
      {
        "format": "Protect Against SQL Attacks [URL Query String + Body]",
        "condition": "and(equals({{.includeUrlQueryString}}, true), or(isNull({{.includeBody}}), equals({{.includeBody}}, true)))"
      },
      {
        "format": "Protect Against SQL Attacks [URL Path]",
        "condition": "equals({{.includeUrlPath}}, true)"
      },
      {
        "format": "Protect Against SQL Attacks [URL Query String]",
        "condition": "equals({{.includeUrlQueryString}}, true)"
      },
      {
        "format": "Protect Against SQL Attacks [Body]",
        "condition": "or(isNull({{.includeBody}}), equals({{.includeBody}}, true))"
      }
    ],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/SqlAttack",
        "title": "Protect Against SQL Attacks",
        "properties": {
          "includeBody": {
            "type": "boolean",
            "default": true
          },
          "includeUrlPath": {
            "type": "boolean",
            "default": false
          },
          "includeUrlQueryString": {
            "type": "boolean",
            "default": true
          },
          "otherTargetMessageVariable": {
            "type": "string"
          },
          "protections": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "__MsSql": {
            "type": "boolean",
            "default": false
          },
          "__OraSql": {
            "type": "boolean",
            "default": false
          },
          "__SqlMetaText": {
            "type": "boolean",
            "default": false
          },
          "__SqlMeta": {
            "type": "boolean",
            "default": false
          },
          "target": {
            "type": "string",
            "enum": [
              "REQUEST",
              "RESPONSE",
              "OTHER"
            ],
            "default": "REQUEST"
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Protect Against SQL Attacks",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/target",
            "options": {
              "messageTarget": true,
              "otherTargetMessageVariableLabel": "assertion.common.target.otherTargetContextVariable"
            }
          },
          {
            "type": "Group",
            "i18n": "apply-protection-to",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "checkbox-group"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/includeUrlPath",
                "options": {
                  "format": "checkbox",
                  "helpText": "url-path.help-text"
                },
                "i18n": "url-path"
              },
              {
                "type": "Control",
                "scope": "#/properties/includeUrlQueryString",
                "options": {
                  "format": "checkbox",
                  "helpText": "url-query-string.help-text"
                },
                "i18n": "url-query-string"
              },
              {
                "type": "Control",
                "scope": "#/properties/includeBody",
                "options": {
                  "format": "checkbox",
                  "helpText": "body.help-text"
                },
                "i18n": "body"
              }
            ]
          },
          {
            "type": "Group",
            "i18n": "select-sql-protections",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "checkbox-group",
              "markAsRequired": true
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/__MsSql",
                "options": {
                  "format": "checkbox",
                  "helpText": "ms-sql.help-text"
                },
                "i18n": "ms-sql"
              },
              {
                "type": "Control",
                "scope": "#/properties/__OraSql",
                "options": {
                  "format": "checkbox",
                  "helpText": "ora-sql.help-text"
                },
                "i18n": "ora-sql"
              },
              {
                "type": "Control",
                "scope": "#/properties/__SqlMetaText",
                "options": {
                  "format": "checkbox",
                  "helpText": "sql-meta-text.help-text"
                },
                "i18n": "sql-meta-text"
              },
              {
                "type": "Control",
                "scope": "#/properties/__SqlMeta",
                "options": {
                  "format": "checkbox",
                  "helpText": "sql-meta.help-text"
                },
                "i18n": "sql-meta"
              }
            ]
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/SqlAttack",
        "locale": "en",
        "content": {
          "apply-protection-to": "Apply Protection to",
          "url-path.label": "URL Path",
          "url-query-string.label": "URL Query String",
          "body.label": "Body",
          "select-sql-protections": "Available Protections",
          "ms-sql.label": "Known MS SQL Server Exploits Protection",
          "ora-sql.label": "Known Oracle Exploit Protection",
          "sql-meta-text.label": "Standard SQL Injection Attack Protection",
          "sql-meta.label": "Invasive SQL Injection Attack Protection",
          "protection-selection.error": "At least one selection is required",
          "url-path.help-text": "Scan URL Path.",
          "url-query-string.help-text": "Scan parameter values in URL query string.",
          "body.help-text": "Scan message Body.",
          "ms-sql.help-text": "Blocks messages which appear to contain common MS SQL Server exploits.",
          "ora-sql.help-text": "Blocks messages which appear to contain common Oracle exploits",
          "sql-meta-text.help-text": "Blocks messages with SQL metacharacters in any XML TEXT or CDATA section. Protects against most SQL injection attacks, but with many false positives. In particular, any text containing a single-quote (') character will be blocked.",
          "sql-meta.help-text": "Blocks messages with SQL metacharacters anywhere in the XML. Protects against more SQL injection attacks, but with many more false positives. In particular, any message containing a shorthand XPointer reference will be rejected, as will most messages containing signed XML."
        }
      }
    ]
  },
  {
    "configName": "SshCredential",
    "displayNameFormats": [
      {
        "format": "Require SSH Credentials",
        "condition": "true"
      }
    ],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/SshCredential",
        "title": "Require SSH Credentials",
        "properties": {
          "permitPasswordCredential": {
            "type": "boolean",
            "default": false
          },
          "permitPublicKeyCredential": {
            "type": "boolean",
            "default": false
          }
        }
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/SshCredential/Main",
        "title": "Require SSH Credentials",
        "properties": {
          "SshCredential": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/SshCredential"
          },
          ".properties": {
            "type": "object",
            "properties": {
              ".enabled": {
                "type": "boolean",
                "default": true
              },
              ".left.comment": {
                "type": "string"
              },
              ".right.comment": {
                "type": "string"
              }
            }
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Require SSH Credentials",
        "elements": [
          {
            "type": "VerticalLayout",
            "title": "Require SSH Credentials",
            "elements": [
              {
                "type": "Group",
                "options": {
                  "groupType": "wrapCustomClass",
                  "customClass": "Ssh-credentials-group"
                },
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/permitPasswordCredential",
                    "options": {
                      "markAsRequired": true
                    },
                    "i18n": "permitPasswordCredential"
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/permitPublicKeyCredential",
                    "options": {
                      "markAsRequired": true
                    },
                    "i18n": "permitPublicKeyCredential"
                  }
                ],
                "i18n": "subheader.title"
              }
            ]
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/SshCredential",
        "locale": "en",
        "content": {
          "permitPasswordCredential.label": "Password",
          "permitPublicKeyCredential.label": "Public Key",
          "subheader.title": "Specify Permitted Credential(s)"
        }
      }
    ]
  },
  {
    "configName": "SshRouteAssertion",
    "displayNameFormats": [
      {
        "format": "PUT via SCP to Server {{.host}}",
        "condition": "and(isNull({{.retrieveCommandTypeFromVariable}}), and(isNull({{.commandType}}), equals({{.scpProtocol}}, true)))"
      },
      {
        "format": "PUT via SFTP to Server {{.host}}",
        "condition": "and(isNull({{.retrieveCommandTypeFromVariable}}), and(isNull({{.commandType}}), equals({{.scpProtocol}}, false)))"
      },
      {
        "format": "Route via SCP to Server {{.host}}",
        "condition": "and(equals({{.retrieveCommandTypeFromVariable}}, true), equals({{.scpProtocol}}, true))"
      },
      {
        "format": "Route via SFTP to Server {{.host}}",
        "condition": "and(equals({{.retrieveCommandTypeFromVariable}}, true), equals({{.scpProtocol}}, false))"
      },
      {
        "format": "{{.commandType}} via SCP to Server {{.host}}",
        "condition": "and(not(equals({{.commandType}}, FROMVAR)), equals({{.scpProtocol}}, true))"
      },
      {
        "format": "{{.commandType}} via SFTP to Server {{.host}}",
        "condition": "and(not(equals({{.commandType}}, FROMVAR)), equals({{.scpProtocol}}, false))"
      },
      {
        "format": "Route via SCP to Server {{.host}}",
        "condition": "equals({{.scpProtocol}}, true)"
      },
      {
        "format": "Route via SFTP to Server {{.host}}",
        "condition": "equals({{.scpProtocol}}, false)"
      },
      {
        "format": "Route via SSH2",
        "condition": "true"
      }
    ],
    "refVariables": [
      {
        "fieldPath": ".commandTypeVariableName",
        "refType": "OUT",
        "dataType": "other"
      },
      {
        "fieldPath": ".responseTarget.otherTargetMessageVariable",
        "refType": "OUT",
        "dataType": "other"
      },
      {
        "fieldPath": ".saveFileSizeContextVariable",
        "refType": "OUT",
        "dataType": "other"
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Route via SSH2",
        "elements": [
          {
            "type": "Group",
            "label": "Connection",
            "isExpanded": true,
            "options": {
              "groupType": "Accordion"
            },
            "elements": [
              {
                "type": "Group",
                "i18n": "connection.label",
                "options": {
                  "groupType": "wrapCustomClass",
                  "customClass": "common-group-style",
                  "labelColor": "bodyText"
                },
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/scpProtocol",
                    "i18n": "protocol",
                    "options": {
                      "format": "radio",
                      "useRowLayout": true
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/host",
                    "i18n": "host",
                    "options": {
                      "markAsRequired": true
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/port",
                    "i18n": "port",
                    "options": {
                      "markAsRequired": true
                    }
                  },
                  {
                    "type": "Group",
                    "options": {
                      "groupType": "wrapCustomClass",
                      "customClass": "timeout-group-style"
                    },
                    "elements": [
                      {
                        "type": "Control",
                        "scope": "#/properties/connectTimeout",
                        "i18n": "connectTimeout",
                        "options": {
                          "markAsRequired": true
                        }
                      },
                      {
                        "type": "Control",
                        "scope": "#/properties/readTimeout",
                        "i18n": "readTimeout",
                        "options": {
                          "markAsRequired": true
                        }
                      }
                    ]
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/usePublicKey",
                    "i18n": "usePublicKey"
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/__sshPublicKey",
                    "options": {
                      "commonModalControl": true,
                      "buttonLabel": "buttonLabel",
                      "dialogTitle": "dialogTitle",
                      "id": "manageHostKey",
                      "detail": {
                        "type": "VerticalLayout",
                        "elements": [
                          {
                            "type": "Control",
                            "scope": "#/properties/sshPublicKey",
                            "i18n": "sshPublicKey",
                            "options": {
                              "markAsRequired": true,
                              "multiline": true,
                              "rows": 6
                            }
                          },
                          {
                            "type": "Control",
                            "scope": "#/properties/__uploadFile",
                            "i18n": "uploadFile.label",
                            "options": {
                              "uploadFile": true
                            }
                          }
                        ]
                      }
                    },
                    "rule": {
                      "effect": "SHOW",
                      "condition": {
                        "scope": "#/properties/usePublicKey",
                        "schema": {
                          "const": true
                        }
                      }
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/useDefaultKexAlgorithms",
                    "i18n": "useDefaultKexAlgorithms"
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/kexAlgorithms",
                    "options": {
                      "kexAlgorithm": true,
                      "selectedKexAlgo": "selectedKexAlgo",
                      "manageKexAlgo": "manageKexAlgo",
                      "editKexAlgo": "editKexAlgo",
                      "selectKexAlgo": "selectKexAlgo",
                      "useDefaultList": "useDefaultList"
                    },
                    "rule": {
                      "effect": "SHOW",
                      "condition": {
                        "scope": "#/properties/useDefaultKexAlgorithms",
                        "schema": {
                          "const": false
                        }
                      }
                    }
                  },
                  {
                    "type": "Group",
                    "i18n": "commandSettings.label",
                    "options": {
                      "groupType": "wrapCustomClass",
                      "customClass": "command-group-style",
                      "labelColor": "bodyText"
                    },
                    "elements": [
                      {
                        "type": "Control",
                        "scope": "#/properties/commandType",
                        "i18n": "commandType"
                      },
                      {
                        "type": "Control",
                        "scope": "#/properties/commandTypeVariableName",
                        "i18n": "commandTypeVariableName",
                        "options": {
                          "contextVariable": true,
                          "markAsRequired": true,
                          "variableType": "output",
                          "allowedDataTypes": []
                        },
                        "rule": {
                          "effect": "SHOW",
                          "condition": {
                            "scope": "#/properties/commandType",
                            "schema": {
                              "const": "FROMVAR"
                            }
                          }
                        }
                      },
                      {
                        "type": "Control",
                        "scope": "#/properties/__messageSource",
                        "i18n": "messageSource",
                        "rule": {
                          "effect": "SHOW",
                          "condition": {
                            "scope": "#/properties/commandType",
                            "schema": {
                              "enum": [
                                "FROMVAR",
                                "PUT"
                              ]
                            }
                          }
                        }
                      },
                      {
                        "type": "Control",
                        "scope": "#/properties/responseTarget/properties/target",
                        "i18n": "messageTarget",
                        "rule": {
                          "effect": "SHOW",
                          "condition": {
                            "scope": "#/properties/commandType",
                            "schema": {
                              "enum": [
                                "FROMVAR",
                                "GET",
                                "LIST",
                                "STAT"
                              ]
                            }
                          }
                        }
                      },
                      {
                        "type": "Control",
                        "scope": "#/properties/responseTarget/properties/otherTargetMessageVariable",
                        "i18n": "messageVariable",
                        "options": {
                          "contextVariable": true,
                          "markAsRequired": true,
                          "variableType": "output",
                          "allowedDataTypes": []
                        },
                        "rule": {
                          "effect": "SHOW",
                          "condition": {
                            "scope": "#",
                            "schema": {
                              "properties": {
                                "responseTarget": {
                                  "properties": {
                                    "target": {
                                      "const": "OTHER"
                                    }
                                  }
                                },
                                "commandType": {
                                  "enum": [
                                    "FROMVAR",
                                    "GET",
                                    "LIST",
                                    "STAT"
                                  ]
                                }
                              },
                              "required": [
                                "responseTarget",
                                "commandType"
                              ]
                            }
                          }
                        }
                      },
                      {
                        "type": "Control",
                        "scope": "#/properties/directory",
                        "i18n": "directory"
                      },
                      {
                        "type": "Control",
                        "scope": "#/properties/fileName",
                        "i18n": "fileName",
                        "options": {
                          "markAsRequired": true
                        }
                      },
                      {
                        "type": "Control",
                        "scope": "#/properties/newFileName",
                        "i18n": "newFileName",
                        "options": {
                          "markAsRequired": true
                        },
                        "rule": {
                          "effect": "SHOW",
                          "condition": {
                            "scope": "#",
                            "schema": {
                              "anyOf": [
                                {
                                  "allOf": [
                                    {
                                      "properties": {
                                        "scpProtocol": {
                                          "const": false
                                        },
                                        "commandType": {
                                          "enum": [
                                            "FROMVAR",
                                            "MOVE"
                                          ]
                                        }
                                      },
                                      "required": [
                                        "scpProtocol",
                                        "commandType"
                                      ]
                                    }
                                  ]
                                }
                              ]
                            }
                          }
                        }
                      }
                    ]
                  }
                ]
              }
            ]
          },
          {
            "type": "Group",
            "label": "Authentication",
            "options": {
              "groupType": "Accordion"
            },
            "elements": [
              {
                "type": "Group",
                "options": {
                  "groupType": "wrapCustomClass",
                  "customClass": "common-group-style",
                  "labelColor": "bodyText"
                },
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/__credentialsSourceSpecified",
                    "i18n": "credentialsSourceSpecified",
                    "options": {
                      "format": "radio",
                      "useRowLayout": true,
                      "uiSchemasMap": {
                        "specifyUserCred": {
                          "type": "Group",
                          "options": {
                            "groupType": "wrapCustomClass"
                          },
                          "elements": [
                            {
                              "type": "Control",
                              "scope": "#/properties/username",
                              "i18n": "username",
                              "options": {
                                "markAsRequired": true
                              }
                            },
                            {
                              "type": "Control",
                              "scope": "#/properties/__passwordPrivateKey",
                              "label": false,
                              "options": {
                                "format": "radio",
                                "uiSchemasMap": {
                                  "password": {
                                    "type": "Group",
                                    "options": {
                                      "groupType": "wrapCustomClass"
                                    },
                                    "elements": [
                                      {
                                        "type": "Control",
                                        "label": false,
                                        "scope": "#/properties/passwordGoid",
                                        "options": {
                                          "defaultOptions": []
                                        }
                                      }
                                    ]
                                  },
                                  "privateKey": {
                                    "type": "Group",
                                    "options": {
                                      "groupType": "wrapCustomClass"
                                    },
                                    "elements": [
                                      {
                                        "type": "Control",
                                        "label": false,
                                        "scope": "#/properties/privateKeyGoid",
                                        "options": {
                                          "defaultOptions": []
                                        }
                                      }
                                    ]
                                  }
                                }
                              }
                            },
                            {
                              "type": "Control",
                              "scope": "#/properties/__manageStoredPassword",
                              "i18n": "__manageStoredPassword.label",
                              "options": {
                                "controlType": "Button",
                                "variant": "outlined",
                                "readonly": true
                              }
                            }
                          ]
                        }
                      }
                    }
                  },
                  {
                    "type": "Group",
                    "options": {
                      "groupType": "wrapCustomClass",
                      "customClass": "common-group-style"
                    },
                    "elements": [
                      {
                        "type": "Control",
                        "scope": "#/properties/authMaxRetryCount",
                        "label": false,
                        "rule": {
                          "effect": "HIDE",
                          "condition": {
                            "scope": "#/properties/__enableAuthRetry",
                            "schema": {
                              "const": true
                            }
                          }
                        }
                      },
                      {
                        "type": "Control",
                        "scope": "#/properties/__enableAuthRetry",
                        "i18n": "__enableAuthRetry",
                        "options": {
                          "format": "checkbox"
                        }
                      }
                    ]
                  }
                ]
              }
            ]
          },
          {
            "type": "Group",
            "options": {
              "groupType": "wrapCustomClass"
            },
            "elements": [
              {
                "type": "Group",
                "label": "Advanced",
                "options": {
                  "groupType": "Accordion"
                },
                "elements": [
                  {
                    "type": "Group",
                    "i18n": "advancedCommandSettings.label",
                    "options": {
                      "groupType": "wrapCustomClass",
                      "customClass": "advanced-group-style",
                      "labelColor": "bodyText"
                    },
                    "elements": [
                      {
                        "type": "Control",
                        "scope": "#/properties/downloadContentType",
                        "i18n": "downloadContentType",
                        "options": {
                          "autocomplete": true,
                          "markAsRequired": true,
                          "allowUserProvidedInput": true,
                          "defaultOptions": [
                            {
                              "label": "text/xml; charset=utf-8",
                              "value": "text/xml; charset=utf-8"
                            },
                            {
                              "label": "text/plain; charset=utf-8",
                              "value": "text/plain; charset=utf-8"
                            },
                            {
                              "label": "application/soap+xml; charset=utf-8",
                              "value": "application/soap+xml; charset=utf-8"
                            },
                            {
                              "label": "application/json; charset=utf-8",
                              "value": "application/json; charset=utf-8"
                            },
                            {
                              "label": "application/octet-stream",
                              "value": "application/octet-stream"
                            }
                          ]
                        },
                        "rule": {
                          "effect": "SHOW",
                          "condition": {
                            "scope": "#/properties/commandType",
                            "schema": {
                              "enum": [
                                "FROMVAR",
                                "GET"
                              ]
                            }
                          }
                        }
                      },
                      {
                        "type": "Control",
                        "scope": "#/properties/fileOffset",
                        "i18n": "fileOffset",
                        "options": {
                          "markAsRequired": true
                        },
                        "rule": {
                          "effect": "SHOW",
                          "condition": {
                            "scope": "#",
                            "schema": {
                              "anyOf": [
                                {
                                  "allOf": [
                                    {
                                      "properties": {
                                        "scpProtocol": {
                                          "const": false
                                        },
                                        "commandType": {
                                          "enum": [
                                            "FROMVAR",
                                            "PUT",
                                            "GET"
                                          ]
                                        }
                                      },
                                      "required": [
                                        "scpProtocol",
                                        "commandType"
                                      ]
                                    }
                                  ]
                                }
                              ]
                            }
                          }
                        }
                      },
                      {
                        "type": "Control",
                        "scope": "#/properties/fileLength",
                        "i18n": "fileLength",
                        "options": {
                          "markAsRequired": true
                        },
                        "rule": {
                          "effect": "SHOW",
                          "condition": {
                            "scope": "#",
                            "schema": {
                              "anyOf": [
                                {
                                  "allOf": [
                                    {
                                      "properties": {
                                        "scpProtocol": {
                                          "const": true
                                        },
                                        "commandType": {
                                          "enum": [
                                            "FROMVAR",
                                            "PUT"
                                          ]
                                        }
                                      },
                                      "required": [
                                        "scpProtocol",
                                        "commandType"
                                      ]
                                    }
                                  ]
                                },
                                {
                                  "allOf": [
                                    {
                                      "properties": {
                                        "scpProtocol": {
                                          "const": false
                                        },
                                        "commandType": {
                                          "enum": [
                                            "FROMVAR",
                                            "GET"
                                          ]
                                        }
                                      },
                                      "required": [
                                        "scpProtocol",
                                        "commandType"
                                      ]
                                    }
                                  ]
                                }
                              ]
                            }
                          }
                        }
                      },
                      {
                        "type": "Control",
                        "scope": "#/properties/setFileSizeToContextVariable",
                        "i18n": "setFileSizeToContextVariable",
                        "options": {
                          "format": "checkbox"
                        },
                        "rule": {
                          "effect": "SHOW",
                          "condition": {
                            "scope": "#/properties/commandType",
                            "schema": {
                              "enum": [
                                "FROMVAR",
                                "GET",
                                "STAT"
                              ]
                            }
                          }
                        }
                      },
                      {
                        "type": "Control",
                        "scope": "#/properties/saveFileSizeContextVariable",
                        "i18n": "contextVariable",
                        "options": {
                          "customClass": "common-conditional-field",
                          "contextVariable": true,
                          "markAsRequired": true,
                          "variableType": "output",
                          "allowedDataTypes": []
                        },
                        "rule": {
                          "effect": "SHOW",
                          "condition": {
                            "scope": "#",
                            "schema": {
                              "anyOf": [
                                {
                                  "allOf": [
                                    {
                                      "properties": {
                                        "setFileSizeToContextVariable": {
                                          "const": true
                                        },
                                        "commandType": {
                                          "enum": [
                                            "FROMVAR",
                                            "GET",
                                            "STAT"
                                          ]
                                        }
                                      },
                                      "required": [
                                        "setFileSizeToContextVariable",
                                        "commandType"
                                      ]
                                    }
                                  ]
                                }
                              ]
                            }
                          }
                        }
                      },
                      {
                        "type": "Control",
                        "scope": "#/properties/preserveFileMetadata",
                        "i18n": "preserveFileMetadata",
                        "options": {
                          "format": "checkbox"
                        },
                        "rule": {
                          "effect": "SHOW",
                          "condition": {
                            "scope": "#",
                            "schema": {
                              "anyOf": [
                                {
                                  "allOf": [
                                    {
                                      "properties": {
                                        "scpProtocol": {
                                          "const": false
                                        },
                                        "commandType": {
                                          "enum": [
                                            "FROMVAR",
                                            "PUT"
                                          ]
                                        }
                                      },
                                      "required": [
                                        "scpProtocol",
                                        "commandType"
                                      ]
                                    }
                                  ]
                                }
                              ]
                            }
                          }
                        }
                      },
                      {
                        "type": "Control",
                        "scope": "#/properties/failIfFileExists",
                        "i18n": "failIfFileExists",
                        "options": {
                          "format": "checkbox"
                        },
                        "rule": {
                          "effect": "SHOW",
                          "condition": {
                            "scope": "#",
                            "schema": {
                              "anyOf": [
                                {
                                  "allOf": [
                                    {
                                      "properties": {
                                        "scpProtocol": {
                                          "const": false
                                        },
                                        "commandType": {
                                          "enum": [
                                            "FROMVAR",
                                            "PUT"
                                          ]
                                        }
                                      },
                                      "required": [
                                        "scpProtocol",
                                        "commandType"
                                      ]
                                    }
                                  ]
                                }
                              ]
                            }
                          }
                        }
                      },
                      {
                        "type": "Control",
                        "scope": "#/properties/__overrideMaxSize",
                        "i18n": "__overrideMaxMessageSize",
                        "options": {
                          "subUiSchema": {
                            "type": "Control",
                            "scope": "#/properties/__restrictAllowMessage",
                            "label": false,
                            "options": {
                              "format": "radio",
                              "useRowLayout": false,
                              "uiSchemasMap": {
                                "restrict": {
                                  "type": "Group",
                                  "options": {
                                    "groupType": "wrapCustomClass"
                                  },
                                  "elements": [
                                    {
                                      "type": "Control",
                                      "i18n": "maxMessageSize",
                                      "scope": "#/properties/responseByteLimit",
                                      "options": {
                                        "markAsRequired": true
                                      }
                                    }
                                  ]
                                }
                              }
                            }
                          }
                        },
                        "rule": {
                          "effect": "SHOW",
                          "condition": {
                            "scope": "#/properties/commandType",
                            "schema": {
                              "enum": [
                                "FROMVAR",
                                "GET"
                              ]
                            }
                          }
                        }
                      },
                      {
                        "type": "Group",
                        "label": false,
                        "options": {
                          "groupType": "wrapCustomClass"
                        },
                        "elements": [
                          {
                            "type": "Control",
                            "label": false,
                            "scope": "#/properties/currentSecurityHeaderHandling",
                            "options": {
                              "groupType": "wrapCustomClass",
                              "customClass": "common-group-style",
                              "labelColor": "bodyText",
                              "format": "radio",
                              "useRowLayout": false
                            },
                            "rule": {
                              "effect": "SHOW",
                              "condition": {
                                "scope": "#/properties/commandType",
                                "schema": {
                                  "enum": [
                                    "FROMVAR",
                                    "PUT"
                                  ]
                                }
                              }
                            }
                          }
                        ]
                      }
                    ]
                  }
                ]
              }
            ],
            "rule": {
              "effect": "HIDE",
              "condition": {
                "scope": "#/properties/commandType",
                "schema": {
                  "enum": [
                    "LIST",
                    "DELETE",
                    "MOVE",
                    "MKDIR",
                    "RMDIR"
                  ]
                }
              }
            }
          },
          {
            "type": "Group",
            "label": "WS-Security Recipient",
            "options": {
              "groupType": "ShowHide"
            },
            "elements": [
              {
                "type": "Control",
                "options": {
                  "wssRecipient": true
                }
              }
            ]
          }
        ]
      }
    ],
    "configSchemaPatches": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/SshRouteAssertion",
        "patches": [
          {
            "op": "replace",
            "path": "/properties/scpProtocol",
            "value": {
              "type": "boolean",
              "enum": [
                true,
                false
              ],
              "default": false
            }
          },
          {
            "op": "replace",
            "path": "/properties/__messageSource",
            "value": {
              "type": "string",
              "enum": [
                "REQUEST",
                "RESPONSE"
              ],
              "default": "REQUEST"
            }
          },
          {
            "op": "remove",
            "path": "/properties/port/default"
          },
          {
            "op": "remove",
            "path": "/properties/connectTimeout/default"
          },
          {
            "op": "remove",
            "path": "/properties/readTimeout/default"
          },
          {
            "op": "remove",
            "path": "/properties/fileOffset/default"
          },
          {
            "op": "remove",
            "path": "/properties/fileLength/default"
          },
          {
            "op": "add",
            "path": "/properties/__enableAuthRetry",
            "value": {
              "type": "boolean"
            }
          },
          {
            "op": "add",
            "path": "/properties/__sshPublicKey",
            "value": {
              "items": {
                "type": "object",
                "properties": {
                  "sshPublicKey": {
                    "type": "string"
                  },
                  "__uploadFile": {
                    "type": "string"
                  }
                }
              }
            }
          },
          {
            "op": "add",
            "path": "/properties/__credentialsSourceSpecified",
            "value": {
              "type": "string",
              "default": "passThroughUName"
            }
          },
          {
            "op": "add",
            "path": "/properties/__passwordPrivateKey",
            "value": {
              "type": "string",
              "default": "password"
            }
          },
          {
            "op": "add",
            "path": "/properties/__overrideMaxSize",
            "value": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "op": "add",
            "path": "/properties/__restrictAllowMessage",
            "value": {
              "type": "string",
              "default": "restrict"
            }
          }
        ]
      },
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/SshRouteAssertion",
        "patches": [
          {
            "op": "add",
            "path": "/properties/__credentialsSourceSpecified/enum",
            "value": [
              "passThroughUName",
              "specifyUserCred"
            ]
          },
          {
            "op": "add",
            "path": "/properties/__passwordPrivateKey/enum",
            "value": [
              "password",
              "privateKey"
            ]
          },
          {
            "op": "add",
            "path": "/properties/__restrictAllowMessage/enum",
            "value": [
              "restrict",
              "allow"
            ]
          },
          {
            "op": "add",
            "path": "/properties/currentSecurityHeaderHandling",
            "value": {
              "type": "string",
              "enum": [
                "3",
                "1",
                "0"
              ],
              "default": "1"
            }
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "SshRouteAssertion/Main",
        "locale": "en",
        "content": {
          "connection.label": "Connection Settings",
          "protocol.label": "Protocol",
          "protocol.true": "SCP",
          "protocol.false": "SFTP",
          "host.label": "Host Name",
          "port.label": "Port Number",
          "connectTimeout.label": "Connect Timeout (sec)",
          "readTimeout.label": "Read Timeout (sec)",
          "usePublicKey.label": "Validate server's host key",
          "useDefaultKexAlgorithms.label": "Use default KEX algorithms",
          "commandSettings.label": "Command Settings",
          "sshPublicKey.label": "SSH Public Key Fingerprint",
          "uploadFile.label": "Upload File",
          "commandType.label": "Command Type",
          "commandType.FROMVAR": "From Variable",
          "commandType.PUT": "Upload To (PUT)",
          "commandType.GET": "Download From (GET)",
          "commandType.LIST": "Get Directory Listing (LIST)",
          "commandType.STAT": "Get File Attribute (STAT)",
          "commandType.DELETE": "Delete File (DELETE)",
          "commandType.MOVE": "Move File (MOVE)",
          "commandType.MKDIR": "Create Directory (MKDIR)",
          "commandType.RMDIR": "Delete Directory (RMDIR)",
          "commandTypeVariableName.label": "Command Type Variable",
          "messageSource.label": "Message Source",
          "messageSource.REQUEST": "Request",
          "messageSource.RESPONSE": "Response",
          "messageTarget.label": "Message Target",
          "messageTarget.REQUEST": "Request",
          "messageTarget.RESPONSE": "Response",
          "messageTarget.OTHER": "Message Variable",
          "messageVariable.label": "Message Variable",
          "otherMessageVariable.label": "Message Variable",
          "directory.label": "Directory",
          "fileName.label": "File Name",
          "newFileName.label": "New File Name",
          "username.label": "Username",
          "password.label": "Password",
          "__manageStoredPassword.label": "Manage Stored Passwords",
          "privateKey.label": "Private Key",
          "authMaxRetryCount.label": "Max Retry Count",
          "__enableAuthRetry.label": "Use global default",
          "authMaxRetryCount.error": "Please provide a number between 1 and 2147483647 for the max auth retry count. Default count is 1 or must be a valid Context Variable.",
          "advancedCommandSettings.label": "Advanced Command Settings",
          "downloadContentType.label": "Content Type",
          "fileOffset.label": "File Offset",
          "fileLength.label": "File Length",
          "setFileSizeToContextVariable.label": "Set file size to context variable",
          "contextVariable.label": "Context Variable",
          "preserveFileMetadata.label": "Preserve file mode (permission)",
          "failIfFileExists.label": "Fail if file exists",
          "__overrideMaxMessageSize.label": "Override maximum message size",
          "maxMessageSize.label": "Maximum Message Size (bytes)",
          "invalid_number_or_variable.error": "The Restrict messages to field must contain a context variable and/or an integer",
          "currentSecurityHeaderHandling.label": "Current WSS header handling",
          "currentSecurityHeaderHandling.3": "Don't modify the request security header",
          "currentSecurityHeaderHandling.1": "Remove Layer 7 actor and must understand attributes from processed security header",
          "currentSecurityHeaderHandling.0": "Remove processed security header from request before routing",
          "connections.error.valid-timeout": "The timeout field must be a number between 1 and 32767",
          "set-variable.variable.helper_text": "Must start with a letter or underscore. May contain letters, digits, periods, dashes, or underscores.",
          "buttonLabel": "Manage Host Keys",
          "dialogTitle": "Add SSH Public Key Fingerprint",
          "selectedKexAlgo": "Selected KEX Algorithms",
          "manageKexAlgo": "Manage KEX Algorithms",
          "editKexAlgo": "Edit Key Exchange Algorithms",
          "selectKexAlgo": "Select and order key exchange algorithms",
          "useDefaultList": "Use Default List",
          "invalid_fingerprint_or_variable.error": "SSH public key fingerprint is not valid.",
          "credentialsSourceSpecified.label": "Authentication",
          "credentialsSourceSpecified.passThroughUName": "Pass through user name and password credentials in request",
          "credentialsSourceSpecified.specifyUserCred": "Specify user credentials",
          "__passwordPrivateKey.password": "Password",
          "__passwordPrivateKey.privateKey": "Private Key",
          "__restrictAllowMessage.restrict": "Restrict message size",
          "__restrictAllowMessage.allow": "Allow unlimited message size (not recommended)",
          "invalid_port.field": "Port number must be in range 1 to 65535, or a context variable. Default port is 22",
          "publicKey.error": "Validate Server's host key checkbox is selected, but no server host key has been entered"
        }
      }
    ]
  },
  {
    "configName": "Ssl",
    "displayNameFormats": [
      {
        "format": "Require SSL or TLS Transport with Client Certificate Authentication",
        "condition": "equals({{.requireClientAuthentication}}, true)"
      },
      {
        "format": "Require SSL or TLS Transport",
        "condition": "isNull({{.option}})"
      },
      {
        "format": "Optional SSL or TLS Transport",
        "condition": "equals({{.option}}, Optional)"
      },
      {
        "format": "Forbid SSL or TLS Transport",
        "condition": "equals({{.option}}, Forbidden)"
      }
    ],
    "configSchemas": [
      {
        "$defs": {
          "Ssl:optionValue": {
            "type": "object",
            "$id": "https://l7tech.com/2025/json-schema/assertions/Ssl:optionValue"
          }
        },
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/Ssl",
        "title": "Require SSL or TLS Transport",
        "properties": {
          "checkCertValidity": {
            "type": "boolean",
            "default": true
          },
          "option": {
            "type": "string",
            "default": "Required",
            "enum": [
              "Required",
              "Optional",
              "Forbidden"
            ]
          },
          "requireClientAuthentication": {
            "type": "boolean",
            "default": false
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Require SSL or TLS Transport",
        "elements": [
          {
            "type": "Control",
            "i18n": "option",
            "scope": "#/properties/option",
            "options": {
              "format": "radio",
              "useRowLayout": false
            }
          },
          {
            "type": "Group",
            "i18n": "peerAuth.label",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "Ssl-authentication-group"
            },
            "elements": [
              {
                "type": "Control",
                "i18n": "requireClientAuth",
                "description": "This option is only available when the SSL or TLS requirement is set to Required.",
                "scope": "#/properties/requireClientAuthentication",
                "options": {
                  "subUiSchema": {
                    "type": "Control",
                    "i18n": "checkCertValidity",
                    "scope": "#/properties/checkCertValidity"
                  }
                },
                "rule": {
                  "effect": "DISABLE",
                  "condition": {
                    "scope": "#/properties/option",
                    "schema": {
                      "enum": [
                        "Optional",
                        "Forbidden"
                      ]
                    }
                  }
                }
              }
            ]
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/Ssl",
        "locale": "en",
        "content": {
          "option.label": "Select the SSL or TLS requirements",
          "option.Required": "Required",
          "option.Optional": "Optional",
          "option.Forbidden": "Forbidden",
          "peerAuth.label": "Peer Authentication",
          "requireClientAuth.label": "Require Client Certificate Authentication",
          "checkCertValidity.label": "Check Client Certificate Validity Period"
        }
      }
    ]
  },
  {
    "configName": "Swagger",
    "refVariables": [
      {
        "fieldPath": ".swaggerDoc",
        "refType": "OUT",
        "dataType": "other"
      },
      {
        "fieldPath": ".prefix",
        "refType": "OUT",
        "dataType": "other",
        "prefixed": true
      },
      {
        "fieldPath": ".prefix",
        "suffix": ".host",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".prefix",
        "suffix": ".baseUri",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".prefix",
        "suffix": ".apiUri",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".prefix",
        "suffix": ".path",
        "refType": "OUT",
        "dataType": "string",
        "condition": "{{.validatePath}}"
      }
    ],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/Swagger",
        "title": "Validate Against Swagger Document",
        "properties": {
          "prefix": {
            "type": "string"
          },
          "requireSecurityCredentials": {
            "type": "boolean",
            "default": true
          },
          "serviceBase": {
            "type": "string"
          },
          "swaggerDoc": {
            "type": "string"
          },
          "validateMethod": {
            "type": "boolean",
            "default": true
          },
          "validatePath": {
            "type": "boolean",
            "default": true
          },
          "validateScheme": {
            "type": "boolean",
            "default": true
          },
          "__inlineAlerts": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Validate Against Swagger Document",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/swaggerDoc",
            "options": {
              "markAsRequired": true,
              "contextVariable": true,
              "variableType": "output",
              "allowedDataTypes": []
            },
            "i18n": "swagger-documemt"
          },
          {
            "type": "Control",
            "scope": "#/properties/serviceBase",
            "i18n": "service-base"
          },
          {
            "type": "Group",
            "i18n": "validation-options",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "validation-options"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/validatePath",
                "options": {
                  "markAsRequired": true
                },
                "i18n": "validate-path"
              },
              {
                "type": "Control",
                "scope": "#/properties/validateMethod",
                "options": {
                  "markAsRequired": true
                },
                "i18n": "validate-method",
                "rule": {
                  "effect": "HIDE",
                  "condition": {
                    "scope": "#/properties/validatePath",
                    "schema": {
                      "const": false
                    }
                  }
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/validateScheme",
                "options": {
                  "markAsRequired": true
                },
                "i18n": "validate-scheme",
                "rule": {
                  "effect": "HIDE",
                  "condition": {
                    "scope": "#/properties/validateMethod",
                    "schema": {
                      "const": false
                    }
                  }
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/requireSecurityCredentials",
                "options": {
                  "markAsRequired": true
                },
                "i18n": "require-security-credentials",
                "rule": {
                  "effect": "HIDE",
                  "condition": {
                    "scope": "#/properties/validateMethod",
                    "schema": {
                      "const": false
                    }
                  }
                }
              },
              {
                "type": "Group",
                "options": {
                  "groupType": "wrapCustomClass",
                  "customClass": "inline-alert"
                },
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/__inlineAlerts",
                    "options": {
                      "inlineAlerts": "warning"
                    }
                  }
                ],
                "rule": {
                  "effect": "SHOW",
                  "condition": {
                    "scope": "#/properties/requireSecurityCredentials",
                    "schema": {
                      "const": true
                    }
                  }
                }
              }
            ]
          },
          {
            "type": "Control",
            "scope": "#/properties/prefix",
            "options": {
              "markAsRequired": true,
              "contextVariable": true,
              "variableType": "output",
              "allowedDataTypes": []
            },
            "i18n": "variable-prefix"
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/Swagger",
        "locale": "en",
        "content": {
          "swagger-documemt.label": "Swagger Document",
          "service-base.label": "Service Base",
          "variable-prefix.label": "Variable Prefix",
          "validation-options": "Validation Options",
          "validate-path.label": "Validate path",
          "validate-method.label": "Validate method",
          "validate-scheme.label": "Validate scheme",
          "require-security-credentials.label": "Require security credentials to be present",
          "require-security-credentials.inlineAlerts": "Note: Credentials will not be authenticated by this validation option"
        }
      }
    ]
  },
  {
    "configName": "ThroughputQuota",
    "displayNameFormats": [
      {
        "format": "Apply Throughput Quota",
        "condition": "true"
      }
    ],
    "refVariables": [
      {
        "fieldPath": ".variablePrefix",
        "refType": "OUT",
        "dataType": "other",
        "prefixed": true
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".id",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".value",
        "refType": "OUT",
        "dataType": "int"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".period",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".user",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".max",
        "refType": "OUT",
        "dataType": "int"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".reasonCode",
        "refType": "OUT",
        "dataType": "int"
      }
    ],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/ThroughputQuota",
        "title": "Apply Throughput Quota",
        "properties": {
          "byValue": {
            "type": "string"
          },
          "counterName": {
            "type": "string"
          },
          "counterStrategy": {
            "type": "integer",
            "default": 2,
            "enum": [
              1,
              2,
              3,
              4
            ],
            "i18n": "counterStrategy"
          },
          "global": {
            "type": "boolean",
            "default": false
          },
          "logOnly": {
            "type": "boolean",
            "default": false
          },
          "quota": {
            "type": "string"
          },
          "readSynchronous": {
            "type": "boolean",
            "default": false
          },
          "synchronous": {
            "type": "boolean",
            "default": false
          },
          "timeUnit": {
            "type": "string"
          },
          "variablePrefix": {
            "type": "string",
            "default": ""
          },
          "__limitEach": {
            "type": "string",
            "enum": [
              "authenticatedUser",
              "clientIp",
              "soapOperation",
              "soapNamespace",
              "gatewayCluster",
              "custom"
            ],
            "default": "authenticatedUser"
          },
          "__byValueCheckbox": {
            "type": "boolean",
            "default": false
          },
          "__scalability": {
            "type": "string",
            "enum": [
              "consistency",
              "balanced",
              "scalability"
            ],
            "default": "scalability"
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Apply Throughput Quota",
        "elements": [
          {
            "type": "Group",
            "options": {
              "groupType": "wrapCustomClass"
            },
            "elements": [
              {
                "type": "Group",
                "i18n": "quota.heading",
                "options": {
                  "groupType": "wrapCustomClass",
                  "customClass": "quota-group"
                },
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/quota",
                    "i18n": "quota",
                    "options": {
                      "markAsRequired": true
                    }
                  },
                  {
                    "type": "Group",
                    "i18n": "per.label",
                    "options": {
                      "groupType": "wrapCustomClass",
                      "customClass": "per-label"
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/timeUnit",
                    "label": false,
                    "options": {
                      "markAsRequired": true,
                      "autocomplete": true,
                      "defaultOptions": [
                        {
                          "label": "Second",
                          "value": "second"
                        },
                        {
                          "label": "Minute",
                          "value": "minute"
                        },
                        {
                          "label": "Hour",
                          "value": "hour"
                        },
                        {
                          "label": "Day",
                          "value": "day"
                        },
                        {
                          "label": "Month",
                          "value": "month"
                        }
                      ],
                      "allowUserProvidedInput": true
                    }
                  }
                ]
              }
            ],
            "rule": {
              "effect": "HIDE",
              "condition": {
                "scope": "#/properties/counterStrategy",
                "schema": {
                  "enum": [
                    3,
                    4
                  ]
                }
              }
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/__limitEach",
            "i18n": "limitEach",
            "options": {
              "markAsRequired": true
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/logOnly",
            "i18n": "logOnly",
            "rule": {
              "effect": "HIDE",
              "condition": {
                "scope": "#/properties/counterStrategy",
                "schema": {
                  "enum": [
                    3,
                    4
                  ]
                }
              }
            }
          },
          {
            "type": "Group",
            "options": {
              "groupType": "wrapCustomClass"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/counterName",
                "options": {
                  "markAsRequired": true
                },
                "i18n": "counterName",
                "rule": {
                  "effect": "ENABLE",
                  "condition": {
                    "scope": "#/properties/__limitEach",
                    "schema": {
                      "const": "custom"
                    }
                  }
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/counterStrategy",
                "i18n": "counter",
                "options": {
                  "format": "radio",
                  "useRowLayout": false
                }
              }
            ]
          },
          {
            "type": "Group",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "by-value-group"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/__byValueCheckbox",
                "i18n": "__byValueCheckbox"
              },
              {
                "type": "Control",
                "scope": "#/properties/byValue",
                "label": false,
                "options": {
                  "markAsRequired": true
                },
                "rule": {
                  "effect": "SHOW",
                  "condition": {
                    "scope": "#/properties/__byValueCheckbox",
                    "schema": {
                      "const": true
                    }
                  }
                }
              }
            ],
            "rule": {
              "effect": "HIDE",
              "condition": {
                "scope": "#/properties/counterStrategy",
                "schema": {
                  "enum": [
                    4
                  ]
                }
              }
            }
          },
          {
            "type": "Group",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "group-heading"
            },
            "elements": [
              {
                "type": "Group",
                "options": {
                  "groupType": "wrapCustomClass"
                },
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/__scalability",
                    "i18n": "scalability",
                    "options": {
                      "format": "radio",
                      "useRowLayout": false,
                      "defaultOptions": [
                        {
                          "label": "quota.consistency",
                          "value": "consistency",
                          "tooltipText": "consistency.tooltipText"
                        },
                        {
                          "label": "quota.balanced",
                          "value": "balanced",
                          "tooltipText": "balanced.tooltipText"
                        },
                        {
                          "label": "quota.scalability",
                          "value": "scalability",
                          "tooltipText": "scalability.tooltipText"
                        }
                      ]
                    }
                  }
                ]
              }
            ],
            "rule": {
              "effect": "HIDE",
              "condition": {
                "scope": "#/properties/counterStrategy",
                "schema": {
                  "enum": [
                    4
                  ]
                }
              }
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/variablePrefix",
            "options": {
              "customClass": "variable-prefix",
              "contextVariable": true,
              "variableType": "output",
              "allowedDataTypes": []
            }
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/ThroughputQuota",
        "locale": "en",
        "content": {
          "quota.heading": "Quota",
          "quota.consistency": "Consistency",
          "quota.balanced": "Balanced",
          "quota.scalability": "Scalability",
          "limitEach.label": "Limit Each",
          "logOnly.label": "Log only",
          "limitEach.authenticatedUser": "Authenticated User",
          "limitEach.clientIp": "Client IP",
          "limitEach.soapOperation": "SOAP Operation",
          "limitEach.soapNamespace": "SOAP Namespace",
          "limitEach.gatewayCluster": "Gateway Cluster",
          "limitEach.custom": "Custom",
          "counterName.label": "Counter ID",
          "quota.label": "Max",
          "per.label": "per",
          "counter.label": "Counter",
          "counter.1": "Always increment",
          "counter.2": "Increment only when still within quota",
          "counter.3": "Decrement",
          "counter.4": "Reset",
          "__byValueCheckbox.label": "By value",
          "scalability": "Scalability",
          "consistency.tooltipText": "Read and writes are performed synchronously with highest enforcement of quota.",
          "balanced.tooltipText": "Improves scalability but may permit brief quota overflows under rare conditions.",
          "scalability.tooltipText": "Improves scalability further but also permits quota overflows.",
          "quota.error": "Throughput quota must be a value between 1 and 2147483647",
          "quota.context-var.error": "Only a single context variable is allowed for quota",
          "timeUnit.error": "Please enter a valid quota time unit or context variable.",
          "byValue.error": "Please enter an integer for increment value between 0 and 2147483647",
          "byValue.increment-context-var.error": "Only a single context variable is allowed for increment value",
          "byValue.decrement-context-var.error": "Only a single context variable is allowed for decrement value"
        }
      }
    ]
  },
  {
    "configName": "ThroughputQuotaQuery",
    "displayNameFormats": [
      {
        "format": "Query Throughput Quota for counter {{.counterName}}",
        "condition": "true"
      }
    ],
    "refVariables": [
      {
        "fieldPath": ".variablePrefix",
        "refType": "OUT",
        "dataType": "other",
        "prefixed": true
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".counter.name",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".counter.sec",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".counter.min",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".counter.hr",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".counter.day",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".counter.mnt",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".counter.lastupdate",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".",
        "suffix": "counter.name",
        "refType": "OUT",
        "dataType": "string",
        "condition": "isNull({{.variablePrefix}})"
      },
      {
        "fieldPath": ".",
        "suffix": "counter.sec",
        "refType": "OUT",
        "dataType": "string",
        "condition": "isNull({{.variablePrefix}})"
      },
      {
        "fieldPath": ".",
        "suffix": "counter.min",
        "refType": "OUT",
        "dataType": "string",
        "condition": "isNull({{.variablePrefix}})"
      },
      {
        "fieldPath": ".",
        "suffix": "counter.hr",
        "refType": "OUT",
        "dataType": "string",
        "condition": "isNull({{.variablePrefix}})"
      },
      {
        "fieldPath": ".",
        "suffix": "counter.day",
        "refType": "OUT",
        "dataType": "string",
        "condition": "isNull({{.variablePrefix}})"
      },
      {
        "fieldPath": ".",
        "suffix": "counter.mnt",
        "refType": "OUT",
        "dataType": "string",
        "condition": "isNull({{.variablePrefix}})"
      },
      {
        "fieldPath": ".",
        "suffix": "counter.lastupdate",
        "refType": "OUT",
        "dataType": "string",
        "condition": "isNull({{.variablePrefix}})"
      }
    ],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/ThroughputQuotaQuery",
        "title": "Query Throughput Quota",
        "properties": {
          "counterName": {
            "type": "string"
          },
          "variablePrefix": {
            "type": "string"
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Query Throughput Quota",
        "elements": [
          {
            "type": "Control",
            "i18n": "counterName",
            "scope": "#/properties/counterName",
            "options": {
              "markAsRequired": true
            }
          },
          {
            "type": "Control",
            "i18n": "variablePrefix",
            "scope": "#/properties/variablePrefix",
            "options": {
              "contextVariable": true,
              "variableType": "output",
              "allowedDataTypes": []
            }
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/ThroughputQuotaQuery",
        "locale": "en",
        "content": {
          "counterName.label": "Existing Counter Name",
          "variablePrefix.label": "Variable Prefix"
        }
      }
    ]
  },
  {
    "configName": "TimeRange",
    "displayNameFormats": [
      {
        "format": "Limit Availability to Time/Days",
        "condition": "true"
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Limit Availability to Time/Days",
        "elements": [
          {
            "type": "Control",
            "i18n": "controlTime",
            "scope": "#/properties/controlTime"
          },
          {
            "type": "Group",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "time-range-day-group"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/__startTime",
                "i18n": "startTime",
                "options": {
                  "format": "time"
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/__endTime",
                "i18n": "endTime",
                "options": {
                  "format": "time"
                }
              }
            ],
            "rule": {
              "effect": "SHOW",
              "condition": {
                "scope": "#/properties/controlTime",
                "schema": {
                  "const": true
                }
              }
            }
          },
          {
            "type": "Control",
            "i18n": "controlDay",
            "scope": "#/properties/controlDay"
          },
          {
            "type": "Group",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "time-range-day-group"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/startDayOfWeek",
                "i18n": "startDayOfWeek"
              },
              {
                "type": "Control",
                "scope": "#/properties/endDayOfWeek",
                "i18n": "endDayOfWeek"
              }
            ],
            "rule": {
              "effect": "SHOW",
              "condition": {
                "scope": "#/properties/controlDay",
                "schema": {
                  "const": true
                }
              }
            }
          }
        ]
      }
    ],
    "configSchemaPatches": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/TimeRange",
        "patches": [
          {
            "op": "add",
            "path": "/properties/__startTime",
            "value": {
              "type": "string"
            }
          },
          {
            "op": "add",
            "path": "/properties/__endTime",
            "value": {
              "type": "string"
            }
          },
          {
            "op": "add",
            "path": "/properties/startDayOfWeek/type",
            "value": "string"
          },
          {
            "op": "add",
            "path": "/properties/endDayOfWeek/type",
            "value": "string"
          },
          {
            "op": "add",
            "path": "/properties/startDayOfWeek/enum",
            "value": [
              "1",
              "2",
              "3",
              "4",
              "5",
              "6",
              "7"
            ]
          },
          {
            "op": "add",
            "path": "/properties/endDayOfWeek/enum",
            "value": [
              "1",
              "2",
              "3",
              "4",
              "5",
              "6",
              "7"
            ]
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/TimeRange",
        "locale": "en",
        "content": {
          "controlTime.label": "Restrict time of day",
          "controlDay.label": "Restrict day of week",
          "startTime": "Start Time",
          "endTime": "End Time",
          "startDayOfWeek.label": "Start Day",
          "startDayOfWeek.1": "Sunday",
          "startDayOfWeek.2": "Monday",
          "startDayOfWeek.3": "Tuesday",
          "startDayOfWeek.4": "Wednesday",
          "startDayOfWeek.5": "Thursday",
          "startDayOfWeek.6": "Friday",
          "startDayOfWeek.7": "Saturday",
          "endDayOfWeek.label": "End Day",
          "endDayOfWeek.1": "Sunday",
          "endDayOfWeek.2": "Monday",
          "endDayOfWeek.3": "Tuesday",
          "endDayOfWeek.4": "Wednesday",
          "endDayOfWeek.5": "Thursday",
          "endDayOfWeek.6": "Friday",
          "endDayOfWeek.7": "Saturday"
        }
      }
    ]
  },
  {
    "configName": "True",
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Continue Processing"
      }
    ]
  },
  {
    "configName": "UUIDGenerator",
    "displayNameFormats": [
      {
        "format": "Generate UUID",
        "condition": "true"
      }
    ],
    "refVariables": [
      {
        "fieldPath": ".targetVariable",
        "refType": "OUT",
        "dataType": "string",
        "multivalued": true
      }
    ],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/UUIDGenerator",
        "title": "Generate UUID",
        "properties": {
          "maximumQuantity": {
            "type": "number"
          },
          "quantity": {
            "type": "string"
          },
          "targetVariable": {
            "type": "string"
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Generate UUID",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/targetVariable",
            "options": {
              "markAsRequired": true,
              "contextVariable": true,
              "variableType": "output",
              "allowedDataTypes": []
            },
            "i18n": "targetVariable"
          },
          {
            "type": "Control",
            "scope": "#/properties/quantity",
            "options": {
              "markAsRequired": true
            },
            "i18n": "quantity"
          },
          {
            "type": "Control",
            "scope": "#/properties/maximumQuantity",
            "options": {
              "markAsRequired": true
            },
            "i18n": "maximumQuantity"
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/UUIDGenerator",
        "locale": "en",
        "content": {
          "targetVariable.label": "Store UUID In Variable",
          "maximumQuantity.label": "Max Quantity",
          "quantity.label": "Quantity",
          "quantity.error": "The quantity field must be an integer between 1 and 100",
          "maxQuantity.error": "The max quantity field must an integer between 1 and 2147483647"
        }
      }
    ]
  },
  {
    "configName": "ValidateCertificate",
    "refVariables": [
      {
        "fieldPath": ".sourceVariable",
        "refType": "IN",
        "dataType": "cert"
      },
      {
        "fieldPath": ".variablePrefix",
        "refType": "OUT",
        "dataType": "other",
        "prefixed": true
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".passed",
        "refType": "OUT",
        "dataType": "boolean"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".error",
        "refType": "OUT",
        "dataType": "string"
      }
    ],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/ValidateCertificate",
        "title": "Validate Certificate",
        "properties": {
          "sourceVariable": {
            "type": "string"
          },
          "validationType": {
            "type": "string",
            "enum": [
              "CERTIFICATE_ONLY",
              "PATH_VALIDATION",
              "REVOCATION"
            ],
            "default": "CERTIFICATE_ONLY"
          },
          "variablePrefix": {
            "type": "string"
          },
          "logOnly": {
            "type": "boolean",
            "default": false
          },
          "__inlineAlerts": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Validate Certificate",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/__inlineAlerts",
            "options": {
              "inlineAlerts": "warning"
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/sourceVariable",
            "i18n": "sourceVariable",
            "options": {
              "markAsRequired": true
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/validationType",
            "i18n": "validationType"
          },
          {
            "type": "Control",
            "scope": "#/properties/variablePrefix",
            "i18n": "variablePrefix",
            "options": {
              "markAsRequired": true,
              "contextVariable": true,
              "variableType": "output",
              "allowedDataTypes": []
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/logOnly",
            "i18n": "logOnly"
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/ValidateCertificate",
        "locale": "en",
        "content": {
          "label": "Validate Certificate",
          "sourceVariable": "Source Variable",
          "validationType": "Validation Type",
          "variablePrefix.label": "Output Variable Prefix",
          "logOnly.label": "Fail on invalid certificate",
          "level.warning.helper_text": "WARNING: This assertion should not be used for authentication as it does not enforce the possession of the private key.",
          "validationType.CERTIFICATE_ONLY": "Validate",
          "validationType.PATH_VALIDATION": "Validate Certificate Path",
          "validationType.REVOCATION": "Revocation Checking"
        }
      }
    ]
  },
  {
    "configName": "ValidateNonSoapSamlToken",
    "displayNameFormats": [
      {
        "format": "(Non-SOAP) Validate SAML Token Authentication Statement",
        "condition": "and(equals({{.version}}, 0), not(isNull({{.authenticationStatement}})))"
      },
      {
        "format": "(Non-SOAP) Validate SAML Token Authorization Decision Statement",
        "condition": "and(equals({{.version}}, 0), not(isNull({{.authorizationStatement}})))"
      },
      {
        "format": "(Non-SOAP) Validate SAML Token Attribute Statement",
        "condition": "and(equals({{.version}}, 0), not(isNull({{.attributeStatement}})))"
      },
      {
        "format": "(Non-SOAP) Validate SAML Token v2 Authentication Statement",
        "condition": "and(equals({{.version}}, 2), not(isNull({{.authenticationStatement}})))"
      },
      {
        "format": "(Non-SOAP) Validate SAML Token v2 Authorization Decision Statement",
        "condition": "and(equals({{.version}}, 2), not(isNull({{.authorizationStatement}})))"
      },
      {
        "format": "(Non-SOAP) Validate SAML Token v2 Attribute Statement",
        "condition": "and(equals({{.version}}, 2), not(isNull({{.attributeStatement}})))"
      },
      {
        "format": "(Non-SOAP) Validate SAML Token v1 Authentication Statement",
        "condition": "and(equals({{.version}}, 1), not(isNull({{.authenticationStatement}})))"
      },
      {
        "format": "(Non-SOAP) Validate SAML Token v1 Authorization Decision Statement",
        "condition": "and(equals({{.version}}, 1), not(isNull({{.authorizationStatement}})))"
      },
      {
        "format": "(Non-SOAP) Validate SAML Token v1 Attribute Statement",
        "condition": "and(equals({{.version}}, 1), not(isNull({{.attributeStatement}})))"
      },
      {
        "format": "(Non-SOAP) Validate SAML Token",
        "condition": "true"
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "(Non-SOAP) Validate SAML Token",
        "elements": [
          {
            "type": "Categorization",
            "elements": [
              {
                "type": "Category",
                "label": "messageAndVersionStepTitle",
                "description": "messageAndVersionStepDescription",
                "validateFields": [
                  "otherTargetMessageVariable"
                ],
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/target",
                    "options": {
                      "messageTarget": true,
                      "otherTargetMessageVariableLabel": "assertion.common.target.otherTargetContextVariable"
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/__samlVersion",
                    "i18n": "samlVersion"
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/__samlpResponseType",
                    "i18n": "samlpResponseType"
                  }
                ]
              },
              {
                "type": "Category",
                "label": "authenticationStatement",
                "description": "authenticationDescription",
                "validateFields": [
                  "authenticationMethods"
                ],
                "elements": [
                  {
                    "type": "Control",
                    "i18n": "messageAndVersionStepDescription",
                    "scope": "#/properties/authenticationStatement/properties/authenticationMethods",
                    "options": {
                      "multiSelect": true,
                      "placeholder": "Select Authentication Methods"
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/authenticationStatement/properties/customAuthenticationMethods",
                    "i18n": "customAuthenticationMethods"
                  }
                ],
                "rule": {
                  "effect": "SHOW",
                  "condition": {
                    "scope": "#/properties/__samlpResponseType",
                    "schema": {
                      "const": "AUTHENTICATION"
                    }
                  }
                }
              },
              {
                "type": "Category",
                "label": "authorizationStatement",
                "description": "authorizationDescription",
                "validateFields": [
                  "authorizationStatement/resource",
                  "authorizationStatement/action"
                ],
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/authorizationStatement/properties/resource",
                    "i18n": "resource",
                    "options": {
                      "markAsRequired": true
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/authorizationStatement/properties/action",
                    "i18n": "action",
                    "options": {
                      "markAsRequired": true
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/authorizationStatement/properties/actionNamespace",
                    "i18n": "actionNamespace"
                  }
                ],
                "rule": {
                  "effect": "SHOW",
                  "condition": {
                    "scope": "#/properties/__samlpResponseType",
                    "schema": {
                      "const": "AUTHORIZATION"
                    }
                  }
                }
              },
              {
                "type": "Category",
                "label": "attributeStatementStepTitle",
                "description": "attributeStatementStepDescription",
                "validateFields": [
                  "attributeStatement/attributes",
                  "name"
                ],
                "elements": [
                  {
                    "type": "Group",
                    "i18n": "attributeStatement.attributes.label",
                    "options": {
                      "groupType": "wrapCustomClass",
                      "customClass": "label-heading-style"
                    },
                    "elements": [
                      {
                        "type": "Control",
                        "scope": "#/properties/attributeStatement/properties/attributes",
                        "i18n": "attributeStatement.attributes",
                        "options": {
                          "fieldGroup": true,
                          "buttonLabel": "attributeStatement.attributes.btn",
                          "detail": {
                            "type": "VerticalLayout",
                            "elements": [
                              {
                                "type": "Control",
                                "scope": "#/properties/name",
                                "i18n": "attributeStatement.attributes.name",
                                "options": {
                                  "markAsRequired": true
                                }
                              },
                              {
                                "type": "Control",
                                "scope": "#/properties/namespace",
                                "i18n": "attributeStatement.attributes.namespace",
                                "rule": {
                                  "effect": "SHOW",
                                  "condition": {
                                    "scope": "#/properties/__samlVersion",
                                    "schema": {
                                      "enum": [
                                        "0",
                                        "1"
                                      ]
                                    }
                                  }
                                }
                              },
                              {
                                "type": "Group",
                                "options": {
                                  "groupType": "wrapCustomClass"
                                },
                                "elements": [
                                  {
                                    "type": "Group",
                                    "i18n": "attributeStatement.nameFormat.label",
                                    "options": {
                                      "groupType": "wrapCustomClass",
                                      "customClass": "samlp-response-eval-two-elements"
                                    },
                                    "elements": [
                                      {
                                        "type": "HorizontalLayout",
                                        "elements": [
                                          {
                                            "type": "Control",
                                            "scope": "#/properties/__nameFormatType",
                                            "i18n": "attributeStatement.attributes.nameFormatType"
                                          },
                                          {
                                            "type": "Control",
                                            "scope": "#/properties/nameFormat",
                                            "options": {
                                              "markAsRequired": true
                                            },
                                            "rule": {
                                              "effect": "ENABLE",
                                              "condition": {
                                                "scope": "#/properties/__nameFormatType",
                                                "schema": {
                                                  "const": "OTHER"
                                                }
                                              }
                                            }
                                          }
                                        ]
                                      }
                                    ]
                                  }
                                ],
                                "rule": {
                                  "effect": "SHOW",
                                  "condition": {
                                    "scope": "#/properties/__samlVersion",
                                    "schema": {
                                      "enum": [
                                        "0",
                                        "2"
                                      ]
                                    }
                                  }
                                }
                              },
                              {
                                "type": "Control",
                                "scope": "#/properties/__valueType",
                                "i18n": "attributeStatement.attributes.attributeValue",
                                "options": {
                                  "format": "radio",
                                  "subschemaPath": "properties.attributeStatement.properties.attributes.items",
                                  "uiSchemasMap": {
                                    "SPECIFIC": {
                                      "type": "VerticalLayout",
                                      "elements": [
                                        {
                                          "type": "Control",
                                          "scope": "#/properties/value",
                                          "options": {
                                            "multiline": true,
                                            "rows": 3
                                          }
                                        }
                                      ]
                                    }
                                  }
                                }
                              }
                            ]
                          }
                        }
                      }
                    ]
                  }
                ],
                "rule": {
                  "effect": "SHOW",
                  "condition": {
                    "scope": "#/properties/__samlpResponseType",
                    "schema": {
                      "const": "ATTRIBUTE"
                    }
                  }
                }
              },
              {
                "type": "Category",
                "label": "subjectStepTitle",
                "description": "subjectStepDescription",
                "validateFields": [
                  "__holderOfKey",
                  "__senderVouches",
                  "__bearer",
                  "noSubjectConfirmation"
                ],
                "elements": [
                  {
                    "type": "Group",
                    "i18n": "subjectConfirmationMethod.label",
                    "options": {
                      "groupType": "wrapCustomClass"
                    },
                    "elements": [
                      {
                        "type": "Control",
                        "scope": "#/properties/__holderOfKey",
                        "i18n": "holderOfKey"
                      },
                      {
                        "type": "Control",
                        "scope": "#/properties/__senderVouches",
                        "i18n": "senderVouches"
                      },
                      {
                        "type": "Control",
                        "scope": "#/properties/__bearer",
                        "i18n": "bearer",
                        "options": {
                          "format": "checkbox"
                        }
                      },
                      {
                        "type": "Control",
                        "scope": "#/properties/noSubjectConfirmation",
                        "i18n": "noSubjectConfirmation",
                        "options": {
                          "format": "checkbox"
                        }
                      }
                    ]
                  },
                  {
                    "type": "Group",
                    "elements": [
                      {
                        "type": "Group",
                        "i18n": "subjectConfirmationData.label",
                        "options": {
                          "groupType": "wrapCustomClass"
                        },
                        "elements": [
                          {
                            "type": "Control",
                            "scope": "#/properties/subjectConfirmationDataRecipient",
                            "i18n": "subjectConfirmationDataRecipient"
                          },
                          {
                            "type": "Control",
                            "scope": "#/properties/subjectConfirmationDataCheckAddress",
                            "i18n": "subjectConfirmationDataCheckAddress",
                            "options": {
                              "format": "checkbox"
                            }
                          },
                          {
                            "type": "Control",
                            "scope": "#/properties/subjectConfirmationDataCheckValidity",
                            "i18n": "subjectConfirmationDataCheckValidity",
                            "options": {
                              "format": "checkbox"
                            }
                          }
                        ]
                      }
                    ],
                    "rule": {
                      "effect": "SHOW",
                      "condition": {
                        "schema": {
                          "allOf": [
                            {
                              "properties": {
                                "__samlVersion": {
                                  "enum": [
                                    "0",
                                    "2"
                                  ]
                                }
                              },
                              "required": [
                                "__samlVersion"
                              ]
                            },
                            {
                              "anyOf": [
                                {
                                  "properties": {
                                    "__bearer": {
                                      "const": true
                                    }
                                  },
                                  "required": [
                                    "__bearer"
                                  ]
                                },
                                {
                                  "properties": {
                                    "__holderOfKey": {
                                      "const": true
                                    }
                                  },
                                  "required": [
                                    "__holderOfKey"
                                  ]
                                },
                                {
                                  "properties": {
                                    "__senderVouches": {
                                      "const": true
                                    }
                                  },
                                  "required": [
                                    "__senderVouches"
                                  ]
                                }
                              ]
                            }
                          ]
                        }
                      }
                    }
                  }
                ]
              },
              {
                "type": "Category",
                "label": "nameIdentifier",
                "description": "nameIdentifierStepDescription",
                "validateFields": [
                  "nameFormats"
                ],
                "elements": [
                  {
                    "type": "Group",
                    "options": {
                      "groupType": "wrapCustomClass",
                      "customClass": "name-identifier-group"
                    },
                    "elements": [
                      {
                        "type": "Control",
                        "scope": "#/properties/nameFormats",
                        "i18n": "nameFormats",
                        "options": {
                          "format": "checkbox"
                        }
                      },
                      {
                        "type": "Control",
                        "i18n": "nameQualifier",
                        "scope": "#/properties/nameQualifier"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "Category",
                "label": "conditions",
                "description": "conditionsStepDescription",
                "validateFields": [
                  "maxExpiry",
                  "audienceRestriction"
                ],
                "elements": [
                  {
                    "type": "Group",
                    "options": {
                      "groupType": "wrapCustomClass",
                      "customClass": "time-unit-group-style"
                    },
                    "rule": {
                      "effect": "HIDE",
                      "condition": {
                        "scope": "#/properties/useSystemDefaultSessionDuration",
                        "schema": {
                          "const": true
                        }
                      }
                    },
                    "elements": [
                      {
                        "type": "Control",
                        "scope": "#/properties/checkAssertionValidity",
                        "i18n": "checkAssertionValidity"
                      },
                      {
                        "type": "Control",
                        "scope": "#/properties/maxExpiry",
                        "i18n": "maxExpiry",
                        "options": {
                          "markAsRequired": true,
                          "minValue": 0
                        }
                      },
                      {
                        "type": "Control",
                        "scope": "#/properties/timeUnit"
                      }
                    ]
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/audienceRestriction",
                    "i18n": "audienceRestriction"
                  }
                ]
              },
              {
                "type": "Category",
                "label": "embeddedSignature",
                "description": "requireDigitalSignatureDescription",
                "validateFields": [
                  "otherTargetMessageVariable"
                ],
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/requireDigitalSignature",
                    "i18n": "requireDigitalSignature"
                  }
                ]
              }
            ],
            "options": {
              "variant": "apimStepper",
              "wizardTitle": "requireWssSaml2WizardTitle"
            }
          },
          {
            "type": "Group",
            "options": {
              "groupType": "ReadOnlyForm"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/target",
                "options": {
                  "messageTarget": true
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/__samlVersion",
                "i18n": "samlVersion"
              },
              {
                "type": "Group",
                "options": {
                  "groupType": "wrapCustomClass"
                },
                "elements": [
                  {
                    "type": "Group",
                    "label": "Authentication Statement",
                    "options": {
                      "groupType": "Accordion"
                    },
                    "elements": [
                      {
                        "type": "Control",
                        "scope": "#/properties/authenticationStatement/properties/authenticationMethods",
                        "i18n": "messageAndVersionStepDescription",
                        "options": {
                          "multiSelect": true,
                          "readonly": true
                        }
                      }
                    ]
                  }
                ],
                "rule": {
                  "effect": "SHOW",
                  "condition": {
                    "scope": "#/properties/__samlpResponseType",
                    "schema": {
                      "const": "AUTHENTICATION"
                    }
                  }
                }
              },
              {
                "type": "Group",
                "options": {
                  "groupType": "wrapCustomClass"
                },
                "elements": [
                  {
                    "type": "Group",
                    "label": "Authorization Statement",
                    "options": {
                      "groupType": "Accordion"
                    },
                    "elements": [
                      {
                        "type": "Control",
                        "scope": "#/properties/authorizationStatement/properties/resource",
                        "i18n": "resource"
                      },
                      {
                        "type": "Control",
                        "scope": "#/properties/authorizationStatement/properties/action",
                        "i18n": "action"
                      },
                      {
                        "type": "Control",
                        "scope": "#/properties/authorizationStatement/properties/actionNamespace",
                        "i18n": "actionNamespace"
                      }
                    ]
                  }
                ],
                "rule": {
                  "effect": "SHOW",
                  "condition": {
                    "scope": "#/properties/__samlpResponseType",
                    "schema": {
                      "const": "AUTHORIZATION"
                    }
                  }
                }
              },
              {
                "type": "Group",
                "options": {
                  "groupType": "wrapCustomClass"
                },
                "elements": [
                  {
                    "type": "Group",
                    "label": "Attribute Statement",
                    "options": {
                      "groupType": "Accordion"
                    },
                    "elements": [
                      {
                        "type": "Group",
                        "i18n": "attributeStatement.attributes.label",
                        "options": {
                          "groupType": "wrapCustomClass",
                          "customClass": "label-heading-style"
                        },
                        "elements": [
                          {
                            "type": "Control",
                            "scope": "#/properties/attributeStatement/properties/attributes",
                            "i18n": "attributeStatement.attributes",
                            "options": {
                              "fieldGroup": true,
                              "buttonLabel": "attributeStatement.attributes.btn",
                              "detail": {
                                "type": "VerticalLayout",
                                "elements": [
                                  {
                                    "type": "Control",
                                    "scope": "#/properties/name",
                                    "i18n": "attributeStatement.attributes.name",
                                    "options": {
                                      "markAsRequired": true
                                    }
                                  },
                                  {
                                    "type": "Control",
                                    "scope": "#/properties/namespace",
                                    "i18n": "attributeStatement.attributes.namespace",
                                    "rule": {
                                      "effect": "SHOW",
                                      "condition": {
                                        "scope": "#/properties/__samlVersion",
                                        "schema": {
                                          "enum": [
                                            "0",
                                            "1"
                                          ]
                                        }
                                      }
                                    }
                                  },
                                  {
                                    "type": "Group",
                                    "options": {
                                      "groupType": "wrapCustomClass"
                                    },
                                    "elements": [
                                      {
                                        "type": "Group",
                                        "i18n": "attributeStatement.nameFormat.label",
                                        "options": {
                                          "groupType": "wrapCustomClass",
                                          "customClass": "samlp-response-eval-two-elements"
                                        },
                                        "elements": [
                                          {
                                            "type": "HorizontalLayout",
                                            "elements": [
                                              {
                                                "type": "Control",
                                                "scope": "#/properties/__nameFormatType",
                                                "i18n": "attributeStatement.attributes.nameFormatType"
                                              },
                                              {
                                                "type": "Control",
                                                "scope": "#/properties/nameFormat",
                                                "options": {
                                                  "markAsRequired": true
                                                }
                                              }
                                            ]
                                          }
                                        ]
                                      }
                                    ],
                                    "rule": {
                                      "effect": "SHOW",
                                      "condition": {
                                        "scope": "#/properties/__samlVersion",
                                        "schema": {
                                          "enum": [
                                            "0",
                                            "2"
                                          ]
                                        }
                                      }
                                    }
                                  },
                                  {
                                    "type": "Control",
                                    "scope": "#/properties/__valueType",
                                    "i18n": "attributeStatement.attributes.attributeValue",
                                    "options": {
                                      "format": "radio",
                                      "subschemaPath": "properties.attributeStatement.properties.attributes.items",
                                      "uiSchemasMap": {
                                        "SPECIFIC": {
                                          "type": "VerticalLayout",
                                          "elements": [
                                            {
                                              "type": "Control",
                                              "scope": "#/properties/value",
                                              "options": {
                                                "multiline": true,
                                                "rows": 3,
                                                "markAsRequired": true
                                              }
                                            }
                                          ]
                                        }
                                      }
                                    }
                                  }
                                ]
                              }
                            }
                          }
                        ]
                      }
                    ]
                  }
                ],
                "rule": {
                  "effect": "SHOW",
                  "condition": {
                    "scope": "#/properties/__samlpResponseType",
                    "schema": {
                      "const": "ATTRIBUTE"
                    }
                  }
                }
              },
              {
                "type": "Group",
                "options": {
                  "groupType": "wrapCustomClass"
                },
                "elements": [
                  {
                    "type": "Group",
                    "label": "Subject Confirmation",
                    "options": {
                      "groupType": "Accordion"
                    },
                    "elements": [
                      {
                        "type": "Group",
                        "i18n": "subjectConfirmationMethod.label",
                        "options": {
                          "groupType": "wrapCustomClass"
                        },
                        "elements": [
                          {
                            "type": "Control",
                            "scope": "#/properties/__holderOfKey",
                            "i18n": "holderOfKey"
                          },
                          {
                            "type": "Control",
                            "scope": "#/properties/__senderVouches",
                            "i18n": "senderVouches"
                          },
                          {
                            "type": "Control",
                            "scope": "#/properties/__bearer",
                            "i18n": "bearer",
                            "options": {
                              "format": "checkbox"
                            }
                          },
                          {
                            "type": "Control",
                            "scope": "#/properties/noSubjectConfirmation",
                            "i18n": "noSubjectConfirmation",
                            "options": {
                              "format": "checkbox"
                            }
                          }
                        ]
                      },
                      {
                        "type": "Group",
                        "i18n": "subjectConfirmationData.label",
                        "options": {
                          "groupType": "wrapCustomClass"
                        },
                        "elements": [
                          {
                            "type": "Control",
                            "scope": "#/properties/subjectConfirmationDataRecipient",
                            "i18n": "subjectConfirmationDataRecipient"
                          },
                          {
                            "type": "Control",
                            "scope": "#/properties/subjectConfirmationDataCheckAddress",
                            "i18n": "subjectConfirmationDataCheckAddress",
                            "options": {
                              "format": "checkbox"
                            }
                          },
                          {
                            "type": "Control",
                            "scope": "#/properties/subjectConfirmationDataCheckValidity",
                            "i18n": "subjectConfirmationDataCheckValidity",
                            "options": {
                              "format": "checkbox"
                            }
                          }
                        ],
                        "rule": {
                          "effect": "SHOW",
                          "condition": {
                            "scope": "#",
                            "schema": {
                              "anyOf": [
                                {
                                  "properties": {
                                    "__bearer": {
                                      "const": true
                                    }
                                  }
                                }
                              ]
                            }
                          }
                        }
                      }
                    ]
                  }
                ]
              },
              {
                "type": "Group",
                "options": {
                  "groupType": "wrapCustomClass"
                },
                "elements": [
                  {
                    "type": "Group",
                    "label": "Name Identifier",
                    "options": {
                      "groupType": "Accordion"
                    },
                    "elements": [
                      {
                        "type": "Control",
                        "scope": "#/properties/nameFormats",
                        "i18n": "nameFormats",
                        "options": {
                          "format": "checkbox"
                        }
                      },
                      {
                        "type": "Control",
                        "scope": "#/properties/nameQualifier",
                        "i18n": "nameQualifier"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "Group",
                "options": {
                  "groupType": "wrapCustomClass"
                },
                "elements": [
                  {
                    "type": "Group",
                    "label": "Conditions",
                    "options": {
                      "groupType": "Accordion"
                    },
                    "elements": [
                      {
                        "type": "Control",
                        "scope": "#/properties/checkAssertionValidity",
                        "i18n": "checkAssertionValidity"
                      },
                      {
                        "type": "Control",
                        "scope": "#/properties/maxExpiry",
                        "i18n": "maxExpiry"
                      },
                      {
                        "type": "Control",
                        "scope": "#/properties/timeUnit",
                        "i18n": "timeUnit"
                      },
                      {
                        "type": "Control",
                        "scope": "#/properties/audienceRestriction",
                        "i18n": "audienceRestriction"
                      }
                    ]
                  }
                ]
              },
              {
                "type": "Group",
                "options": {
                  "groupType": "wrapCustomClass"
                },
                "elements": [
                  {
                    "type": "Group",
                    "label": "Embedded Signature",
                    "options": {
                      "groupType": "Accordion"
                    },
                    "elements": [
                      {
                        "type": "Control",
                        "scope": "#/properties/requireDigitalSignature",
                        "i18n": "requireDigitalSignature"
                      }
                    ]
                  }
                ]
              }
            ]
          }
        ]
      }
    ],
    "configSchemaPatches": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/ValidateNonSoapSamlToken",
        "patches": [
          {
            "op": "add",
            "path": "/properties/__bearer",
            "value": {
              "type": "boolean"
            }
          },
          {
            "op": "add",
            "path": "/properties/__holderOfKey",
            "value": {
              "type": "boolean"
            }
          },
          {
            "op": "add",
            "path": "/properties/__senderVouches",
            "value": {
              "type": "boolean"
            }
          },
          {
            "op": "add",
            "path": "/properties/__samlVersion",
            "value": {
              "type": "string",
              "enum": [
                "1",
                "2",
                "0"
              ],
              "default": "1"
            }
          },
          {
            "op": "replace",
            "path": "/properties/nameFormats",
            "value": {
              "type": "array",
              "uniqueItems": true,
              "items": {
                "type": "string",
                "enum": [
                  "urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName",
                  "urn:oasis:names:tc:SAML:2.0:nameid-format:entity",
                  "urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress",
                  "urn:oasis:names:tc:SAML:2.0:nameid-format:persistent",
                  "urn:oasis:names:tc:SAML:1.1:nameid-format:WindowsDomainQualifiedName",
                  "urn:oasis:names:tc:SAML:2.0:nameid-format:transient",
                  "urn:oasis:names:tc:SAML:2.0:nameid-format:kerberos",
                  "urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified"
                ]
              }
            }
          },
          {
            "op": "add",
            "path": "/properties/attributeStatement/properties/attributes/items/properties/__nameFormatType",
            "value": {
              "type": "string",
              "enum": [
                "UNSPECIFIED",
                "URI_REF",
                "BASIC",
                "OTHER"
              ],
              "default": "UNSPECIFIED"
            }
          },
          {
            "op": "add",
            "path": "/properties/__samlpResponseType",
            "value": {
              "type": "string",
              "enum": [
                "AUTHENTICATION",
                "AUTHORIZATION",
                "ATTRIBUTE"
              ],
              "default": "AUTHENTICATION"
            }
          },
          {
            "op": "add",
            "path": "/properties/attributeStatement/properties/attributes/items/properties/__valueType",
            "value": {
              "type": "string",
              "enum": [
                "NON_EMPTY",
                "SPECIFIC"
              ],
              "default": "SPECIFIC"
            }
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/ValidateNonSoapSamlToken",
        "locale": "en",
        "content": {
          "requireWssSaml2WizardTitle": "SAML Protocol Profile Wizard",
          "messageAndVersionStepTitle": "Message Target, SAML Version and  Statement",
          "messageAndVersionStepDescription": "Specify the location of the SAMLP response message and the version of SAMLP response",
          "samlVersion.label": "SAML Version",
          "authenticationStatement": "Authentication Method",
          "authorizationStatement": "Authorization Statement",
          "subjectStepTitle": "Subject Confirmation",
          "subjectStepDescription": "Specify one or more subject confirmations that will be accepted by the gateway and whether the message signature is required as the proof material.",
          "subjectConfirmationMethod.label": "Subject Confirmation Methods",
          "holderOfKey.label": "Holder of key",
          "senderVouches.label": "Sender vouches",
          "bearer.label": "Bearer",
          "noSubjectConfirmation.label": "None",
          "nameIdentifier": "Name Identifier",
          "nameIdentifierStepDescription": "Specify one or more name formats that will be accepted by the gateway and the optional subject name qualifier.",
          "nameFormats.label": "Format",
          "nameQualifier.label": "Name Qualifier",
          "nameFormats.urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName": "X.509 subject name",
          "nameFormats.urn:oasis:names:tc:SAML:2.0:nameid-format:entity": "Entity identifier",
          "nameFormats.urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress": "Email address",
          "nameFormats.urn:oasis:names:tc:SAML:2.0:nameid-format:persistent": "Persistent identifier",
          "nameFormats.urn:oasis:names:tc:SAML:1.1:nameid-format:WindowsDomainQualifiedName": "Windows domain qualified name",
          "nameFormats.urn:oasis:names:tc:SAML:2.0:nameid-format:transient": "Transient identifier",
          "nameFormats.urn:oasis:names:tc:SAML:2.0:nameid-format:kerberos": "Kerberos principal name",
          "nameFormats.urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified": "Unspecified",
          "conditions": "Conditions",
          "conditionsStepDescription": "Optionally indicate whether the token's validity period should be checked, whether the token's expiry time should be further restricted, or whether to restrict the audience for the SAML token.",
          "checkAssertionValidity.label": "Check assertion validity period",
          "maxExpiry.label": "Maximum Expiry Time",
          "timeUnit.ms": "Milliseconds",
          "timeUnit.s": "Seconds",
          "timeUnit.m": "Minutes",
          "timeUnit.h": "Hours",
          "timeUnit.d": "Days",
          "audienceRestriction": "Audience Restriction",
          "configureValidation": "Configure Validation",
          "subjectConfirmationData.label": "Subject Confirmation Data",
          "subjectConfirmationDataRecipient.label": "Recipient",
          "subjectConfirmationDataCheckAddress.label": "Check address",
          "subjectConfirmationDataCheckValidity.label": "Check validity period",
          "attributeStatementStepTitle": "Attribute Statement",
          "attributeStatementStepDescription": "\nSpecify the SAML attributes that the SAML statement MUST describe; the Attribute Name [required] The Attribute Namespace [optional] and the AttributeValue",
          "attributeStatement.attributes.label": "Attributes",
          "attributeStatement.attributes.name.label": "Attribute Name",
          "attributeStatement.attributes.namespace.label": "Attribute Namespace",
          "attributeStatement.attributes.nameFormatType.UNSPECIFIED": "Unspecified",
          "attributeStatement.attributes.nameFormatType.URI_REF": "URI Reference",
          "attributeStatement.attributes.nameFormatType.BASIC": "Basic",
          "attributeStatement.attributes.nameFormatType.OTHER": "Other",
          "attributeStatement.nameFormat.label": "Attribute Name Format",
          "attributeStatement.attributes.attributeValue.label": "Attribute Value",
          "attributeStatement.attributes.attributeValue.SPECIFIC": "Specific value",
          "attributeStatement.attributes.attributeValue.NON_EMPTY": "Allow any non-empty value",
          "authenticationDescription": "Specify one or more accepted authentication methods that the SAML statement must assert. ",
          "authorizationDescription": "Specify the resource that the SAML statement MUST describe, the rResource Action, and the Action Namespace",
          "assertionValidity": "Subject Confirmation",
          "resource.label": "Resource",
          "action.label": "Resource Action",
          "actionNamespace": "Action Namespace",
          "samlpResponseType.label": "SAML Statement",
          "samlpResponseType.AUTHENTICATION": "Authentication Statement",
          "samlpResponseType.AUTHORIZATION": "Authorization Decision Statement",
          "samlpResponseType.ATTRIBUTE": "Attribute Statement",
          "atleast.one.subject.required": "Atleast one subject confirmation method selected",
          "atleast.one.format.required": "Atleast one format selected",
          "requireDigitalSignature.label": "Require embedded signature",
          "embeddedSignature": "Embedded Signature",
          "requireDigitalSignatureDescription": "Configure whether the SAML assertion must contain an embedded signature or not. If configured then there must be a Signature element which is a child of the Assertion element that signs the SAML Assertion.",
          "samlVersion.1": "Version 1.x",
          "samlVersion.2": "Version 2.x",
          "samlVersion.0": "All supported versions",
          "attributeStatement.attributes.btn": "Add Attribute",
          "attributeStatement.attributes.err-text": "One attribute is required",
          "audienceRestriction.contains.invalid.characters": "Invalid characters",
          "maxExpiry.exceeds.allowed.length": "Maximum expiry time limit exceeds",
          "customAuthenticationMethods.label": "Custom"
        }
      }
    ]
  },
  {
    "configName": "VariableCredentialSource",
    "displayNameFormats": [
      {
        "format": "Retrieve Credentials from Context Variable: {{.variableName#variable#expression}}",
        "condition": "true"
      }
    ],
    "refVariables": [
      {
        "fieldPath": ".variableName",
        "refType": "IN",
        "dataType": "other"
      }
    ],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/VariableCredentialSource",
        "title": "Retrieve Credentials from Context Variable",
        "properties": {
          "otherTargetMessageVariable": {
            "type": "string"
          },
          "target": {
            "type": "string",
            "enum": [
              "REQUEST",
              "RESPONSE",
              "OTHER"
            ],
            "default": "REQUEST"
          },
          "variableName": {
            "type": "string"
          },
          "__inlineAlerts": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/VariableCredentialSource/Main",
        "title": "Retrieve Credentials from Context Variable",
        "properties": {
          "VariableCredentialSource": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/VariableCredentialSource"
          },
          ".properties": {
            "type": "object",
            "properties": {
              ".enabled": {
                "type": "boolean",
                "default": true
              },
              ".left.comment": {
                "type": "string"
              },
              ".right.comment": {
                "type": "string"
              }
            }
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Retrieve Credentials from Context Variable",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/target",
            "options": {
              "messageTarget": true,
              "otherTargetMessageVariableLabel": "assertion.common.target.otherTargetContextVariable"
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/__inlineAlerts",
            "options": {
              "inlineAlerts": "warning"
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/variableName",
            "options": {
              "markAsRequired": true
            },
            "i18n": "variableName"
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/VariableCredentialSource",
        "locale": "en",
        "content": {
          "variableName.label": "Variable Name",
          "warning": "Only use certificate credentials from an entity that has proven that it possesses the private key (e.g., digital signature or TLS client certificate). For example, do not simply use an XPath expression to extract unverified certificates from the request and use them as credentials."
        }
      }
    ]
  },
  {
    "configName": "WebSocketConnect",
    "refVariables": [
      {
        "fieldPath": ".",
        "suffix": "request",
        "refType": "IN",
        "dataType": "message"
      },
      {
        "fieldPath": ".",
        "suffix": "response",
        "refType": "OUT",
        "dataType": "message"
      },
      {
        "fieldPath": ".",
        "suffix": "websocket.statusCode",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".",
        "suffix": "websocket.reason",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".",
        "suffix": "websocket.url",
        "refType": "OUT",
        "dataType": "string"
      }
    ],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/WebSocketConnect",
        "title": "Connect To Outbound WebSocket",
        "properties": {
          "__source": {
            "type": "string",
            "default": "request"
          },
          "__destination": {
            "type": "string",
            "default": "response"
          },
          "failOnUnsuccessfulConnectionUpgrade": {
            "type": "boolean",
            "default": true
          }
        }
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/WebSocketConnect/Main",
        "title": "Connect To Outbound WebSocket",
        "properties": {
          "WebSocketConnect": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/WebSocketConnect"
          },
          ".properties": {
            "type": "object",
            "properties": {
              ".enabled": {
                "type": "boolean",
                "default": true
              },
              ".left.comment": {
                "type": "string"
              },
              ".right.comment": {
                "type": "string"
              }
            }
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Connect To Outbound WebSocket",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/__source",
            "i18n": "__source",
            "options": {
              "readonly": true
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/__destination",
            "i18n": "__destination",
            "options": {
              "readonly": true
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/failOnUnsuccessfulConnectionUpgrade",
            "i18n": "failOnUnsuccessfulConnectionUpgrade"
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/WebSocketConnect",
        "locale": "en",
        "content": {
          "__destination.label": "Destination",
          "__source.label": "Source",
          "failOnUnsuccessfulConnectionUpgrade.label": "Falsify if the connection upgrade is not successful"
        }
      }
    ]
  },
  {
    "configName": "WsAddressing",
    "displayNameFormats": [
      {
        "format": "Require Signed WS-Addressing",
        "condition": "equals({{.requireSignature}}, true)"
      },
      {
        "format": "Require WS-Addressing",
        "condition": "true"
      }
    ],
    "refVariables": [
      {
        "fieldPath": ".variablePrefix",
        "refType": "OUT",
        "dataType": "other",
        "prefixed": true
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".to",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".action",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".messageid",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".from",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".replyto",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".faultto",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".namespace",
        "refType": "OUT",
        "dataType": "string"
      },
      {
        "fieldPath": ".variablePrefix",
        "suffix": ".elements",
        "refType": "OUT",
        "dataType": "xml",
        "multivalued": true
      }
    ],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/WsAddressing",
        "title": "Require WS-Addressing",
        "properties": {
          "enableOtherNamespace": {
            "type": "string"
          },
          "enableWsAddressing10": {
            "type": "boolean",
            "default": true
          },
          "enableWsAddressing200408": {
            "type": "boolean",
            "default": false
          },
          "__otherNamespace": {
            "type": "boolean",
            "default": false
          },
          "identityTarget": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/sub-types/identityTarget"
          },
          "otherTargetMessageVariable": {
            "type": "string"
          },
          "recipientContext": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/sub-types/xmlSecurityRecipientContext"
          },
          "requireSignature": {
            "type": "boolean",
            "default": false
          },
          "target": {
            "type": "string",
            "enum": [
              "REQUEST",
              "RESPONSE",
              "OTHER"
            ],
            "default": "REQUEST"
          },
          "variablePrefix": {
            "type": "string"
          }
        }
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/sub-types/identityTarget",
        "properties": {
          "identityId": {
            "type": "string"
          },
          "identityInfo": {
            "type": "string"
          },
          "identityProviderOid": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/sub-types/goid"
          },
          "targetIdentityType": {
            "type": "string"
          }
        }
      },
      {
        "type": "string",
        "$id": "https://l7tech.com/2025/json-schema/assertions/sub-types/goid"
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/sub-types/xmlSecurityRecipientContext",
        "properties": {
          "actor": {
            "type": "string"
          },
          "base64edX509Certificate": {
            "type": "string"
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Require WS-Addressing",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/target",
            "options": {
              "messageTarget": true
            }
          },
          {
            "type": "Group",
            "i18n": "permittedVersions",
            "options": {
              "groupType": "wrapCustomClass",
              "markAsRequired": true,
              "customClass": "permittedVersions-group-style"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/enableWsAddressing10",
                "i18n": "enableWsAddressing10"
              },
              {
                "type": "Control",
                "scope": "#/properties/enableWsAddressing200408",
                "i18n": "enableWsAddressing200408"
              },
              {
                "type": "Control",
                "scope": "#/properties/__otherNamespace",
                "i18n": "enableOtherNamespace",
                "options": {
                  "subUiSchema": {
                    "type": "Control",
                    "scope": "#/properties/enableOtherNamespace",
                    "label": false,
                    "options": {
                      "markAsRequired": true
                    }
                  }
                }
              }
            ]
          },
          {
            "type": "Control",
            "scope": "#/properties/variablePrefix",
            "i18n": "variablePrefix",
            "options": {
              "contextVariable": true,
              "variableType": "output",
              "allowedDataTypes": []
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/requireSignature",
            "i18n": "requireSignature"
          },
          {
            "type": "Group",
            "label": "Target Identity",
            "options": {
              "groupType": "ShowHide"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/identityTarget",
                "i18n": "identityTarget",
                "options": {
                  "identityTags": true
                }
              }
            ]
          },
          {
            "type": "Group",
            "label": "WS-Security Recipient",
            "options": {
              "groupType": "ShowHide"
            },
            "elements": [
              {
                "type": "Control",
                "options": {
                  "wssRecipient": true
                }
              }
            ]
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/WsAddressing",
        "locale": "en",
        "content": {
          "enableWsAddressing10.label": "WS-Addressing 1.0",
          "enableWsAddressing200408.label": "WS-Addressing 08/2004",
          "enableOtherNamespace.label": "Other",
          "variablePrefix.label": "Variable Prefix",
          "requireSignature.label": "Require Signature",
          "identityTarget.label": "Select Identity",
          "permittedVersions": "Permitted Versions",
          "error.atleast.one.selected.checkbox": "Must select at least one of: WS-Addressing 1.0, WS-Addressing 2004/08, or Other Namespace"
        }
      }
    ]
  },
  {
    "configName": "WsFederationPassiveTokenExchange",
    "displayNameFormats": [
      {
        "format": "Exchange credentials using WS-Federation Request to {{.ipStsUrl}}",
        "condition": "true"
      }
    ],
    "refVariables": [],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Use WS-Federation Credential (Exchange)",
        "elements": [
          {
            "type": "Control",
            "i18n": "ipStsUrl",
            "scope": "#/properties/ipStsUrl",
            "options": {
              "markAsRequired": true
            }
          },
          {
            "type": "Control",
            "i18n": "replyUrl",
            "scope": "#/properties/replyUrl",
            "options": {
              "markAsRequired": false
            }
          },
          {
            "type": "Control",
            "i18n": "authenticate",
            "scope": "#/properties/authenticate"
          },
          {
            "type": "Control",
            "i18n": "context",
            "scope": "#/properties/context"
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/WsFederationPassiveTokenExchange",
        "locale": "en",
        "content": {
          "ipStsUrl.label": "Token Service URL",
          "replyUrl.label": "Reply URL",
          "authenticate.label": "Authenticate with service",
          "context.label": "Context"
        }
      }
    ]
  },
  {
    "configName": "WsFederationPassiveTokenRequest",
    "displayNameFormats": [
      {
        "format": "Obtain Credentials using WS-Federation Request to {{.ipStsUrl}}",
        "condition": "true"
      }
    ],
    "refVariables": [],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Use WS-Federation Credential (Obtain)",
        "elements": [
          {
            "type": "Control",
            "i18n": "ipStsUrl",
            "scope": "#/properties/ipStsUrl",
            "options": {
              "markAsRequired": true
            }
          },
          {
            "type": "Control",
            "i18n": "replyUrl",
            "scope": "#/properties/replyUrl",
            "options": {
              "markAsRequired": false
            }
          },
          {
            "type": "Control",
            "i18n": "realm",
            "scope": "#/properties/realm"
          },
          {
            "type": "Control",
            "i18n": "authenticate",
            "scope": "#/properties/authenticate"
          },
          {
            "type": "Control",
            "i18n": "context",
            "scope": "#/properties/context"
          },
          {
            "type": "Control",
            "i18n": "timestamp",
            "scope": "#/properties/timestamp"
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/WsFederationPassiveTokenRequest",
        "locale": "en",
        "content": {
          "ipStsUrl.label": "Token Service URL",
          "replyUrl.label": "Reply URL",
          "authenticate.label": "Authenticate with service",
          "context.label": "Context",
          "realm.label": "Realm",
          "timestamp.label": "Include freshness timestamp",
          "realm.error": "Invalid realm"
        }
      }
    ]
  },
  {
    "configName": "WsSecurity",
    "displayNameFormats": [
      {
        "format": "WS-Security",
        "condition": "and(equals({{.applyWsSecurity}}, false), or(isNull({{.clearDecorationRequirements}}), equals({{.clearDecorationRequirements}}, false)))"
      },
      {
        "format": "Clear WS-Security",
        "condition": "and(equals({{.applyWsSecurity}}, false), not(isNull({{.clearDecorationRequirements}})))"
      },
      {
        "format": "Apply WS-Security 1.0",
        "condition": "and(equals({{.wsSecurityVersion}}, WSS10),not(equals({{.target}}, RESPONSE)))"
      },
      {
        "format": "Apply WS-Security 1.1",
        "condition": "and(equals({{.wsSecurityVersion}}, WSS11),not(equals({{.target}}, RESPONSE)))"
      },
      {
        "format": "Apply WS-Security",
        "condition": "true"
      }
    ],
    "refVariables": [
      {
        "fieldPath": ".recipientTrustedCertificateVariable",
        "refType": "IN",
        "dataType": "other"
      }
    ],
    "refEntities": [
      {
        "fieldPath": ".recipientTrustedCertificateGoid",
        "refType": "GOID",
        "entityType": "TrustedCert"
      }
    ],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/WsSecurity",
        "title": "Add or Remove WS-Security",
        "properties": {
          "applyWsSecurity": {
            "type": "boolean",
            "default": true
          },
          "clearDecorationRequirements": {
            "type": "boolean",
            "default": false
          },
          "otherTargetMessageVariable": {
            "type": "string"
          },
          "recipientTrustedCertificateGoid": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/sub-types/goid"
          },
          "recipientTrustedCertificateName": {
            "type": "string"
          },
          "recipientTrustedCertificateVariable": {
            "type": "string"
          },
          "removeUnmatchedSecurityHeaders": {
            "type": "boolean",
            "default": false
          },
          "replaceSecurityHeader": {
            "type": "boolean",
            "default": true
          },
          "target": {
            "type": "string",
            "enum": [
              "REQUEST",
              "RESPONSE",
              "OTHER"
            ],
            "default": "REQUEST"
          },
          "useSecureSpanActor": {
            "type": "boolean",
            "default": false,
            "enum": [
              false,
              true
            ]
          },
          "useSecurityHeaderMustUnderstand": {
            "type": "boolean",
            "default": true
          },
          "wsSecurityVersion": {
            "type": "string",
            "enum": [
              "notSpecified",
              "WSS10",
              "WSS11"
            ]
          },
          "__recipientCertificate": {
            "type": "string",
            "enum": [
              "default",
              "selectedCertificateForDefault",
              "lookupRecipientByName",
              "useCertificateFromContextVariable"
            ]
          },
          "__certificateSubject": {
            "type": "string"
          },
          "__certificateIssuedBy": {
            "type": "string"
          },
          "__selectCertificate": {
            "type": "string"
          }
        }
      },
      {
        "type": "string",
        "$id": "https://l7tech.com/2025/json-schema/assertions/sub-types/goid"
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/WsSecurity/Main",
        "title": "Add or Remove WS-Security",
        "properties": {
          "WsSecurity": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/WsSecurity"
          },
          ".properties": {
            "type": "object",
            "properties": {
              ".enabled": {
                "type": "boolean",
                "default": true
              },
              ".left.comment": {
                "type": "string"
              },
              ".right.comment": {
                "type": "string"
              }
            }
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Add or Remove WS-Security",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/target",
            "i18n": "assertion.common.target",
            "options": {
              "messageTarget": true,
              "otherTargetMessageVariableLabel": "assertion.common.target.otherTargetContextVariable"
            }
          },
          {
            "type": "Group",
            "i18n": "wsSecurityHeaderOptions.heading",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "header-section-heading"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/replaceSecurityHeader",
                "i18n": "replaceSecurityHeader"
              },
              {
                "type": "Control",
                "scope": "#/properties/removeUnmatchedSecurityHeaders",
                "i18n": "removeUnmatchedSecurityHeaders"
              },
              {
                "type": "Control",
                "scope": "#/properties/useSecurityHeaderMustUnderstand",
                "i18n": "useSecurityHeaderMustUnderstand"
              }
            ]
          },
          {
            "type": "Group",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "use-span-action-spacing"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/useSecureSpanActor",
                "i18n": "useSecureSpanActor",
                "options": {
                  "format": "radio",
                  "useRowLayout": false
                }
              }
            ]
          },
          {
            "type": "Group",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "clear-decoration-requirements-spacing"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/clearDecorationRequirements",
                "i18n": "clearDecorationRequirements"
              }
            ]
          },
          {
            "type": "Group",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "apply-ws-security-spacing"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/applyWsSecurity",
                "i18n": "applyWsSecurity"
              }
            ]
          },
          {
            "type": "VerticalLayout",
            "elements": [
              {
                "type": "Group",
                "i18n": "wsSecurityOptions.heading",
                "options": {
                  "groupType": "wrapCustomClass",
                  "customClass": "options-section-heading"
                },
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/wsSecurityVersion",
                    "i18n": "wsSecurityVersion",
                    "rule": {
                      "effect": "HIDE",
                      "condition": {
                        "scope": "#/properties/target",
                        "schema": {
                          "const": "RESPONSE"
                        }
                      }
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/__recipientCertificate",
                    "i18n": "__recipientCertificate"
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/recipientTrustedCertificateGoid",
                    "options": {
                      "trustedCertificates": true,
                      "multiSelectEnabled": false
                    },
                    "rule": {
                      "effect": "SHOW",
                      "condition": {
                        "scope": "#/properties/__recipientCertificate",
                        "schema": {
                          "const": "selectedCertificateForDefault"
                        }
                      }
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/recipientTrustedCertificateName",
                    "i18n": "recipientTrustedCertificateName",
                    "options": {
                      "markAsRequired": true
                    },
                    "rule": {
                      "effect": "SHOW",
                      "condition": {
                        "scope": "#/properties/__recipientCertificate",
                        "schema": {
                          "const": "lookupRecipientByName"
                        }
                      }
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/recipientTrustedCertificateVariable",
                    "i18n": "recipientTrustedCertificateVariable",
                    "options": {
                      "markAsRequired": true
                    },
                    "rule": {
                      "effect": "SHOW",
                      "condition": {
                        "scope": "#/properties/__recipientCertificate",
                        "schema": {
                          "const": "useCertificateFromContextVariable"
                        }
                      }
                    }
                  }
                ]
              }
            ],
            "rule": {
              "effect": "SHOW",
              "condition": {
                "scope": "#/properties/applyWsSecurity",
                "schema": {
                  "const": true
                }
              }
            }
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/WsSecurity",
        "locale": "en",
        "content": {
          "wsSecurityHeaderOptions.heading": "WS-Security Header Options",
          "replaceSecurityHeader.label": "Remove and recreate matching security header (if found)",
          "removeUnmatchedSecurityHeaders.label": "Remove all unmatched security headers",
          "useSecurityHeaderMustUnderstand.label": "Use must understand attribute",
          "useSecureSpanActor.label": "For the Default Recipient",
          "useSecureSpanActor.false": "Omit actor attribute",
          "useSecureSpanActor.true": "Use Layer 7 actor",
          "clearDecorationRequirements.label": "Clear WS-Security",
          "applyWsSecurity.label": "Apply WS-Security",
          "wsSecurityOptions.heading": "WS-Security Options",
          "wsSecurityVersion.label": "Version",
          "wsSecurityVersion.notSpecified": "<Not Specified>",
          "wsSecurityVersion.WSS10": "1.0",
          "wsSecurityVersion.WSS11": "1.1",
          "__recipientCertificate.label": "Default Recipient Certificate",
          "__recipientCertificate.default": "Use Default Certificate",
          "__recipientCertificate.selectedCertificateForDefault": "Use Selected Certificate for Default Recipient",
          "__recipientCertificate.lookupRecipientByName": "Lookup Default Recipient by Name",
          "__recipientCertificate.useCertificateFromContextVariable": "Use Certificate from Context Variable",
          "recipientTrustedCertificateGoid.label": "Name",
          "__certificateSubject.label": "Subject",
          "__certificateIssuedBy.label": "Issued By",
          "__selectCertificate": "Select Certificate",
          "recipientTrustedCertificateName.label": "Name",
          "recipientTrustedCertificateVariable.label": "Context Variable",
          "recipientTrustedCertificateGoid.error": "No Recipient Certificate is configured",
          "recipientTrustedCertificateVariable.error": "Must be a valid certificate variable"
        }
      }
    ]
  },
  {
    "configName": "WsTrustCredentialExchange",
    "displayNameFormats": [
      {
        "format": "Exchange Credentials using WS-Trust Request to {{.tokenServiceUrl}}",
        "condition": "not(isNull({{.tokenServiceUrl}}))"
      }
    ],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/WsTrustCredentialExchange",
        "title": "Exchange Credentials using WS-Trust",
        "properties": {
          "appliesTo": {
            "type": "string"
          },
          "issuer": {
            "type": "string"
          },
          "requestType": {
            "type": "string",
            "enum": [
              "http://schemas.xmlsoap.org/ws/2005/02/trust/Issue",
              "http://schemas.xmlsoap.org/ws/2005/02/trust/Validate"
            ],
            "default": "http://schemas.xmlsoap.org/ws/2005/02/trust/Issue"
          },
          "tokenServiceUrl": {
            "type": "string"
          },
          "wsTrustNamespace": {
            "type": "string",
            "enum": [
              "<Not Specified>",
              "http://docs.oasis-open.org/ws-sx/ws-trust/200512",
              "http://schemas.xmlsoap.org/ws/2005/02/trust",
              "http://schemas.xmlsoap.org/ws/2004/04/trust"
            ]
          }
        }
      },
      {
        "type": "string",
        "$id": "https://l7tech.com/2025/json-schema/assertions/sub-types/wsTrustRequestType",
        "enum": [
          "http://schemas.xmlsoap.org/ws/2005/02/trust/Issue",
          "http://schemas.xmlsoap.org/ws/2005/02/trust/Validate",
          "http://schemas.xmlsoap.org/ws/2005/02/trust/Renew",
          "http://schemas.xmlsoap.org/ws/2005/02/trust/Cancel"
        ]
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/WsTrustCredentialExchange/Main",
        "title": "Exchange Credentials using WS-Trust",
        "properties": {
          "WsTrustCredentialExchange": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/WsTrustCredentialExchange"
          },
          ".properties": {
            "type": "object",
            "properties": {
              ".enabled": {
                "type": "boolean",
                "default": true
              },
              ".left.comment": {
                "type": "string"
              },
              ".right.comment": {
                "type": "string"
              }
            }
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Exchange Credentials using WS-Trust",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/wsTrustNamespace",
            "i18n": "wsTrustNamespace",
            "options": {
              "markAsRequired": true
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/tokenServiceUrl",
            "i18n": "tokenServiceUrl",
            "options": {
              "markAsRequired": true
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/appliesTo",
            "i18n": "appliesTo"
          },
          {
            "type": "Control",
            "scope": "#/properties/issuer",
            "i18n": "issuer"
          },
          {
            "type": "Control",
            "scope": "#/properties/requestType",
            "i18n": "requestType",
            "options": {
              "markAsRequired": true
            }
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/WsTrustCredentialExchange",
        "locale": "en",
        "content": {
          "wsTrustNamespace.label": "WS-Trust Namespace",
          "tokenServiceUrl.label": "Token Service URL",
          "appliesTo.label": "Wsp:AppliesTo URI",
          "issuer.label": "Wst:Issuer URI",
          "requestType.label": "Request Type",
          "requestType.http://schemas.xmlsoap.org/ws/2005/02/trust/Issue": "Issue",
          "requestType.http://schemas.xmlsoap.org/ws/2005/02/trust/Validate": "Validate"
        }
      }
    ]
  },
  {
    "configName": "WsiBsp",
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/WsiBsp",
        "title": "Enforce WS-I BSP Compliance",
        "properties": {
          "auditRequestNonCompliance": {
            "type": "boolean",
            "default": true
          },
          "auditResponseNonCompliance": {
            "type": "boolean",
            "default": true
          },
          "checkRequestMessages": {
            "type": "boolean",
            "default": true
          },
          "checkResponseMessages": {
            "type": "boolean",
            "default": false
          },
          "failOnNonCompliantRequest": {
            "type": "boolean",
            "default": false
          },
          "failOnNonCompliantResponse": {
            "type": "boolean",
            "default": false
          },
          "__checkRequestOptions": {
            "type": "string",
            "enum": [
              "audit_only",
              "audit_and_fail",
              "fail_assertion"
            ],
            "default": "audit_only",
            "i18n": "checkRequestOptions"
          },
          "__checkResponseOptions": {
            "type": "string",
            "enum": [
              "audit_only",
              "audit_and_fail",
              "fail_assertion"
            ],
            "default": "audit_only",
            "i18n": "checkResponseOptions"
          }
        }
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/WsiBsp/Main",
        "title": "Enforce WS-I BSP Compliance",
        "properties": {
          "WsiBsp": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/WsiBsp"
          },
          ".properties": {
            "type": "object",
            "properties": {
              ".enabled": {
                "type": "boolean",
                "default": true
              },
              ".left.comment": {
                "type": "string"
              },
              ".right.comment": {
                "type": "string"
              }
            }
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Enforce WS-I BSP Compliance",
        "elements": [
          {
            "type": "Group",
            "i18n": "requestProcessing",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "WsiBsp-request-processing-style"
            },
            "elements": [
              {
                "type": "Control",
                "i18n": "checkRequestMessages",
                "scope": "#/properties/checkRequestMessages",
                "options": {
                  "subUiSchema": {
                    "type": "Control",
                    "scope": "#/properties/__checkRequestOptions",
                    "label": false,
                    "options": {
                      "format": "radio",
                      "useRowLayout": false
                    }
                  }
                }
              }
            ]
          },
          {
            "type": "Group",
            "i18n": "reponseProcessing",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "WsiBsp-response-processing-style"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/checkResponseMessages",
                "i18n": "checkResponseMessages",
                "options": {
                  "subUiSchema": {
                    "type": "Control",
                    "scope": "#/properties/__checkResponseOptions",
                    "label": false,
                    "options": {
                      "format": "radio",
                      "useRowLayout": false
                    }
                  }
                }
              }
            ]
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/WsiBsp",
        "locale": "en",
        "content": {
          "checkRequestMessages.label": "Check request messages",
          "checkResponseMessages.label": "Check response messages",
          "requestProcessing": "Request Processing",
          "reponseProcessing": "Response Processing",
          "checkRequestOptions.audit_only": "Audit only",
          "checkRequestOptions.audit_and_fail": "Audit and fail",
          "checkRequestOptions.fail_assertion": "Fail assertion",
          "checkResponseOptions.audit_only": "Audit only",
          "checkResponseOptions.audit_and_fail": "Audit and fail",
          "checkResponseOptions.fail_assertion": "Fail assertion"
        }
      }
    ]
  },
  {
    "configName": "WsiSaml",
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/WsiSaml",
        "title": "Enforce WS-I SAML Compliance",
        "properties": {
          "auditRequestNonCompliance": {
            "type": "boolean",
            "default": true
          },
          "auditResponseNonCompliance": {
            "type": "boolean",
            "default": true
          },
          "checkRequestMessages": {
            "type": "boolean",
            "default": true
          },
          "__requestOptions": {
            "type": "string",
            "enum": [
              "AUDIT",
              "AUDIT_FAIL",
              "FAIL"
            ],
            "default": "AUDIT"
          },
          "__responseOptions": {
            "type": "string",
            "enum": [
              "AUDIT",
              "AUDIT_FAIL",
              "FAIL"
            ],
            "default": "AUDIT"
          },
          "checkResponseMessages": {
            "type": "boolean",
            "default": false
          },
          "failOnNonCompliantRequest": {
            "type": "boolean",
            "default": false
          },
          "failOnNonCompliantResponse": {
            "type": "boolean",
            "default": false
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Enforce WS-I SAML Compliance",
        "elements": [
          {
            "type": "Group",
            "i18n": "requestHd",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "WsiSaml-request-wrapper"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/checkRequestMessages",
                "i18n": "checkRequestMessages",
                "options": {
                  "subUiSchema": {
                    "type": "Control",
                    "scope": "#/properties/__requestOptions",
                    "i18n": "requestOptions",
                    "label": false,
                    "options": {
                      "format": "radio",
                      "useRowLayout": false
                    }
                  }
                }
              }
            ]
          },
          {
            "type": "Group",
            "i18n": "responseHd",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "WsiSaml-request-wrapper"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/checkResponseMessages",
                "i18n": "checkResponseMessages",
                "options": {
                  "subUiSchema": {
                    "type": "Control",
                    "scope": "#/properties/__responseOptions",
                    "i18n": "responseOptions",
                    "label": false,
                    "options": {
                      "format": "radio",
                      "useRowLayout": false
                    }
                  }
                }
              }
            ]
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/WsiSaml",
        "locale": "en",
        "content": {
          "checkRequestMessages.label": "Check request messages",
          "checkResponseMessages.label": "Check response messages",
          "requestHd": "Request Processing",
          "responseHd": "Response Processing",
          "responseOptions": "Response",
          "responseOptions.AUDIT": "Audit only",
          "responseOptions.AUDIT_FAIL": "Audit and fail",
          "responseOptions.FAIL": "Fail assertion",
          "requestOptions": "Request",
          "requestOptions.AUDIT": "Audit only",
          "requestOptions.AUDIT_FAIL": "Audit and fail",
          "requestOptions.FAIL": "Fail assertion"
        }
      }
    ]
  },
  {
    "configName": "WssBasic",
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/WssBasic",
        "title": "Require WS-Security UsernameToken Profile Credentials",
        "properties": {
          "otherTargetMessageVariable": {
            "type": "string"
          },
          "recipientContext": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/sub-types/xmlSecurityRecipientContext"
          },
          "target": {
            "type": "string",
            "enum": [
              "REQUEST",
              "RESPONSE",
              "OTHER"
            ],
            "default": "REQUEST"
          }
        }
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/sub-types/xmlSecurityRecipientContext",
        "properties": {
          "actor": {
            "type": "string"
          },
          "base64edX509Certificate": {
            "type": "string"
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Require WS-Security UsernameToken Profile Credentials",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/target",
            "options": {
              "messageTarget": true,
              "otherTargetMessageVariableLabel": "assertion.common.target.otherTargetContextVariable"
            }
          },
          {
            "type": "Group",
            "label": "WS-Security Recipient",
            "options": {
              "groupType": "ShowHide"
            },
            "elements": [
              {
                "type": "Control",
                "options": {
                  "wssRecipient": true
                }
              }
            ]
          }
        ]
      }
    ]
  },
  {
    "configName": "WssConfiguration",
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/WssConfiguration",
        "title": "Configure WS-Security Decoration",
        "properties": {
          "addTimestamp": {
            "type": "boolean",
            "default": true
          },
          "digestAlgorithmName": {
            "type": "string"
          },
          "dynamicPrivateKeyVariable": {
            "type": "string",
            "default": ""
          },
          "encryptSignature": {
            "type": "boolean",
            "default": false
          },
          "encryptionAlgorithmUri": {
            "type": "string"
          },
          "encryptionKeyReference": {
            "type": "string"
          },
          "keyAlias": {
            "type": "string"
          },
          "keyReference": {
            "type": "string"
          },
          "keyWrappingAlgorithmUri": {
            "type": "string"
          },
          "neverSignTimestamp": {
            "type": "boolean",
            "default": false
          },
          "nonDefaultKeystoreId": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/sub-types/goid"
          },
          "omitTimestamp": {
            "type": "boolean",
            "default": false
          },
          "otherTargetMessageVariable": {
            "type": "string"
          },
          "protectTokens": {
            "type": "boolean",
            "default": true
          },
          "recipientContext": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/sub-types/xmlSecurityRecipientContext"
          },
          "referenceDigestAlgorithmName": {
            "type": "string"
          },
          "secureConversationNamespace": {
            "type": "string"
          },
          "signTimestamp": {
            "type": "boolean",
            "default": true
          },
          "signTimestampValue": {
            "type": "string"
          },
          "signWsAddressingHeaders": {
            "type": "boolean",
            "default": false
          },
          "target": {
            "type": "string",
            "enum": [
              "REQUEST",
              "RESPONSE",
              "OTHER"
            ],
            "default": "REQUEST"
          },
          "timestampValue": {
            "type": "string"
          },
          "useDerivedKeys": {
            "type": "boolean",
            "default": false
          },
          "usesDefaultKeyStore": {
            "type": "boolean",
            "default": true
          },
          "usesDynamicPrivateKey": {
            "type": "boolean",
            "default": false
          },
          "wssVersion": {
            "type": "string"
          },
          "__privateKey": {
            "type": "string"
          }
        }
      },
      {
        "type": "string",
        "$id": "https://l7tech.com/2025/json-schema/assertions/sub-types/goid"
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/sub-types/xmlSecurityRecipientContext",
        "properties": {
          "actor": {
            "type": "string",
            "enum": [
              "<Unchanged>",
              "http://schemas.xmlsoap.org/soap/actor/next",
              "http://schemas.xmlsoap.org/soap/actor/ultimateReceiver"
            ],
            "default": "<Unchanged>"
          },
          "base64edX509Certificate": {
            "type": "string"
          }
        }
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/WssConfiguration/Main",
        "title": "Configure WS-Security Decoration",
        "properties": {
          "WssConfiguration": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/WssConfiguration"
          },
          ".properties": {
            "type": "object",
            "properties": {
              ".enabled": {
                "type": "boolean",
                "default": true
              },
              ".left.comment": {
                "type": "string"
              },
              ".right.comment": {
                "type": "string"
              }
            }
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Configure WS-Security Decoration",
        "elements": [
          {
            "type": "Control",
            "i18n": "assertion.common.target",
            "scope": "#/properties/target",
            "options": {
              "messageTarget": true,
              "otherTargetMessageVariableLabel": "assertion.common.target.otherTargetContextVariable"
            }
          },
          {
            "type": "Group",
            "label": "General",
            "isExpanded": true,
            "options": {
              "groupType": "Accordion"
            },
            "elements": [
              {
                "type": "Control",
                "i18n": "wssVersion",
                "scope": "#/properties/wssVersion"
              },
              {
                "type": "Control",
                "i18n": "timestampValue",
                "scope": "#/properties/timestampValue",
                "options": {}
              }
            ]
          },
          {
            "type": "Group",
            "label": "Signing",
            "isExpanded": true,
            "options": {
              "groupType": "Accordion"
            },
            "elements": [
              {
                "type": "Control",
                "i18n": "digestAlgorithmName",
                "scope": "#/properties/digestAlgorithmName"
              },
              {
                "type": "Control",
                "i18n": "referenceDigestAlgorithmName",
                "scope": "#/properties/referenceDigestAlgorithmName"
              },
              {
                "type": "Control",
                "i18n": "keyReference",
                "scope": "#/properties/keyReference"
              },
              {
                "type": "Control",
                "i18n": "signTimestampValue",
                "scope": "#/properties/signTimestampValue",
                "options": {}
              },
              {
                "type": "Control",
                "i18n": "protectTokens",
                "scope": "#/properties/protectTokens"
              },
              {
                "type": "Control",
                "i18n": "encryptSignature",
                "scope": "#/properties/encryptSignature"
              },
              {
                "type": "Control",
                "i18n": "signWsAddressingHeaders",
                "scope": "#/properties/signWsAddressingHeaders"
              }
            ]
          },
          {
            "type": "Group",
            "label": "Encryption",
            "isExpanded": true,
            "options": {
              "groupType": "Accordion"
            },
            "elements": [
              {
                "type": "Control",
                "i18n": "encryptionAlgorithmUri",
                "scope": "#/properties/encryptionAlgorithmUri"
              },
              {
                "type": "Control",
                "i18n": "keyWrappingAlgorithmUri",
                "scope": "#/properties/keyWrappingAlgorithmUri"
              },
              {
                "type": "Control",
                "i18n": "encryptionKeyReference",
                "scope": "#/properties/encryptionKeyReference"
              }
            ]
          },
          {
            "type": "Group",
            "label": "Advanced",
            "isExpanded": true,
            "options": {
              "groupType": "Accordion"
            },
            "elements": [
              {
                "type": "Control",
                "i18n": "useDerivedKeys",
                "scope": "#/properties/useDerivedKeys"
              },
              {
                "type": "Control",
                "i18n": "secureConversationNamespace",
                "scope": "#/properties/secureConversationNamespace",
                "rule": {
                  "effect": "HIDE",
                  "condition": {
                    "scope": "#/properties/useDerivedKeys",
                    "schema": {
                      "const": false
                    }
                  }
                }
              },
              {
                "type": "Group",
                "label": "Private Key",
                "options": {
                  "groupType": "ShowHide"
                },
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/__privateKey",
                    "options": {
                      "privateKey": true,
                      "keyTypeOptions": [
                        "DEFAULT_KEY",
                        "CUSTOM_PRIVATE_KEY"
                      ]
                    }
                  }
                ]
              },
              {
                "type": "Group",
                "label": "WS-Security Recipient",
                "options": {
                  "groupType": "ShowHide"
                },
                "elements": [
                  {
                    "type": "Control",
                    "options": {
                      "wssRecipient": true
                    }
                  }
                ]
              }
            ]
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/WssConfiguration",
        "locale": "en",
        "content": {
          "wssVersion.label": "WS-Security Version",
          "wssVersion.WSS10": "1.0",
          "wssVersion.WSS11": "1.1",
          "timestampValue.label": "Timestamp",
          "digestAlgorithmName.label": "Signature Digest Algorithm",
          "referenceDigestAlgorithmName.label": "Reference Digest",
          "keyReference.label": "Key Reference",
          "signTimestampValue.label": "Timestamp Signature",
          "protectTokens.label": "Sign security tokens",
          "encryptSignature.label": "Encrypt signature",
          "signWsAddressingHeaders.label": "Sign WS-Addressing headers",
          "encryptionAlgorithmUri.label": "Data Encryption Algorithm",
          "keyWrappingAlgorithmUri.label": "Key Encryption Algorithm",
          "encryptionKeyReference.label": "Key Reference",
          "useDerivedKeys.label": "Use derived keys whenever possible",
          "secureConversationNamespace.label": "WS-Secure Conversation Namespace",
          "advance.securityHeaderAttribute.label": "Security Header “Actor” Attribute",
          "advance.recipientCertificate.label": "Recipient Certificate Subject"
        }
      }
    ]
  },
  {
    "configName": "WssDigest",
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/WssDigest",
        "title": "Require WS-Security Password Digest Credentials",
        "properties": {
          "otherTargetMessageVariable": {
            "type": "string"
          },
          "recipientContext": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/sub-types/xmlSecurityRecipientContext"
          },
          "requireNonce": {
            "type": "boolean",
            "default": false
          },
          "requireTimestamp": {
            "type": "boolean",
            "default": false
          },
          "requiredPassword": {
            "type": "string"
          },
          "requiredUsername": {
            "type": "string"
          },
          "target": {
            "type": "string",
            "enum": [
              "REQUEST",
              "RESPONSE",
              "OTHER"
            ],
            "default": "REQUEST"
          }
        }
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/sub-types/xmlSecurityRecipientContext",
        "properties": {
          "actor": {
            "type": "string"
          },
          "base64edX509Certificate": {
            "type": "string"
          }
        }
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/WssDigest/Main",
        "title": "Require WS-Security Password Digest Credentials",
        "properties": {
          "WssDigest": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/WssDigest"
          },
          ".properties": {
            "type": "object",
            "properties": {
              ".enabled": {
                "type": "boolean",
                "default": true
              },
              ".left.comment": {
                "type": "string"
              },
              ".right.comment": {
                "type": "string"
              }
            }
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Require WS-Security Password Digest Credentials",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/target",
            "options": {
              "messageTarget": true,
              "otherTargetMessageVariableLabel": "assertion.common.target.otherTargetContextVariable"
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/requiredUsername",
            "i18n": "requiredUsername"
          },
          {
            "type": "Control",
            "scope": "#/properties/requiredPassword",
            "i18n": "requiredPassword",
            "options": {
              "format": "password"
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/requireTimestamp",
            "i18n": "requireTimestamp"
          },
          {
            "type": "Control",
            "scope": "#/properties/requireNonce",
            "i18n": "requireNonce"
          },
          {
            "type": "Group",
            "label": "WS-Security Recipient",
            "options": {
              "groupType": "ShowHide"
            },
            "elements": [
              {
                "type": "Control",
                "options": {
                  "wssRecipient": true
                }
              }
            ]
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/WssDigest",
        "locale": "en",
        "content": {
          "requiredUsername.label": "Expected Username",
          "requiredPassword.label": "Expected Password",
          "requireNonce.label": "Require nonce",
          "requireTimestamp.label": "Require timestamp",
          "requiredPassword.helper_text": "Note: plaintext password. Consider rewriting as secure password reference instead."
        }
      }
    ]
  },
  {
    "configName": "WssEncryptElement",
    "displayNameFormats": [
      {
        "format": "Encrypt Element {{.xpathExpression.expression}}",
        "condition": "not(isNull({{.xpathExpression.expression}}))"
      },
      {
        "format": "Encrypt Element",
        "condition": "true"
      }
    ],
    "configSchemas": [
      {
        "$id": "https://l7tech.com/2025/json-schema/assertions/WssEncryptElement",
        "title": "Encrypt Element",
        "type": "object",
        "properties": {
          "encryptContentsOnly": {
            "type": "boolean",
            "default": true
          },
          "identityTarget": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/sub-types/identityTarget"
          },
          "keyEncryptionAlgorithm": {
            "type": "string"
          },
          "keyReference": {
            "type": "string",
            "enum": [
              "BinarySecurityToken",
              "SubjectKeyIdentifier",
              "IssuerSerial",
              "KeyName"
            ],
            "default": "SubjectKeyIdentifier"
          },
          "otherTargetMessageVariable": {
            "type": "string"
          },
          "recipientContext": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/sub-types/xmlSecurityRecipientContext"
          },
          "target": {
            "type": "string",
            "enum": [
              "REQUEST",
              "RESPONSE",
              "OTHER"
            ],
            "default": "RESPONSE"
          },
          "xEncAlgorithm": {
            "type": "string",
            "enum": [
              "http://www.w3.org/2001/04/xmlenc#aes128-cbc",
              "http://www.w3.org/2001/04/xmlenc#aes192-cbc",
              "http://www.w3.org/2001/04/xmlenc#aes256-cbc",
              "http://www.w3.org/2001/04/xmlenc#tripledes-cbc",
              "http://www.w3.org/2009/xmlenc11#aes128-gcm",
              "http://www.w3.org/2009/xmlenc11#aes256-gcm"
            ],
            "default": "http://www.w3.org/2001/04/xmlenc#aes128-cbc"
          },
          "xpathExpression": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/sub-types/xpathExpression"
          },
          ".enabled": {
            "type": "boolean",
            "default": true
          },
          ".left.comment": {
            "type": "string"
          },
          ".right.comment": {
            "type": "string"
          }
        }
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/sub-types/identityTarget",
        "properties": {
          "identityId": {
            "type": "string"
          },
          "identityInfo": {
            "type": "string"
          },
          "identityProviderOid": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/sub-types/goid"
          },
          "targetIdentityType": {
            "type": "string",
            "enum": [
              "USER",
              "GROUP",
              "PROVIDER",
              "TAG"
            ]
          }
        }
      },
      {
        "type": "string",
        "$id": "https://l7tech.com/2025/json-schema/assertions/sub-types/goid"
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/sub-types/xmlSecurityRecipientContext",
        "properties": {
          "actor": {
            "type": "string"
          },
          "base64edX509Certificate": {
            "type": "string"
          }
        }
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/sub-types/xpathExpression",
        "properties": {
          "expression": {
            "type": "string"
          },
          "namespaces": {
            "type": "object"
          },
          "xpathVersion": {
            "type": "string",
            "enum": [
              "UNSPECIFIED",
              "XPATH_1_0",
              "XPATH_2_0"
            ],
            "default": "UNSPECIFIED"
          }
        }
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/WssEncryptElement/Main",
        "title": "Encrypt Element",
        "properties": {
          "WssEncryptElement": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/WssEncryptElement"
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Encrypt Element",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/target",
            "options": {
              "messageTarget": true
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/xpathExpression",
            "options": {
              "editXPath": true
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/xEncAlgorithm",
            "i18n": "xEncAlgorithm"
          },
          {
            "type": "Control",
            "scope": "#/properties/keyReference",
            "i18n": "keyReference",
            "options": {
              "format": "radio",
              "useRowLayout": false
            }
          },
          {
            "type": "Group",
            "label": "WS-Security Recipient",
            "options": {
              "groupType": "ShowHide"
            },
            "elements": [
              {
                "type": "Control",
                "options": {
                  "wssRecipient": true
                }
              }
            ]
          },
          {
            "type": "Group",
            "label": "Target Identity",
            "options": {
              "groupType": "ShowHide"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/identityTarget",
                "i18n": "identityTarget",
                "options": {
                  "identityTags": true
                }
              }
            ]
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/WssEncryptElement",
        "locale": "en",
        "content": {
          "keyReference.label": "Encryption Key Reference",
          "keyReference.BinarySecurityToken": "BinarySecurityToken (BST)",
          "keyReference.SubjectKeyIdentifier": "SubjectKeyIdentifier (SKI)",
          "keyReference.IssuerSerial": "Issuer Name / Serial Number",
          "keyReference.KeyName": "Key Name",
          "xEncAlgorithm.label": "Encryption Method",
          "xEncAlgorithm.http://www.w3.org/2001/04/xmlenc#aes128-cbc": "AES 128 CBC",
          "xEncAlgorithm.http://www.w3.org/2001/04/xmlenc#aes192-cbc": "AES 192 CBC",
          "xEncAlgorithm.http://www.w3.org/2001/04/xmlenc#aes256-cbc": "AES 256 CBC",
          "xEncAlgorithm.http://www.w3.org/2001/04/xmlenc#tripledes-cbc": "Triple DES",
          "xEncAlgorithm.http://www.w3.org/2009/xmlenc11#aes128-gcm": "AES 128 GCM",
          "xEncAlgorithm.http://www.w3.org/2009/xmlenc11#aes256-gcm": "AES 256 GCM",
          "identityTarget.label": "Target Identity"
        }
      }
    ]
  },
  {
    "configName": "WssReplayProtection",
    "displayNameFormats": [
      {
        "format": "Protect Against Message Replay",
        "condition": "true"
      }
    ],
    "refVariables": [
      {
        "fieldPath": ".customIdentifierVariable",
        "refType": "IN",
        "dataType": "other"
      }
    ],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/WssReplayProtection",
        "title": "Protect Against Message Replay",
        "properties": {
          "__time": {
            "type": "string",
            "enum": [
              "ms",
              "s",
              "m",
              "h",
              "d"
            ],
            "default": "m"
          },
          "__type": {
            "type": "string",
            "enum": [
              "DEFAULT",
              "CUSTOM"
            ],
            "default": "DEFAULT"
          },
          "customExpiryTime": {
            "type": "integer"
          },
          "customIdentifierVariable": {
            "type": "string"
          },
          "customProtection": {
            "type": "boolean",
            "default": false
          },
          "customScope": {
            "type": "string"
          },
          "identityTarget": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/sub-types/identityTarget"
          },
          "otherTargetMessageVariable": {
            "type": "string"
          },
          "recipientContext": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/sub-types/xmlSecurityRecipientContext"
          },
          "target": {
            "type": "string",
            "enum": [
              "REQUEST",
              "RESPONSE",
              "OTHER"
            ],
            "default": "REQUEST"
          }
        }
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/sub-types/identityTarget",
        "properties": {
          "identityId": {
            "type": "string"
          },
          "identityInfo": {
            "type": "string"
          },
          "identityProviderOid": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/sub-types/goid"
          },
          "targetIdentityType": {
            "type": "string",
            "enum": [
              "USER",
              "GROUP",
              "PROVIDER",
              "TAG"
            ]
          }
        }
      },
      {
        "type": "string",
        "$id": "https://l7tech.com/2025/json-schema/assertions/sub-types/goid"
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/sub-types/xmlSecurityRecipientContext",
        "properties": {
          "actor": {
            "type": "string"
          },
          "base64edX509Certificate": {
            "type": "string"
          }
        }
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/WssReplayProtection/Main",
        "title": "Protect Against Message Replay",
        "properties": {
          "WssReplayProtection": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/WssReplayProtection"
          },
          ".properties": {
            "type": "object",
            "properties": {
              ".enabled": {
                "type": "boolean",
                "default": true
              },
              ".left.comment": {
                "type": "string"
              },
              ".right.comment": {
                "type": "string"
              }
            }
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Protect Against Message Replay",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/target",
            "i18n": "assertion.common.target",
            "options": {
              "messageTarget": true,
              "otherTargetMessageVariableLabel": "assertion.common.target.otherTargetContextVariable"
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/__type",
            "options": {
              "format": "radio",
              "useRowLayout": false
            },
            "i18n": "type"
          },
          {
            "type": "Group",
            "options": {
              "groupType": "wrapCustomClass",
              "labelColor": "pageTitle",
              "customClass": "protest-against-message-replay-group"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/customScope",
                "i18n": "customScope"
              },
              {
                "type": "Control",
                "scope": "#/properties/customIdentifierVariable",
                "i18n": "customIdentifierVariable",
                "options": {
                  "markAsRequired": true
                }
              },
              {
                "type": "Group",
                "options": {
                  "groupType": "wrapCustomClass",
                  "customClass": "protest-against-message-replay-sub-group"
                },
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/customExpiryTime",
                    "label": false,
                    "options": {
                      "markAsRequired": true
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/__time",
                    "i18n": "lifetimeTimeUnit",
                    "label": false
                  }
                ]
              }
            ],
            "rule": {
              "effect": "SHOW",
              "condition": {
                "scope": "#/properties/__type",
                "schema": {
                  "const": "CUSTOM"
                }
              }
            }
          },
          {
            "type": "Group",
            "label": "WS-Security Recipient",
            "options": {
              "groupType": "ShowHide"
            },
            "elements": [
              {
                "type": "Control",
                "options": {
                  "wssRecipient": true
                }
              }
            ]
          },
          {
            "type": "Group",
            "label": "Target Identity",
            "options": {
              "groupType": "ShowHide"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/identityTarget",
                "i18n": "identityTarget",
                "options": {
                  "identityTags": true
                }
              }
            ]
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/WssReplayProtection",
        "locale": "en",
        "content": {
          "type.DEFAULT": "Default",
          "type.CUSTOM": "Custom",
          "type.label": "Scope",
          "customScope.label": "Scope",
          "customIdentifierVariable.label": "Identifier Variable",
          "customExpiryTime.label": "Expiry",
          "lifetimeTimeUnit.ms": "Milliseconds",
          "lifetimeTimeUnit.s": "Seconds",
          "lifetimeTimeUnit.m": "Minutes",
          "lifetimeTimeUnit.h": "Hours",
          "lifetimeTimeUnit.d": "Days",
          "expirePeriod.error": "Expiry must be greater than zero and less than 25 days"
        }
      }
    ]
  },
  {
    "configName": "WssSignElement",
    "displayNameFormats": [
      {
        "format": "Sign Element {{.xpathExpression.expression}}",
        "condition": "and(not(isNull({{.xpathExpression.expression}})))"
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Sign Element",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/target",
            "options": {
              "messageTarget": true
            }
          },
          {
            "type": "Group",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "field-flex-style"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/xpathExpression",
                "i18n": "xpathExpression.expression",
                "options": {
                  "editXPath": true
                }
              }
            ]
          },
          {
            "type": "Control",
            "scope": "#/properties/keyReference",
            "i18n": "keyReference",
            "options": {
              "format": "radio",
              "useRowLayout": false
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/protectTokens",
            "i18n": "protectTokens"
          },
          {
            "type": "Control",
            "scope": "#/properties/digestAlgorithmName",
            "i18n": "digestAlgorithmName"
          },
          {
            "type": "Group",
            "label": "Private Key",
            "options": {
              "groupType": "ShowHide"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/__privateKey",
                "options": {
                  "privateKey": true,
                  "keyTypeOptions": [
                    "DEFAULT_KEY",
                    "CUSTOM_PRIVATE_KEY"
                  ]
                }
              }
            ]
          }
        ]
      }
    ],
    "configSchemaPatches": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/WssSignElement",
        "patches": [
          {
            "op": "add",
            "path": "/properties/__privateKey",
            "value": {
              "type": "string"
            }
          },
          {
            "op": "add",
            "path": "/properties/keyReference/enum",
            "value": [
              "BinarySecurityToken",
              "SubjectKeyIdentifier",
              "IssuerSerial"
            ]
          },
          {
            "op": "add",
            "path": "/properties/keyReference/default",
            "value": "BinarySecurityToken"
          },
          {
            "op": "add",
            "path": "/properties/digestAlgorithmName/enum",
            "value": [
              "Automatic",
              "SHA-1",
              "SHA-256",
              "SHA-384",
              "SHA-512"
            ]
          },
          {
            "op": "add",
            "path": "/properties/digestAlgorithmName/default",
            "value": "Automatic"
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "WssSignElement/Main",
        "locale": "en",
        "content": {
          "xpathExpression.expression.label": "XPath",
          "keyReference.label": "Signature Key Reference",
          "keyReference.BinarySecurityToken": "BinarySecurityToken (BST)",
          "keyReference.SubjectKeyIdentifier": "SubjectKeyIdentifier (SKI)",
          "keyReference.IssuerSerial": "Issuer Name / Serial Number",
          "protectTokens.label": "Signed",
          "digestAlgorithmName.label": "Signature Digest Algorithm"
        }
      }
    ]
  },
  {
    "configName": "WssVersion",
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Use WS-Security 1.1"
      }
    ]
  },
  {
    "configName": "Wssp",
    "displayNameFormats": [
      {
        "format": "Enforce WS-Security Policy Compliance",
        "condition": "true"
      }
    ],
    "refVariables": [],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/Wssp",
        "title": "Enforce WS-Security Policy Compliance",
        "properties": {
          "basePolicyXml": {
            "type": "string"
          },
          "inputPolicyXml": {
            "type": "string"
          },
          "outputPolicyXml": {
            "type": "string"
          }
        }
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/Wssp/Main",
        "title": "Enforce WS-Security Policy Compliance",
        "properties": {
          "Wssp": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/Wssp"
          },
          ".properties": {
            "type": "object",
            "properties": {
              ".enabled": {
                "type": "boolean",
                "default": true
              },
              ".left.comment": {
                "type": "string"
              },
              ".right.comment": {
                "type": "string"
              }
            }
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Enforce WS-Security Policy Compliance",
        "elements": []
      }
    ]
  },
  {
    "configName": "XMPPAssociateSessions",
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/XMPPAssociateSessions",
        "title": "XMPP Associate Sessions",
        "properties": {
          "inboundSessionId": {
            "type": "string"
          },
          "outboundSessionId": {
            "type": "string"
          }
        }
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/XMPPAssociateSessions/Main",
        "title": "XMPP Associate Sessions",
        "properties": {
          "XMPPAssociateSessions": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/XMPPAssociateSessions"
          },
          ".properties": {
            "type": "object",
            "properties": {
              ".enabled": {
                "type": "boolean",
                "default": true
              },
              ".left.comment": {
                "type": "string"
              },
              ".right.comment": {
                "type": "string"
              }
            }
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "XMPP Associate Sessions",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/inboundSessionId",
            "i18n": "inboundSessionId",
            "options": {
              "markAsRequired": true
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/outboundSessionId",
            "i18n": "outboundSessionId",
            "options": {
              "markAsRequired": true
            }
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/XMPPAssociateSessions",
        "locale": "en",
        "content": {
          "outboundSessionId.label": "Outbound Session ID",
          "inboundSessionId.label": "Inbound Session ID"
        }
      }
    ]
  },
  {
    "configName": "XMPPCloseSession",
    "displayNameFormats": [
      {
        "format": "Close XMPP Session",
        "condition": "true"
      }
    ],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/XMPPCloseSession",
        "title": "Close XMPP Session",
        "properties": {
          "inbound": {
            "type": "boolean"
          },
          "__direction": {
            "type": "string",
            "enum": [
              "TO_CLIENT",
              "TO_SERVER"
            ]
          },
          "sessionId": {
            "type": "string"
          }
        }
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/XMPPCloseSession/Main",
        "title": "Close XMPP Session",
        "properties": {
          "XMPPCloseSession": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/XMPPCloseSession"
          },
          ".properties": {
            "type": "object",
            "properties": {
              ".enabled": {
                "type": "boolean",
                "default": true
              },
              ".left.comment": {
                "type": "string"
              },
              ".right.comment": {
                "type": "string"
              }
            }
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Close XMPP Session",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/sessionId",
            "i18n": "sessionId",
            "options": {
              "markAsRequired": true
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/__direction",
            "i18n": "direction",
            "options": {
              "markAsRequired": true
            }
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/XMPPCloseSession",
        "locale": "en",
        "content": {
          "sessionId.label": "Session ID",
          "direction.label": "Direction",
          "direction.TO_CLIENT": "To Client",
          "direction.TO_SERVER": "To Server"
        }
      }
    ]
  },
  {
    "configName": "XMPPGetAssociatedSessionId",
    "refVariables": [
      {
        "fieldPath": ".variableName",
        "refType": "OUT",
        "dataType": "int"
      }
    ],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/XMPPGetAssociatedSessionId",
        "title": "XMPP Get Session ID",
        "properties": {
          "inbound": {
            "type": "boolean",
            "default": true
          },
          "sessionId": {
            "type": "string"
          },
          "variableName": {
            "type": "string"
          },
          "__directionOption": {
            "type": "string",
            "enum": [
              "ClientServer",
              "ServerClient"
            ],
            "default": "ClientServer"
          }
        }
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/XMPPGetAssociatedSessionId/Main",
        "title": "XMPP Get Session ID",
        "properties": {
          "XMPPGetAssociatedSessionId": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/XMPPGetAssociatedSessionId"
          },
          ".properties": {
            "type": "object",
            "properties": {
              ".enabled": {
                "type": "boolean",
                "default": true
              },
              ".left.comment": {
                "type": "string"
              },
              ".right.comment": {
                "type": "string"
              }
            }
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "XMPP Get Session ID",
        "elements": [
          {
            "type": "Control",
            "i18n": "directionOption",
            "scope": "#/properties/__directionOption",
            "options": {
              "markAsRequired": true
            }
          },
          {
            "type": "Control",
            "i18n": "sessionId",
            "scope": "#/properties/sessionId",
            "options": {
              "markAsRequired": true
            }
          },
          {
            "type": "Control",
            "i18n": "variableName",
            "scope": "#/properties/variableName",
            "options": {
              "markAsRequired": true
            }
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/XMPPGetAssociatedSessionId",
        "locale": "en",
        "content": {
          "common.error.required.field": "This is a required field",
          "directionOption.label": "Direction",
          "directionOption.ClientServer": "Client to Server",
          "directionOption.ServerClient": "Server to Client",
          "sessionId.label": "Session ID",
          "variableName.error": "The variable name is not valid",
          "sessionId.error": "The Session ID is not valid",
          "variableName.label": "Variable Name"
        }
      }
    ]
  },
  {
    "configName": "XMPPGetRemoteCertificate",
    "displayNameFormats": [
      {
        "format": "XMPP Get Client Certificate",
        "condition": "true"
      }
    ],
    "refVariables": [
      {
        "fieldPath": ".variableName",
        "refType": "OUT",
        "dataType": "cert"
      }
    ],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/XMPPGetRemoteCertificate",
        "title": "XMPP Get Client Certificate",
        "properties": {
          "__direction": {
            "type": "string",
            "enum": [
              "TO_CLIENT",
              "TO_SERVER"
            ]
          },
          "inbound": {
            "type": "boolean",
            "default": false
          },
          "sessionId": {
            "type": "string"
          },
          "variableName": {
            "type": "string"
          }
        }
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/XMPPGetRemoteCertificate/Main",
        "title": "XMPP Get Client Certificate",
        "properties": {
          "XMPPGetRemoteCertificate": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/XMPPGetRemoteCertificate"
          },
          ".properties": {
            "type": "object",
            "properties": {
              ".enabled": {
                "type": "boolean",
                "default": true
              },
              ".left.comment": {
                "type": "string"
              },
              ".right.comment": {
                "type": "string"
              }
            }
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "XMPP Get Client Certificate",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/sessionId",
            "i18n": "sessionId",
            "options": {
              "markAsRequired": true
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/__direction",
            "i18n": "direction",
            "options": {
              "markAsRequired": true
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/variableName",
            "i18n": "variableName",
            "options": {
              "markAsRequired": true
            }
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/XMPPGetRemoteCertificate",
        "locale": "en",
        "content": {
          "sessionId.label": "Session ID",
          "direction.label": "Direction",
          "direction.TO_CLIENT": "To Client",
          "direction.TO_SERVER": "To Server",
          "variableName.label": "Variable Name",
          "variable.helper_text": "Must start with a letter or underscore. May contain letters, digits, periods, dashes, or underscores."
        }
      }
    ]
  },
  {
    "configName": "XMPPGetSessionAttribute",
    "refVariables": [
      {
        "fieldPath": ".variableName",
        "refType": "OUT",
        "dataType": "int"
      }
    ],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/XMPPGetSessionAttribute",
        "title": "XMPP Get Session Attribute",
        "properties": {
          "attributeName": {
            "type": "string"
          },
          "inbound": {
            "type": "string",
            "default": "1",
            "enum": [
              "1",
              "2"
            ],
            "i18n": "inbound"
          },
          "sessionId": {
            "type": "string"
          },
          "variableName": {
            "type": "string"
          }
        }
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/XMPPGetSessionAttribute/Main",
        "title": "XMPP Get Session Attribute",
        "properties": {
          "XMPPGetSessionAttribute": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/XMPPGetSessionAttribute"
          },
          ".properties": {
            "type": "object",
            "properties": {
              ".enabled": {
                "type": "boolean",
                "default": true
              },
              ".left.comment": {
                "type": "string"
              },
              ".right.comment": {
                "type": "string"
              }
            }
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "XMPP Get Session Attribute",
        "elements": [
          {
            "type": "Control",
            "i18n": "inbound",
            "scope": "#/properties/inbound"
          },
          {
            "type": "Control",
            "i18n": "sessionId",
            "scope": "#/properties/sessionId",
            "options": {
              "markAsRequired": true
            }
          },
          {
            "type": "Control",
            "i18n": "attributeName",
            "scope": "#/properties/attributeName",
            "options": {
              "markAsRequired": true
            }
          },
          {
            "type": "Control",
            "i18n": "variableName",
            "scope": "#/properties/variableName",
            "options": {
              "markAsRequired": true
            }
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/XMPPGetSessionAttribute",
        "locale": "en",
        "content": {
          "inbound.label": "Direction",
          "inbound.1": "Client to Server",
          "inbound.2": "Server to Client",
          "sessionId.label": "Session ID",
          "attributeName.label": "Attribute Name",
          "variableName.label": "Output Variable Name"
        }
      }
    ]
  },
  {
    "configName": "XMPPOpenServerSession",
    "displayNameFormats": [
      {
        "format": "Open XMPP Server Session [{{.xMPPConnectionId}}]",
        "condition": "not(isNull({{.xMPPConnectionId}}))"
      },
      {
        "format": "Open XMPP Server Session",
        "condition": "true"
      }
    ],
    "refVariables": [
      {
        "fieldPath": ".",
        "suffix": "xmpp.outbound.sessionID",
        "refType": "OUT",
        "dataType": "string"
      }
    ],
    "refEntities": [
      {
        "fieldPath": ".xMPPConnectionId",
        "refType": "GOID",
        "entityType": "GenericEntity"
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Open XMPP Server Session",
        "elements": [
          {
            "type": "Control",
            "i18n": "xMPPConnectionId",
            "scope": "#/properties/xMPPConnectionId"
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/XMPPOpenServerSession",
        "locale": "en",
        "content": {
          "xMPPConnectionId.label": "XMPP Connection"
        }
      }
    ]
  },
  {
    "configName": "XMPPSendToRemoteHost",
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/XMPPSendToRemoteHost",
        "title": "Send To Remote XMPP Host",
        "properties": {
          "currentSecurityHeaderHandling": {
            "type": "integer",
            "default": 0
          },
          "otherTargetMessageVariable": {
            "type": "string"
          },
          "recipientContext": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/sub-types/xmlSecurityRecipientContext"
          },
          "requestTarget": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/sub-types/messageTargetableSupport"
          },
          "sessionId": {
            "type": "string"
          },
          "target": {
            "type": "string",
            "enum": [
              "REQUEST",
              "RESPONSE",
              "OTHER"
            ],
            "default": "REQUEST"
          },
          "toOutboundConnection": {
            "type": "string",
            "enum": [
              "true",
              "false"
            ]
          },
          "xmlSecurityActorToPromote": {
            "type": "string"
          }
        }
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/sub-types/xmlSecurityRecipientContext",
        "properties": {
          "actor": {
            "type": "string"
          },
          "base64edX509Certificate": {
            "type": "string"
          }
        }
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/sub-types/messageTargetableSupport",
        "properties": {
          "otherTargetMessageVariable": {
            "type": "string"
          },
          "sourceUsedByGateway": {
            "type": "boolean",
            "default": true
          },
          "target": {
            "type": "string",
            "enum": [
              "REQUEST",
              "RESPONSE",
              "OTHER"
            ],
            "default": "REQUEST"
          },
          "targetModifiedByGateway": {
            "type": "boolean",
            "default": false
          }
        }
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/XMPPSendToRemoteHost/Main",
        "title": "Send To Remote XMPP Host",
        "properties": {
          "XMPPSendToRemoteHost": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/XMPPSendToRemoteHost"
          },
          ".properties": {
            "type": "object",
            "properties": {
              ".enabled": {
                "type": "boolean",
                "default": true
              },
              ".left.comment": {
                "type": "string"
              },
              ".right.comment": {
                "type": "string"
              }
            }
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Send To Remote XMPP Host",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/target",
            "i18n": "target",
            "options": {
              "messageTarget": true,
              "otherTargetMessageVariableLabel": "assertion.common.target.otherTargetContextVariable"
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/toOutboundConnection",
            "i18n": "toOutboundConnection",
            "options": {
              "markAsRequired": true
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/sessionId",
            "i18n": "sessionId",
            "options": {
              "markAsRequired": true
            }
          },
          {
            "type": "Group",
            "label": "WS-Security Recipient",
            "options": {
              "groupType": "ShowHide"
            },
            "elements": [
              {
                "type": "Control",
                "options": {
                  "wssRecipient": true
                }
              }
            ]
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/XMPPSendToRemoteHost",
        "locale": "en",
        "content": {
          "target.label": "Message Target",
          "toOutboundConnection.label": "Direction",
          "toOutboundConnection.true": "To Server",
          "toOutboundConnection.false": "To Client",
          "sessionId.label": "Client Session ID"
        }
      }
    ]
  },
  {
    "configName": "XMPPSetSessionAttribute",
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/XMPPSetSessionAttribute",
        "title": "XMPP Set Session Attribute",
        "properties": {
          "attributeName": {
            "type": "string"
          },
          "inbound": {
            "type": "string",
            "default": "1",
            "enum": [
              "1",
              "2"
            ],
            "i18n": "inbound"
          },
          "sessionId": {
            "type": "string"
          },
          "value": {
            "type": "string"
          }
        }
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/XMPPSetSessionAttribute/Main",
        "title": "XMPP Set Session Attribute",
        "properties": {
          "XMPPSetSessionAttribute": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/XMPPSetSessionAttribute"
          },
          ".properties": {
            "type": "object",
            "properties": {
              ".enabled": {
                "type": "boolean",
                "default": true
              },
              ".left.comment": {
                "type": "string"
              },
              ".right.comment": {
                "type": "string"
              }
            }
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "XMPP Set Session Attribute",
        "elements": [
          {
            "type": "Control",
            "i18n": "inbound",
            "scope": "#/properties/inbound"
          },
          {
            "type": "Control",
            "i18n": "sessionId",
            "scope": "#/properties/sessionId",
            "options": {
              "markAsRequired": true
            }
          },
          {
            "type": "Control",
            "i18n": "attributeName",
            "scope": "#/properties/attributeName",
            "options": {
              "markAsRequired": true
            }
          },
          {
            "type": "Control",
            "i18n": "value",
            "scope": "#/properties/value"
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/XMPPSetSessionAttribute",
        "locale": "en",
        "content": {
          "inbound.label": "Direction",
          "inbound.1": "Client to Server",
          "inbound.2": "Server to Client",
          "sessionId": "Session ID",
          "variableName": "Value"
        }
      }
    ]
  },
  {
    "configName": "XMPPStartTLS",
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/XMPPStartTLS",
        "title": "Start TLS On XMPP Session",
        "properties": {
          "clientAuthType": {
            "type": "string",
            "enum": [
              "NONE",
              "OPTIONAL",
              "REQUIRED"
            ],
            "default": "NONE"
          },
          "currentSecurityHeaderHandling": {
            "type": "integer",
            "default": 0
          },
          "otherTargetMessageVariable": {
            "type": "string"
          },
          "privateKeyId": {
            "type": "string"
          },
          "__privateKey": {
            "type": "string"
          },
          "provideClientCert": {
            "type": "boolean",
            "default": false
          },
          "recipientContext": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/sub-types/xmlSecurityRecipientContext"
          },
          "requestTarget": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/sub-types/messageTargetableSupport"
          },
          "sessionId": {
            "type": "string"
          },
          "tLSSelectedVersion": {
            "type": "string",
            "enum": [
              "TLSv1",
              "TLSv1.1",
              "TLSv1.2"
            ],
            "default": "TLSv1"
          },
          "target": {
            "type": "string",
            "enum": [
              "REQUEST",
              "RESPONSE",
              "OTHER"
            ],
            "default": "REQUEST"
          },
          "toServer": {
            "type": "boolean",
            "default": false
          },
          "xmlSecurityActorToPromote": {
            "type": "string"
          },
          "__directionOption": {
            "type": "string",
            "enum": [
              "Server",
              "Client"
            ],
            "default": "Client"
          }
        }
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/sub-types/xmlSecurityRecipientContext",
        "properties": {
          "actor": {
            "type": "string"
          },
          "base64edX509Certificate": {
            "type": "string"
          }
        }
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/sub-types/messageTargetableSupport",
        "properties": {
          "otherTargetMessageVariable": {
            "type": "string"
          },
          "sourceUsedByGateway": {
            "type": "boolean",
            "default": true
          },
          "target": {
            "type": "string",
            "enum": [
              "REQUEST",
              "RESPONSE",
              "OTHER"
            ],
            "default": "REQUEST"
          },
          "targetModifiedByGateway": {
            "type": "boolean",
            "default": false
          }
        }
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/XMPPStartTLS/Main",
        "title": "Start TLS On XMPP Session",
        "properties": {
          "XMPPStartTLS": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/XMPPStartTLS"
          },
          ".properties": {
            "type": "object",
            "properties": {
              ".enabled": {
                "type": "boolean",
                "default": true
              },
              ".left.comment": {
                "type": "string"
              },
              ".right.comment": {
                "type": "string"
              }
            }
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Start TLS On XMPP Session",
        "elements": [
          {
            "type": "Control",
            "i18n": "assertion.common.target",
            "scope": "#/properties/target",
            "options": {
              "messageTarget": true,
              "otherTargetMessageVariableLabel": "assertion.common.target.otherTargetContextVariable"
            }
          },
          {
            "type": "Control",
            "i18n": "sessionId",
            "scope": "#/properties/sessionId",
            "options": {
              "markAsRequired": true
            }
          },
          {
            "type": "Control",
            "i18n": "direction",
            "scope": "#/properties/__directionOption",
            "options": {
              "markAsRequired": true
            }
          },
          {
            "type": "Control",
            "i18n": "tLSSelectedVersion",
            "scope": "#/properties/tLSSelectedVersion",
            "options": {
              "markAsRequired": true
            }
          },
          {
            "type": "Control",
            "i18n": "clientAuthType",
            "scope": "#/properties/clientAuthType",
            "options": {
              "markAsRequired": true
            },
            "rule": {
              "effect": "SHOW",
              "condition": {
                "scope": "#/properties/__directionOption",
                "schema": {
                  "const": "Client"
                }
              }
            }
          },
          {
            "type": "Control",
            "i18n": "provideClientCert",
            "scope": "#/properties/provideClientCert",
            "options": {
              "markAsRequired": true
            },
            "rule": {
              "effect": "SHOW",
              "condition": {
                "scope": "#/properties/__directionOption",
                "schema": {
                  "const": "Server"
                }
              }
            }
          },
          {
            "type": "Control",
            "i18n": "privateKeyId",
            "scope": "#/properties/__privateKey",
            "options": {
              "markAsRequired": true,
              "controlType": "privateKey",
              "allowDefaultPrivateKey": true
            },
            "rule": {
              "effect": "HIDE",
              "condition": {
                "schema": {
                  "allOf": [
                    {
                      "properties": {
                        "__directionOption": {
                          "const": "Server"
                        }
                      },
                      "required": [
                        "__directionOption"
                      ]
                    },
                    {
                      "properties": {
                        "provideClientCert": {
                          "const": false
                        }
                      },
                      "required": [
                        "provideClientCert"
                      ]
                    }
                  ]
                }
              }
            }
          },
          {
            "type": "Group",
            "label": "WS-Security Recipient",
            "options": {
              "groupType": "ShowHide"
            },
            "elements": [
              {
                "type": "Control",
                "options": {
                  "wssRecipient": true
                }
              }
            ]
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/XMPPStartTLS",
        "locale": "en",
        "content": {
          "common.error.required.field": "This is a required field",
          "common.error.invalid_target_variable.field": "Must be a valid context variable",
          "direction.label": "Direction",
          "direction.Client": "To Client",
          "direction.Server": "To Server",
          "provideClientCert.label": "Client authentication enabled",
          "clientAuthType.label": "Client Authentication",
          "clientAuthType.NONE": "None",
          "clientAuthType.OPTIONAL": "Optional",
          "clientAuthType.REQUIRED": "Required",
          "tLSSelectedVersion.label": "TLS Version",
          "sessionId.label": "Session ID",
          "privateKeyId.label": "Private Key"
        }
      }
    ]
  },
  {
    "configName": "XacmlPdpAssertion",
    "displayNameFormats": [
      {
        "format": "Evaluate XACML Policy",
        "condition": "true"
      }
    ],
    "refVariables": [
      {
        "fieldPath": ".inputMessageVariableName",
        "refType": "IN",
        "dataType": "message"
      },
      {
        "fieldPath": ".outputMessageVariableName",
        "refType": "OUT",
        "dataType": "message"
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Evaluate XACML Policy",
        "elements": [
          {
            "type": "Control",
            "i18n": "inputMessageSource",
            "scope": "#/properties/inputMessageSource"
          },
          {
            "type": "Control",
            "i18n": "inputMessageVariableName",
            "scope": "#/properties/inputMessageVariableName",
            "options": {
              "markAsRequired": true,
              "contextVariable": true,
              "variableType": "input",
              "allowedDataTypes": []
            },
            "rule": {
              "effect": "SHOW",
              "condition": {
                "scope": "#/properties/inputMessageSource",
                "schema": {
                  "const": "CONTEXT_VARIABLE"
                }
              }
            }
          },
          {
            "type": "Control",
            "i18n": "__soapEncapsulationInputMessageSource",
            "scope": "#/properties/__soapEncapsulationInputMessageSource"
          },
          {
            "type": "Control",
            "i18n": "outputMessageTarget",
            "scope": "#/properties/outputMessageTarget"
          },
          {
            "type": "Control",
            "i18n": "outputMessageVariableName",
            "scope": "#/properties/outputMessageVariableName",
            "options": {
              "markAsRequired": true,
              "contextVariable": true,
              "variableType": "output",
              "allowedDataTypes": []
            },
            "rule": {
              "effect": "SHOW",
              "condition": {
                "scope": "#/properties/outputMessageTarget",
                "schema": {
                  "const": "CONTEXT_VARIABLE"
                }
              }
            }
          },
          {
            "type": "Control",
            "i18n": "__soapEncapsulationOutputMessageTarget",
            "scope": "#/properties/__soapEncapsulationOutputMessageTarget"
          },
          {
            "type": "Control",
            "i18n": "__policyLocation",
            "scope": "#/properties/__policyLocation"
          },
          {
            "type": "Control",
            "options": {
              "controlType": "Divider"
            }
          },
          {
            "type": "VerticalLayout",
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/resourceInfo/properties/document",
                "i18n": "document",
                "options": {
                  "validateSchema": true,
                  "schemaType": "xacml"
                }
              }
            ],
            "rule": {
              "effect": "SHOW",
              "condition": {
                "scope": "#/properties/__policyLocation",
                "schema": {
                  "const": "staticResourceInfo"
                }
              }
            }
          },
          {
            "type": "VerticalLayout",
            "elements": [
              {
                "type": "Group",
                "options": {
                  "groupType": "wrapCustomClass",
                  "customClass": "location-options"
                },
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/resourceInfo/properties/url",
                    "i18n": "url",
                    "options": {
                      "markAsRequired": true
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/__httpOptions",
                    "i18n": "__httpOptions.label",
                    "options": {
                      "controlType": "Button",
                      "variant": "outlined",
                      "readonly": true
                    }
                  }
                ]
              }
            ],
            "rule": {
              "effect": "SHOW",
              "condition": {
                "scope": "#/properties/__policyLocation",
                "schema": {
                  "const": "singleUrlResourceInfo"
                }
              }
            }
          },
          {
            "type": "Group",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "fail-if-not-permit-spacing"
            },
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/failIfNotPermit",
                "i18n": "failIfNotPermit"
              }
            ]
          }
        ]
      }
    ],
    "configSchemaPatches": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/XacmlPdpAssertion",
        "patches": [
          {
            "op": "add",
            "path": "/properties/__soapEncapsulationInputMessageSource",
            "value": {
              "type": "boolean"
            }
          },
          {
            "op": "add",
            "path": "/properties/__soapEncapsulationOutputMessageTarget",
            "value": {
              "type": "boolean"
            }
          },
          {
            "op": "add",
            "path": "/properties/__policyLocation",
            "value": {
              "type": "string",
              "enum": [
                "staticResourceInfo",
                "singleUrlResourceInfo"
              ],
              "default": "staticResourceInfo"
            }
          },
          {
            "op": "add",
            "path": "/properties/__schemaURL",
            "value": {
              "type": "string"
            }
          },
          {
            "op": "add",
            "path": "/properties/__httpOptions",
            "value": {
              "type": "string"
            }
          },
          {
            "op": "add",
            "path": "/properties/__schemaApiError",
            "value": {
              "type": "string"
            }
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/XacmlPdpAssertion",
        "locale": "en",
        "content": {
          "failIfNotPermit.label": "Fail assertion if decision is not 'Permit'",
          "inputMessageSource.label": "Message Source",
          "inputMessageSource.DEFAULT_REQUEST": "Default Request",
          "inputMessageSource.DEFAULT_RESPONSE": "Default Response",
          "inputMessageSource.CONTEXT_VARIABLE": "Context Variable",
          "inputMessageVariableName.label": "Context Variable",
          "outputMessageTarget.label": "Response Target",
          "outputMessageTarget.DEFAULT_REQUEST": "Default Request",
          "outputMessageTarget.DEFAULT_RESPONSE": "Default Response",
          "outputMessageTarget.CONTEXT_VARIABLE": "Message Variable",
          "outputMessageVariableName.label": "Message Variable",
          "__soapEncapsulationInputMessageSource.label": "SOAP encapsulated?",
          "__soapEncapsulationOutputMessageTarget.label": "SOAP encapsulated?",
          "__policyLocation.label": "Policy Location",
          "document.label": "XACML Policy",
          "document.error": "A Policy is required when \"Configured in advance\" is selected. Please supply a Policy, or select an alternative \"Policy Location\".",
          "__policyLocation.staticResourceInfo": "Configured in advance",
          "__policyLocation.singleUrlResourceInfo": "Monitor URL for latest value",
          "__uploadFile.label": "Upload File",
          "__readURL.label": "Read URL",
          "__schemaURL.label": "Schema URL",
          "url.label": "URL to Monitor",
          "__httpOptions.label": "HTTP Options",
          "resourceInfo.url.error": "This is not a well formed HTTP(S) URL",
          "__schemaURL.error": "This should be a valid URL"
        }
      }
    ]
  },
  {
    "configName": "XacmlRequestBuilderAssertion",
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Create XACML Request",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/__inlineAlerts",
            "options": {
              "inlineAlerts": "warning"
            }
          }
        ]
      }
    ],
    "configSchemaPatches": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/XacmlRequestBuilderAssertion",
        "patches": [
          {
            "op": "add",
            "path": "/properties/__inlineAlerts",
            "value": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/XacmlRequestBuilderAssertion",
        "locale": "en",
        "content": {
          "XacmlRequestBuilderAssertion.warning": "At this time we do not intend to support this assertion in the new version of policy manager. If you use this assertion, please open a ticket with Broadcom support."
        }
      }
    ]
  },
  {
    "configName": "XpathCredentialSource",
    "displayNameFormats": [
      {
        "format": "Require XPath Credentials: login = '{{.xpathExpression.expression}}', password = '{{.passwordExpression.expression}}'",
        "condition": "and(not(isNull({{.xpathExpression.expression}})), not(isNull({{.passwordExpression.expression}})))"
      },
      {
        "format": "Require XPath Credentials",
        "condition": "true"
      }
    ],
    "configSchemas": [
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/XpathCredentialSource",
        "title": "Require XPath Credentials",
        "properties": {
          "otherTargetMessageVariable": {
            "type": "string"
          },
          "passwordExpression": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/sub-types/xpathExpression"
          },
          "removeLoginElement": {
            "type": "boolean",
            "default": false
          },
          "removePasswordElement": {
            "type": "boolean",
            "default": false
          },
          "target": {
            "type": "string",
            "enum": [
              "REQUEST",
              "RESPONSE",
              "OTHER"
            ],
            "default": "REQUEST"
          },
          "xpathExpression": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/sub-types/xpathExpression"
          }
        }
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/sub-types/xpathExpression",
        "properties": {
          "expression": {
            "type": "string"
          },
          "namespaces": {
            "type": "object"
          },
          "xpathVersion": {
            "type": "string",
            "enum": [
              "UNSPECIFIED",
              "XPATH_1_0",
              "XPATH_2_0"
            ],
            "default": "UNSPECIFIED"
          }
        }
      },
      {
        "type": "object",
        "$id": "https://l7tech.com/2025/json-schema/assertions/XpathCredentialSource/Main",
        "title": "Require XPath Credentials",
        "properties": {
          "XpathCredentialSource": {
            "$ref": "https://l7tech.com/2025/json-schema/assertions/XpathCredentialSource"
          },
          ".properties": {
            "type": "object",
            "properties": {
              ".enabled": {
                "type": "boolean",
                "default": true
              },
              ".left.comment": {
                "type": "string"
              },
              ".right.comment": {
                "type": "string"
              }
            }
          }
        }
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Require XPath Credentials",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/target",
            "options": {
              "messageTarget": true
            }
          },
          {
            "type": "Control",
            "i18n": "xpathExpression",
            "scope": "#/properties/xpathExpression",
            "options": {
              "editXPath": true
            }
          },
          {
            "type": "Control",
            "i18n": "removeLoginElement",
            "scope": "#/properties/removeLoginElement"
          },
          {
            "type": "Control",
            "i18n": "passwordExpression",
            "scope": "#/properties/passwordExpression",
            "options": {
              "editXPath": true
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/removePasswordElement",
            "i18n": "removePasswordElement"
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/XpathCredentialSource",
        "locale": "en",
        "content": {
          "xpathExpression.label": "Login XPath Expression",
          "removeLoginElement.label": "Remove login from target message if found",
          "passwordExpression.label": "Password XPath Expression",
          "removePasswordElement.label": "Remove password from target message if found"
        }
      }
    ]
  },
  {
    "configName": "XslTransformation",
    "displayNameFormats": [
      {
        "format": "Apply XSL Transformation",
        "condition": "or(isNull({{.transformName}}), isEmpty({{.transformName}}))"
      },
      {
        "format": "Apply XSL Transformation - {{.transformName}}",
        "condition": "true"
      }
    ],
    "refVariables": [
      {
        "fieldPath": ".msgVarPrefix",
        "refType": "OUT",
        "dataType": "message"
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Apply XSL Transformation",
        "elements": [
          {
            "type": "Control",
            "scope": "#/properties/target",
            "i18n": "assertion.common.target",
            "options": {
              "messageTarget": true,
              "otherTargetMessageVariableLabel": "assertion.common.target.otherTargetContextVariable"
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/whichMimePart",
            "i18n": "whichMimePart",
            "options": {
              "markAsRequired": true
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/__styleLocation",
            "i18n": "styleLocation",
            "options": {
              "markAsRequired": true
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/xsltVersion",
            "i18n": "xsltVersion",
            "options": {
              "markAsRequired": true
            }
          },
          {
            "type": "Control",
            "options": {
              "controlType": "Divider"
            }
          },
          {
            "type": "VerticalLayout",
            "elements": [
              {
                "type": "Control",
                "scope": "#/properties/resourceInfo/properties/document",
                "i18n": "document",
                "options": {
                  "validateSchema": true,
                  "schemaType": "xsl"
                }
              },
              {
                "type": "Control",
                "scope": "#/properties/transformName",
                "i18n": "transformName"
              }
            ],
            "rule": {
              "effect": "SHOW",
              "condition": {
                "scope": "#/properties/__styleLocation",
                "schema": {
                  "const": "staticResourceInfo"
                }
              }
            }
          },
          {
            "type": "VerticalLayout",
            "elements": [
              {
                "type": "Group",
                "i18n": "monitorURLLabel.label",
                "options": {
                  "groupType": "wrapCustomClass",
                  "labelColor": "bodyText",
                  "customClass": "location-options"
                },
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/resourceInfo/properties/url",
                    "i18n": "url",
                    "options": {
                      "markAsRequired": true
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/__httpOptions",
                    "i18n": "httpOptions.label",
                    "options": {
                      "controlType": "Button",
                      "variant": "outlined",
                      "readonly": true
                    }
                  }
                ]
              }
            ],
            "rule": {
              "effect": "SHOW",
              "condition": {
                "scope": "#/properties/__styleLocation",
                "schema": {
                  "const": "singleUrlResourceInfo"
                }
              }
            }
          },
          {
            "type": "VerticalLayout",
            "elements": [
              {
                "type": "Group",
                "i18n": "messageUrlLabel.label",
                "options": {
                  "groupType": "wrapCustomClass",
                  "labelColor": "bodyText",
                  "customClass": "location-options",
                  "list": [
                    "messageUrlLabel.listRow1.label",
                    "messageUrlLabel.listRow2.label",
                    "messageUrlLabel.listRow3.label"
                  ]
                },
                "elements": [
                  {
                    "type": "Control",
                    "scope": "#/properties/resourceInfo/properties/urlRegexes",
                    "i18n": "urlRegexes",
                    "options": {
                      "nameValueList": true,
                      "detail": {
                        "type": "VerticalLayout",
                        "elements": [
                          {
                            "type": "Control",
                            "scope": "#/properties/regularExpression",
                            "i18n": "regularExpression",
                            "options": {
                              "markAsRequired": true
                            }
                          }
                        ]
                      }
                    }
                  },
                  {
                    "type": "Control",
                    "scope": "#/properties/resourceInfo/properties/allowMessagesWithoutUrl",
                    "i18n": "allowMessagesWithoutUrl"
                  }
                ]
              }
            ],
            "rule": {
              "effect": "SHOW",
              "condition": {
                "scope": "#/properties/__styleLocation",
                "schema": {
                  "const": "messageUrlResourceInfo"
                }
              }
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/msgVarPrefix",
            "i18n": "msgVarPrefix",
            "options": {
              "markAsRequired": true,
              "contextVariable": true,
              "variableType": "output",
              "allowedDataTypes": []
            }
          }
        ]
      }
    ],
    "configSchemaPatches": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/XslTransformation",
        "patches": [
          {
            "op": "add",
            "path": "/properties/__styleLocation",
            "value": {
              "type": "string",
              "enum": [
                "staticResourceInfo",
                "singleUrlResourceInfo",
                "messageUrlResourceInfo"
              ],
              "default": "staticResourceInfo"
            }
          },
          {
            "op": "add",
            "path": "/properties/__schemaApiError",
            "value": {
              "type": "string"
            }
          },
          {
            "op": "remove",
            "path": "/properties/msgVarPrefix/default"
          },
          {
            "op": "remove",
            "path": "/properties/whichMimePart/default"
          },
          {
            "op": "replace",
            "path": "/properties/resourceInfo/anyOf/3/properties/urlRegexes/items",
            "value": {
              "type": "object",
              "properties": {
                "regularExpression": {
                  "type": "string"
                }
              }
            }
          },
          {
            "op": "add",
            "path": "/properties/__httpOptions",
            "value": {
              "type": "string"
            }
          },
          {
            "op": "add",
            "path": "/properties/xsltVersion",
            "value": {
              "enum": [
                "1.0",
                "2.0"
              ]
            }
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/XslTransformation",
        "locale": "en",
        "content": {
          "xsltVersion.label": "XSLT Version",
          "styleLocation.label": "Stylesheet Location",
          "styleLocation.staticResourceInfo": "Configured in advance",
          "styleLocation.singleUrlResourceInfo": "Monitor URL for latest value",
          "styleLocation.messageUrlResourceInfo": "Fetch from URL in processing instruction",
          "whichMimePart.label": "Apply to MIME Part (0=SOAP, 1=first attachment...)",
          "transformName.label": "Stylesheet Name (GUI Use Only)",
          "document.label": "XSLT Stylesheet",
          "monitorURLLabel.label": "The Gateway will periodically check this URL and download the latest stylesheet.",
          "url.label": "URL to Monitor",
          "httpOptions.label": "HTTP Options",
          "messageUrlLabel.label": "Fetch stylesheet if URL schema matches ANY of the following regular expressions. For example:",
          "messageUrlLabel.listRow1.label": "http://.*",
          "messageUrlLabel.listRow2.label": "https://[a-z0-9]+\\.l7tech\\.com/.*",
          "messageUrlLabel.listRow3.label": "http://ssg\\.l7tech\\.com(:\\d+)?/.*",
          "urlRegexes.label": "Regular Expression",
          "allowMessagesWithoutUrl.label": "Allow messages with no stylesheet declaration",
          "regularExpression.label": "Expression",
          "msgVarPrefix.label": "XSLT Message Variable Prefix",
          "whichMimePart.error": "Must be a number between 0 and 9999",
          "document.error": "The XSL is missing or invalid. empty document",
          "urlToMonitor.error": "This is not a well formed HTTP(S) URL",
          "regularExpression.error": "Must be a valid regular expression",
          "urlRegexes.error": "At least one Regular Expression is required."
        }
      }
    ]
  },
  {
    "configName": "CustomAssertion:com.l7tech.custom.checkresponsetypesupported.CheckResponseTypeSupportedAssertion",
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Check Response Type Supported",
        "elements": [
          {
            "type": "Control",
            "i18n": "response_type",
            "scope": "#/properties/value/properties/response_type",
            "options": {
              "markAsRequired": true
            }
          },
          {
            "type": "Control",
            "i18n": "response_types_supported",
            "scope": "#/properties/value/properties/response_types_supported",
            "options": {
              "markAsRequired": true
            }
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/CustomAssertion:com.l7tech.custom.checkresponsetypesupported.CheckResponseTypeSupportedAssertion/Main",
        "locale": "en",
        "content": {
          "response_type.label": "Response_type",
          "response_types_supported.label": "Response_types_supported"
        }
      }
    ]
  },
  {
    "configName": "CustomAssertion:com.ca.mag.custom.contextvariable2json.ContextVariable2JsonAssertion",
    "displayNameFormats": [
      {
        "format": "ContextVariable 2 Json",
        "condition": "true"
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "ContextVariable to Json",
        "elements": [
          {
            "type": "Control",
            "i18n": "outputVariable",
            "scope": "#/properties/value/properties/outputVariable",
            "options": {
              "markAsRequired": false
            }
          },
          {
            "type": "Control",
            "scope": "#/properties/__inlineAlerts",
            "options": {
              "inlineAlerts": "warning"
            }
          },
          {
            "type": "Control",
            "i18n": "returnAsJsonObject",
            "scope": "#/properties/value/properties/returnAsJsonObject"
          },
          {
            "type": "Group",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "context-variable-group"
            },
            "i18n": "contextVariableNaming.label",
            "elements": [
              {
                "type": "Control",
                "i18n": "contextVariableNaming",
                "scope": "#/properties/value/properties/variables",
                "options": {
                  "nameValueList": true,
                  "detail": {
                    "type": "VerticalLayout",
                    "elements": [
                      {
                        "type": "Control",
                        "scope": "#/properties/contextVariable",
                        "i18n": "contextVariable"
                      },
                      {
                        "type": "Control",
                        "scope": "#/properties/attribute",
                        "i18n": "attribute"
                      }
                    ]
                  }
                }
              }
            ]
          }
        ]
      }
    ],
    "configSchemaPatches": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/CustomAssertion:com.ca.mag.custom.contextvariable2json.ContextVariable2JsonAssertion",
        "patches": [
          {
            "op": "add",
            "path": "/properties/__inlineAlerts",
            "value": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        ]
      },
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/CustomAssertion:com.ca.mag.custom.contextvariable2json.ContextVariable2JsonAssertion",
        "patches": [
          {
            "op": "replace",
            "path": "/properties/value/properties/variables",
            "value": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "contextVariable": {
                    "type": "string"
                  },
                  "attribute": {
                    "type": "string",
                    "title": "Attribute Name"
                  }
                }
              }
            }
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/CustomAssertion:com.ca.mag.custom.contextvariable2json.ContextVariable2JsonAssertion/Main",
        "locale": "en",
        "content": {
          "outputVariable.label": "Output Variable",
          "requireSecurityCredentials.warning": "Provide same length for Multi-Value Context Variable.",
          "returnAsJsonObject.label": "Return as JSON Object for single element Multi-Value Context Variable",
          "contextVariableNaming.label": "Context Variable Naming",
          "contextVariable.label": "Variable Name",
          "attribute.label": "Attribute Name",
          "contextVariable.duplicate.error": "Variable Name already exists. Please give a different variable name."
        }
      }
    ]
  },
  {
    "configName": "CustomAssertion:com.l7tech.custom.jwt.decodejwt.DecodeJWTAssertion",
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "Decode JWT Payload",
        "elements": [
          {
            "type": "Control",
            "i18n": "payload",
            "scope": "#/properties/value/properties/payload",
            "options": {
              "markAsRequired": true
            }
          },
          {
            "type": "Group",
            "i18n": "validate",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "validate-group"
            },
            "elements": [
              {
                "type": "Control",
                "i18n": "validateExpiration",
                "scope": "#/properties/value/properties/validateExpiration"
              },
              {
                "type": "Control",
                "i18n": "requiredClaims",
                "scope": "#/properties/value/properties/requiredClaims"
              }
            ]
          },
          {
            "type": "Group",
            "i18n": "exportClaims",
            "options": {
              "groupType": "wrapCustomClass",
              "customClass": "claims-group"
            },
            "elements": [
              {
                "type": "Control",
                "i18n": "exportAll",
                "scope": "#/properties/value/properties/exportAll"
              },
              {
                "type": "Control",
                "label": false,
                "scope": "#/properties/value/properties/exportClaims",
                "rule": {
                  "effect": "HIDE",
                  "condition": {
                    "scope": "#/properties/value/properties/exportAll",
                    "schema": {
                      "const": true
                    }
                  }
                }
              }
            ]
          }
        ]
      }
    ],
    "configDataPatches": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/CustomAssertion:com.l7tech.custom.jwt.decodejwt.DecodeJWTAssertion#AfterEdit",
        "patches": [
          {
            "op": "test",
            "path": "/value/requiredClaims"
          },
          {
            "op": "replace",
            "path": "/value/requiredClaims",
            "value": ""
          },
          {
            "op": "test",
            "path": "/value/exportClaims"
          },
          {
            "op": "replace",
            "path": "/value/exportClaims",
            "value": ""
          }
        ]
      },
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/CustomAssertion:com.l7tech.custom.jwt.decodejwt.DecodeJWTAssertion#AfterEdit",
        "patches": [
          {
            "op": "test",
            "path": "/value/exportAll",
            "value": true
          },
          {
            "op": "replace",
            "path": "/value/exportClaims",
            "value": ""
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/CustomAssertion:com.l7tech.custom.jwt.decodejwt.DecodeJWTAssertion/Main",
        "locale": "en",
        "content": {
          "exportAll.label": "Export all",
          "requiredClaims.label": "Required Claims",
          "payload.label": "JSON Payload",
          "validateExpiration.label": "Check Expiration",
          "validate": "Validate",
          "exportClaims": "Export Claims"
        }
      }
    ]
  },
  {
    "configName": "CustomAssertion:com.l7tech.custom.delay.DelayAssertion",
    "displayNameFormats": [
      {
        "format": "Delay",
        "condition": "true"
      }
    ]
  },
  {
    "configName": "CustomAssertion:com.l7tech.custom.auth2res.ResourceIssueAssertion",
    "displayNameFormats": [
      {
        "format": "OTK RESOURCE Issuing",
        "condition": "true"
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "OTK RESOURCE Issuing Assertion",
        "elements": [
          {
            "type": "Control",
            "i18n": "resourceRegistered",
            "scope": "#/properties/value/properties/resourceRegistered"
          },
          {
            "type": "Control",
            "i18n": "resourceRequested",
            "scope": "#/properties/value/properties/resourceRequested"
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/CustomAssertion:com.l7tech.custom.auth2res.ResourceIssueAssertion/Main",
        "locale": "en",
        "content": {
          "resourceRegistered.label": "Permitted RESOURCE (String)",
          "resourceRequested.label": "Requested RESOURCE (String)"
        }
      }
    ]
  },
  {
    "configName": "CustomAssertion:com.l7tech.custom.auth2res.ResourceVerificationAssertion",
    "displayNameFormats": [
      {
        "format": "OTK RESOURCE Verification",
        "condition": "true"
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "OTK RESOURCE Verification Assertion",
        "elements": [
          {
            "type": "Control",
            "i18n": "resourceRequired",
            "scope": "#/properties/value/properties/resourceRequired"
          },
          {
            "type": "Control",
            "i18n": "resourceGranted",
            "scope": "#/properties/value/properties/resourceGranted"
          },
          {
            "type": "Control",
            "i18n": "anyResourceRequired",
            "scope": "#/properties/value/properties/anyResourceRequired"
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/CustomAssertion:com.l7tech.custom.auth2res.ResourceVerificationAssertion/Main",
        "locale": "en",
        "content": {
          "resourceRequired.label": "Required RESOURCE (String)",
          "resourceGranted.label": "Granted RESOURCE  (String)",
          "anyResourceRequired.label": "Pass if any of the required RESOURCEs are found (True|False)? "
        }
      }
    ]
  },
  {
    "configName": "CustomAssertion:com.l7tech.custom.auth2scope.ScopeIssueAssertion",
    "displayNameFormats": [
      {
        "format": "OTK SCOPE Issuing",
        "condition": "true"
      }
    ],
    "uiSchemas": [
      {
        "type": "VerticalLayout",
        "title": "OTK Scope Issuing Assertion",
        "elements": [
          {
            "type": "Control",
            "i18n": "scopeRegistered",
            "scope": "#/properties/value/properties/scopeRegistered"
          },
          {
            "type": "Control",
            "i18n": "scopeRequested",
            "scope": "#/properties/value/properties/scopeRequested"
          }
        ]
      }
    ],
    "configDataPatches": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/CustomAssertion:com.l7tech.custom.auth2scope.ScopeIssueAssertion#AfterEdit",
        "patches": [
          {
            "op": "test",
            "path": "/value/scopeRegistered"
          },
          {
            "op": "replace",
            "path": "/value/scopeRegistered",
            "value": ""
          },
          {
            "op": "test",
            "path": "/value/scopeRequested"
          },
          {
            "op": "replace",
            "path": "/value/scopeRequested",
            "value": ""
          }
        ]
      }
    ],
    "i18nResources": [
      {
        "id": "https://l7tech.com/2025/json-schema/assertions/CustomAssertion:com.l7tech.custom.auth2scope.ScopeIssueAssertion/Main",
        "locale": "en",
        "content": {
          "scopeRegistered.label": "Permitted SCOPE (String)",
          "scopeRequested.label": "Requested SCOPE (String)"
        }
      }
    ]
  }
]