{
  "common": {
    "assertion": {
      "expectEqual": {
        "type": "sync",
        "description": "Expects the passed values to be equal.",
        "arguments": [
          {
            "name": "value1",
            "type": "any",
            "default": null
          },
          {
            "name": "value2",
            "type": "any",
            "default": null
          }
        ]
      },
      "expectUnequal": {
        "type": "sync",
        "description": "Expects the passed values to be unequal.",
        "arguments": [
          {
            "name": "value1",
            "type": "any",
            "default": null
          },
          {
            "name": "value2",
            "type": "any",
            "default": null
          }
        ]
      },
      "expectTrue": {
        "type": "sync",
        "description": "Expects the passed value to be true.",
        "arguments": [
          {
            "name": "value",
            "type": "any",
            "default": null
          }
        ]
      },
      "expectFalse": {
        "type": "sync",
        "description": "Expects the passed value to be false.",
        "arguments": [
          {
            "name": "value",
            "type": "boolean",
            "default": null
          }
        ]
      },
      "expectDefined": {
        "type": "sync",
        "description": "Expects the passed values is defined.",
        "arguments": [
          {
            "name": "value",
            "type": "any",
            "default": null
          }
        ]
      },
      "expectUndefined": {
        "type": "sync",
        "description": "Expects the passed values is undefined.",
        "arguments": [
          {
            "name": "value",
            "type": "any",
            "default": null
          }
        ]
      },
      "expectUrlToBe": {
        "type": "async",
        "description": "Expects the url to be the passed value.",
        "arguments": []
      },
      "expectToContain": {
        "type": "async",
        "description": "Expects the first passed value to contain the second passed value, after normalizing whitespace.",
        "arguments": [
          {
            "name": "value1",
            "type": "string",
            "default": null
          },
          {
            "name": "value2",
            "type": "string",
            "default": null
          }
        ]
      }
    },
    "date": {
      "getToday": {
        "type": "async",
        "description": "Returns the current day in the given format.",
        "arguments": [
          {
            "name": "format",
            "type": "string",
            "default": "\"object\""
          }
        ],
        "returnType": "string"
      },
      "getTomorrow": {
        "type": "async",
        "description": "Returns tomorrows date in the given format.",
        "arguments": [
          {
            "name": "format",
            "type": "string",
            "default": "\"object\""
          }
        ],
        "returnType": "string"
      },
      "getNextMonth": {
        "type": "async",
        "description": "Returns the current day one month later in the given format.",
        "arguments": [
          {
            "name": "format",
            "type": "string",
            "default": "\"object\""
          }
        ],
        "returnType": "string"
      },
      "getPreviousMonth": {
        "type": "async",
        "description": "Returns the current day one month before in the given format.",
        "arguments": [
          {
            "name": "format",
            "type": "string",
            "default": "\"object\""
          }
        ],
        "returnType": "string"
      },
      "getNextYear": {
        "type": "async",
        "description": "Returns the current day one year later in the given format.",
        "arguments": [
          {
            "name": "format",
            "type": "string",
            "default": "\"object\""
          }
        ],
        "returnType": "string"
      },
      "getPreviousYear": {
        "type": "async",
        "description": "Returns the current day one year before in the given format.",
        "arguments": [
          {
            "name": "format",
            "type": "string",
            "default": "\"object\""
          }
        ],
        "returnType": "string"
      },
      "getSpecific": {
        "type": "async",
        "description": "Returns a specific date in the given format.",
        "arguments": [
          {
            "name": "date",
            "type": "string",
            "default": null
          },
          {
            "name": "format",
            "type": "string",
            "default": "\"object\""
          }
        ],
        "returnType": "string"
      },
      "calculate": {
        "type": "async",
        "description": "Calculates the date based on the input parameter and returns it in the given format.",
        "arguments": [
          {
            "name": "date",
            "type": "string",
            "default": "\"today\""
          },
          {
            "name": "format",
            "type": "string",
            "default": "\"object\""
          }
        ]
      },
      "getCurrentDateAndTime": {
        "type": "sync",
        "description": "Returns the current date and time in the given format.",
        "arguments": [
          {
            "name": "format",
            "type": "string",
            "default": "\"object\""
          }
        ]
      },
      "calculateWithTime": {
        "type": "sync",
        "description": "Calculates the date and time based on the input parameter and returns it in the given format.",
        "arguments": [
          {
            "name": "date",
            "type": "string",
            "default": "\"today\""
          },
          {
            "name": "time",
            "type": "string",
            "default": null
          },
          {
            "name": "format",
            "type": "string",
            "default": "\"object\""
          }
        ]
      }
    },
    "navigation": {
      "navigateToUrl": {
        "type": "async",
        "description": "Navigates to the passed url.",
        "arguments": [
          {
            "name": "url",
            "type": "string",
            "default": null
          }
        ]
      },
      "navigateToUrlAndRetry": {
        "type": "async",
        "description": "Navigates to the passed url and retries the function in case of a failure.",
        "arguments": [
          {
            "name": "url",
            "type": "string",
            "default": null
          },
          {
            "name": "retries",
            "type": "integer",
            "default": "3"
          },
          {
            "name": "interval",
            "type": "integer",
            "default": "5000"
          }
        ]
      }
    },
    "userInteraction": {
      "fillActive": {
        "type": "async",
        "description": "Fills the active input with the given value.",
        "arguments": [
          {
            "name": "value",
            "type": "string",
            "default": null
          }
        ]
      },
      "fillActiveAndRetry": {
        "type": "async",
        "description": "Enters the given value to the active input field and retries the action in case it fails.",
        "arguments": [
          {
            "name": "value",
            "type": "string",
            "default": null
          },
          {
            "name": "retries",
            "type": "number",
            "default": 3
          },
          {
            "name": "interval",
            "type": "number",
            "default": 5000
          }
        ]
      },
      "clearAndFillActive": {
        "type": "async",
        "description": "Clears and fills the active input.",
        "arguments": [
          {
            "name": "value",
            "type": "string",
            "default": null
          }
        ]
      },
      "clearAndFillActiveAndRetry": {
        "type": "async",
        "description": "CClears and fills the active input. Retries the action in case of a failure.",
        "arguments": [
          {
            "name": "value",
            "type": "string",
            "default": null
          },
          {
            "name": "retries",
            "type": "number",
            "default": 3
          },
          {
            "name": "interval",
            "type": "number",
            "default": 5000
          }
        ]
      },
      "pressKey": {
        "type": "async",
        "description": "Performs the specified keypress. Possible values: <a href=\"https://w3c.github.io/webdriver/#keyboard-actions\" target=\"_blank\">WebDriver Keyboard Actions</a>",
        "arguments": [
          {
            "name": "keys",
            "type": "string",
            "default": null
          }
        ]
      },
      "pressEnter": {
        "type": "async",
        "description": "Performs the Enter keypress.",
        "arguments": []
      },
      "pressTab": {
        "type": "async",
        "description": "Performs the Tab keypress.",
        "arguments": []
      },
      "pressF4": {
        "type": "async",
        "description": "Performs the F4 keypress.",
        "arguments": []
      },
      "pressBackspace": {
        "type": "async",
        "description": "Performs the Backspace keypress.",
        "arguments": []
      },
      "pressEscape": {
        "type": "async",
        "description": "Performs the Escape keypress.",
        "arguments": []
      },
      "pressArrowLeft": {
        "type": "async",
        "description": "Performs the Arrow Left keypress.",
        "arguments": []
      },
      "pressArrowRight": {
        "type": "async",
        "description": "Performs the Arrow Right keypress.",
        "arguments": []
      }
    }
  },
  "flp": {
    "userLocks": {
      "getNumberOfLockEntries": {
        "type": "async",
        "description": "Gets the number of lock entries for the given user.",
        "arguments": [
          {
            "name": "user",
            "type": "string",
            "default": null
          },
          {
            "name": "password",
            "type": "string",
            "default": null
          },
          {
            "name": "technicalUserId",
            "type": "string",
            "default": null
          }
        ],
        "returnType": "promise"
      },
      "deleteExistingLockEntries": {
        "type": "async",
        "description": "Deletes the existing lock entries for the given user.",
        "arguments": [
          {
            "name": "user",
            "type": "string",
            "default": null
          },
          {
            "name": "password",
            "type": "string",
            "default": null
          },
          {
            "name": "technicalUserId",
            "type": "string",
            "default": null
          }
        ]
      },
      "getLockCount": {
        "type": "sync",
        "description": "Gets the number of locks for the user on the same session.",
        "arguments": [
          {
            "name": "sessions",
            "type": "array",
            "default": null
          }
        ],
        "returnType": "number"
      }
    },
    "userSettings": {
      "setLanguageFromUserSettings": {
        "type": "async",
        "description": "Sets the environment variable 'USER_SETTINGS_LANG_KEY' language from user settings.",
        "arguments": [
          {
            "name": "user",
            "type": "string",
            "default": null
          },
          {
            "name": "password",
            "type": "string",
            "default": null
          }
        ],
        "returnType": "promise"
      },
      "setDateFormatFromUserSettings": {
        "type": "async",
        "description": "Sets the environment variable 'USER_SETTINGS_DATE_FORMAT' date format from user settings.",
        "arguments": [
          {
            "name": "user",
            "type": "string",
            "default": null
          },
          {
            "name": "password",
            "type": "string",
            "default": null
          }
        ],
        "returnType": "promise"
      },
      "setTimeFormatFromUserSettings": {
        "type": "async",
        "description": "Sets the environment variable 'USER_SETTINGS_DATE_FORMAT' time format from user settings.",
        "arguments": [
          {
            "name": "user",
            "type": "string",
            "default": null
          },
          {
            "name": "password",
            "type": "string",
            "default": null
          }
        ],
        "returnType": "promise"
      },
      "setTimeZoneFromUserSettings": {
        "type": "async",
        "description": "Sets the environment variable 'USER_SETTINGS_TIME_ZONE' time zone from user settings.",
        "arguments": [
          {
            "name": "user",
            "type": "string",
            "default": null
          },
          {
            "name": "password",
            "type": "string",
            "default": null
          }
        ],
        "returnType": "promise"
      },
      "setNumberFormatFromUserSettings": {
        "type": "async",
        "description": "Sets the environment variable 'USER_SETTINGS_NUMBER_FORMAT' number format from user settings.",
        "arguments": [
          {
            "name": "user",
            "type": "string",
            "default": null
          },
          {
            "name": "password",
            "type": "string",
            "default": null
          }
        ],
        "returnType": "promise"
      },
      "setS4UserSettings": {
        "type": "async",
        "description": "Sets the user settings for S4.",
        "arguments": [
          {
            "name": "user",
            "type": "string",
            "default": null
          },
          {
            "name": "password",
            "type": "string",
            "default": null
          }
        ],
        "returnType": "promise"
      },
      "getLanguageFromUserSettings": {
        "type": "async",
        "description": "Gets the language from user settings.",
        "arguments": [
          {
            "name": "user",
            "type": "string",
            "default": null
          },
          {
            "name": "password",
            "type": "string",
            "default": null
          }
        ],
        "returnType": "promise"
      },
      "getDateFormatFromUserSettings": {
        "type": "async",
        "description": "Gets the date format from user settings.",
        "arguments": [
          {
            "name": "user",
            "type": "string",
            "default": null
          },
          {
            "name": "password",
            "type": "string",
            "default": null
          }
        ],
        "returnType": "promise"
      },
      "getTimeFormatFromUserSettings": {
        "type": "async",
        "description": "Gets the time format from user settings.",
        "arguments": [
          {
            "name": "user",
            "type": "string",
            "default": null
          },
          {
            "name": "password",
            "type": "string",
            "default": null
          }
        ],
        "returnType": "promise"
      },
      "getTimeZoneFromUserSettings": {
        "type": "async",
        "description": "Gets the time zone from user settings.",
        "arguments": [
          {
            "name": "user",
            "type": "string",
            "default": null
          },
          {
            "name": "password",
            "type": "string",
            "default": null
          }
        ],
        "returnType": "promise"
      },
      "getNumberFormatFromUserSettings": {
        "type": "async",
        "description": "Gets the number format from user settings.",
        "arguments": [
          {
            "name": "user",
            "type": "string",
            "default": null
          },
          {
            "name": "password",
            "type": "string",
            "default": null
          }
        ],
        "returnType": "promise"
      }
    }
  },
  "mobile": {
    "android": {
      "pressKeyByName": {
        "type": "async",
        "description": "Simulate pressing a hardware key on the android device (e.g., back button, home button, etc.),",
        "arguments": [
          {
            "name": "keyName",
            "type": "string",
            "default": null
          }
        ],
        "returnType": "promise"
      },
      "pressKeyByCode": {
        "type": "async",
        "description": "Simulate pressing a hardware key on the android device (e.g., back button, home button, etc.),",
        "arguments": [
          {
            "name": "keyCode",
            "type": "string",
            "default": null
          }
        ],
        "returnType": "promise"
      }
    },
    "device": {
      "isAppInstalled": {
        "type": "async",
        "description": "Check if the application identified by its Package name/Bundle ID is installed on the device.",
        "arguments": [
          {
            "name": "appPackageOrBundleId",
            "type": "string",
            "default": null
          }
        ],
        "returnType": "boolean"
      },
      "installApp": {
        "type": "async",
        "description": "Install the appropriate app based on the platform the test is being executed on.",
        "arguments": [
          {
            "name": "appPath",
            "type": "string",
            "default": null
          }
        ],
        "returnType": "promise"
      },
      "switchToContext": {
        "type": "async",
        "description": "Switch to the specified( WEBVIEW | NATIVE_APP ) context if available.",
        "arguments": [
          {
            "name": "targetContext",
            "type": "string",
            "default": "'WEBVIEW'"
          },
          {
            "name": "timeout",
            "type": "number",
            "default": 5000
          }
        ],
        "returnType": "promise"
      },
      "getTargetContextIfAvailable": {
        "type": "async",
        "description": "Returns the specified target context if available within a given timeout.\n\nThis method retrieves the list of available contexts and determines if a context\nthat matches the `targetContext` string is present. If the target context is found,\nit returns the context name; otherwise, it returns `null`.",
        "arguments": [
          {
            "name": "targetContext",
            "type": "string",
            "default": "'WEBVIEW'"
          },
          {
            "name": "timeout",
            "type": "number",
            "default": 5000
          }
        ],
        "returnType": "promise"
      },
      "closeApplication": {
        "type": "async",
        "description": "Close the currently active mobile application.",
        "arguments": [],
        "returnType": "promise"
      },
      "queryAppState": {
        "type": "async",
        "description": "Queries the state of the application (e.g., running, background, not installed) on the mobile device(Android or iOS).",
        "arguments": [
          {
            "name": "appPackageOrBundleId",
            "type": "string",
            "default": null
          }
        ],
        "returnType": "promise"
      },
      "launchApp": {
        "type": "async",
        "description": "Launches the app for both iOS and Android with a parameterized app identifier.",
        "arguments": [
          {
            "name": "appPackageOrBundleId",
            "type": "string",
            "default": null
          }
        ],
        "returnType": "promise"
      },
      "switchToLandscapeOrientation": {
        "type": "async",
        "description": "Switches the device orientation to landscape mode.",
        "arguments": [],
        "returnType": "promise"
      },
      "switchToPortraitOrientation": {
        "type": "async",
        "description": "Switches the device orientation to portrait mode.",
        "arguments": [],
        "returnType": "promise"
      },
      "getCurrentOrientation": {
        "type": "async",
        "description": "Returns the device current orientation (PORTRAIT or LANDSCAPE)",
        "arguments": [],
        "returnType": "promise"
      },
      "hideKeyboard": {
        "type": "async",
        "description": "Hides the keyboard on both Android and iOS using specific strategies with timeout.",
        "arguments": [
          {
            "name": "strategy",
            "type": "string",
            "default": null
          },
          {
            "name": "key",
            "type": "string",
            "default": null
          },
          {
            "name": "keyCode",
            "type": "number",
            "default": null
          },
          {
            "name": "timeout",
            "type": "number",
            "default": 5000
          }
        ],
        "returnType": "promise"
      },
      "isKeyboardVisible": {
        "type": "async",
        "description": "Checks if the keyboard is visible or not on the mobile device.",
        "arguments": [],
        "returnType": "promise"
      },
      "isPlatformSupported": {
        "type": "async",
        "description": "Determine if the current platform is supported, if the current device platform is either `Android` or `iOS`.",
        "arguments": [],
        "returnType": "promise"
      }
    },
    "element": {
      "isVisible": {
        "type": "async",
        "description": "Returns a boolean if the mobile element is visible to the user.",
        "arguments": [
          {
            "name": "element",
            "type": "element",
            "default": null
          },
          {
            "name": "strict",
            "type": "boolean",
            "default": true
          }
        ],
        "returnType": "boolean"
      },
      "isPresent": {
        "type": "async",
        "description": "Returns a boolean if the element is present at the DOM or not. It might be hidden.",
        "arguments": [
          {
            "name": "element",
            "type": "element",
            "default": null
          }
        ],
        "returnType": "boolean"
      },
      "waitToBePresent": {
        "type": "async",
        "description": "Waits until the element with the given selector is present.",
        "arguments": [
          {
            "name": "selector",
            "type": "object",
            "default": null
          },
          {
            "name": "timeout",
            "type": "number",
            "default": 30000
          }
        ],
        "returnType": "boolean"
      },
      "waitToBeVisible": {
        "type": "async",
        "description": "Waits until the element with the given selector is visible.",
        "arguments": [
          {
            "name": "selector",
            "type": "object",
            "default": null
          },
          {
            "name": "timeout",
            "type": "number",
            "default": 30000
          }
        ],
        "returnType": "boolean"
      },
      "waitToBeClickable": {
        "type": "async",
        "description": "Waits until the element with the given selector is clickable.",
        "arguments": [
          {
            "name": "selector",
            "type": "object",
            "default": null
          },
          {
            "name": "timeout",
            "type": "number",
            "default": 30000
          }
        ],
        "returnType": "boolean"
      },
      "isSelected": {
        "type": "async",
        "description": "Returns a boolean if the element (e.g. checkbox) is selected.",
        "arguments": [
          {
            "name": "elementOrSelector",
            "type": "string",
            "default": null
          }
        ],
        "returnType": "boolean"
      },
      "waitToBeEnabled": {
        "type": "async",
        "description": "Waits until the element with the given selector is present.",
        "arguments": [
          {
            "name": "selector",
            "type": "object",
            "default": null
          },
          {
            "name": "timeout",
            "type": "number",
            "default": 30000
          }
        ],
        "returnType": "boolean"
      }
    },
    "gestures": {
      "swipe": {
        "type": "async",
        "description": "Swipe from one point to another on the screen,\nEnsure that the provided coordinates are within the bounds of the screen to avoid unexpected behavior.",
        "arguments": [
          {
            "name": "startX",
            "type": "number",
            "default": null
          },
          {
            "name": "startY",
            "type": "number",
            "default": null
          },
          {
            "name": "endX",
            "type": "number",
            "default": null
          },
          {
            "name": "endY",
            "type": "number",
            "default": null
          },
          {
            "name": "duration",
            "type": "number",
            "default": 1000
          }
        ],
        "returnType": "promise"
      },
      "tap": {
        "type": "async",
        "description": "Executes a tap at the given screen coordinates,\nEnsure that the provided coordinates are within the bounds of the screen to avoid unexpected behavior.",
        "arguments": [
          {
            "name": "coordX",
            "type": "number",
            "default": null
          },
          {
            "name": "coordY",
            "type": "number",
            "default": null
          }
        ],
        "returnType": "promise"
      }
    },
    "ios": {},
    "userInteraction": {
      "tap": {
        "type": "async",
        "description": "Tap's on the mobile element.",
        "arguments": [
          {
            "name": "elementOrSelector",
            "type": "string",
            "default": null
          },
          {
            "name": "timeout",
            "type": "number",
            "default": 30000
          }
        ]
      },
      "check": {
        "type": "async",
        "description": "Checks the given checkbox.",
        "arguments": [
          {
            "name": "elementOrSelector",
            "type": "string",
            "default": null
          },
          {
            "name": "timeout",
            "type": "number",
            "default": 30000
          }
        ]
      },
      "uncheck": {
        "type": "async",
        "description": "Unchecks the given checkbox.",
        "arguments": [
          {
            "name": "elementOrSelector",
            "type": "string",
            "default": null
          },
          {
            "name": "timeout",
            "type": "number",
            "default": 30000
          }
        ]
      },
      "doubleTap": {
        "type": "async",
        "description": "Double Tap's on the mobile element.",
        "arguments": [
          {
            "name": "elementOrSelector",
            "type": "string",
            "default": null
          },
          {
            "name": "timeout",
            "type": "number",
            "default": 30000
          }
        ],
        "returnType": "promise"
      },
      "fill": {
        "type": "async",
        "description": "Enter a string value into a mobile input field.",
        "arguments": [
          {
            "name": "elementOrSelector",
            "type": "string",
            "default": null
          },
          {
            "name": "value",
            "type": "string",
            "default": null
          },
          {
            "name": "timeout",
            "type": "number",
            "default": 30000
          }
        ],
        "returnType": "promise"
      },
      "clearAndFill": {
        "type": "async",
        "description": "Enter a string into the mobile input field; it will clear the box before submission.",
        "arguments": [
          {
            "name": "elementOrSelector",
            "type": "string",
            "default": null
          },
          {
            "name": "value",
            "type": "string",
            "default": null
          },
          {
            "name": "timeout",
            "type": "number",
            "default": 30000
          }
        ],
        "returnType": "promise"
      },
      "clear": {
        "type": "async",
        "description": "Clear a string value into a mobile input field.",
        "arguments": [
          {
            "name": "elementOrSelector",
            "type": "string",
            "default": null
          },
          {
            "name": "timeout",
            "type": "number",
            "default": 30000
          }
        ],
        "returnType": "promise"
      }
    }
  },
  "nonUi5": {
    "assertion": {
      "expectAttributeToBe": {
        "type": "async",
        "description": "Expects the attributes value of the passed element to be the compare value.",
        "arguments": [
          {
            "name": "elementOrSelector",
            "type": "string",
            "default": null
          },
          {
            "name": "compareValue",
            "type": "string",
            "default": null
          },
          {
            "name": "attribute",
            "type": "string",
            "default": null
          }
        ]
      },
      "expectAttributeToContain": {
        "type": "async",
        "description": "Expects the attributes value of the passed element to contain the compare value.",
        "arguments": [
          {
            "name": "elementOrSelector",
            "type": "string",
            "default": null
          },
          {
            "name": "compareValue",
            "type": "string",
            "default": null
          },
          {
            "name": "attribute",
            "type": "string",
            "default": null
          }
        ]
      },
      "expectValueToBe": {
        "type": "async",
        "description": "Expects the attributes value of the passed element to be the compare value.",
        "arguments": [
          {
            "name": "elementOrSelector",
            "type": "string",
            "default": null
          },
          {
            "name": "compareValue",
            "type": "string",
            "default": null
          }
        ]
      },
      "expectCssPropertyValueToBe": {
        "type": "async",
        "description": "Expects the CSS property value of the passed element to be the compare value.",
        "arguments": [
          {
            "name": "elementOrSelector",
            "type": "string",
            "default": null
          },
          {
            "name": "cssProperty",
            "type": "string",
            "default": null
          },
          {
            "name": "compareValue",
            "type": "string",
            "default": null
          }
        ]
      },
      "expectTextToBe": {
        "type": "async",
        "description": "Expects the text of the passed element to be the compare value.",
        "arguments": [
          {
            "name": "elementOrSelector",
            "type": "string",
            "default": null
          },
          {
            "name": "compareValue",
            "type": "string",
            "default": null
          }
        ]
      },
      "expectToBeVisible": {
        "type": "async",
        "description": "Expects that the element is visible to the user.",
        "arguments": [
          {
            "name": "elementOrSelector",
            "type": "string",
            "default": null
          }
        ]
      },
      "expectToBeNotVisible": {
        "type": "async",
        "description": "Expects that the element is not visible to the user.",
        "arguments": [
          {
            "name": "elementOrSelector",
            "type": "string",
            "default": null
          },
          {
            "name": "timeout",
            "type": "number",
            "default": 30000
          }
        ]
      }
    },
    "element": {
      "waitForAll": {
        "type": "async",
        "description": "Waits until all elements with the given selector are rendered. Will fail if no element is found.",
        "arguments": [
          {
            "name": "selector",
            "type": "object",
            "default": null
          },
          {
            "name": "timeout",
            "type": "number",
            "default": 30000
          }
        ]
      },
      "waitToBePresent": {
        "type": "async",
        "description": "Waits until the element with the given selector is present.",
        "arguments": [
          {
            "name": "selector",
            "type": "object",
            "default": null
          },
          {
            "name": "timeout",
            "type": "number",
            "default": 30000
          }
        ]
      },
      "waitToBeVisible": {
        "type": "async",
        "description": "Waits until the element with the given selector is visible.",
        "arguments": [
          {
            "name": "selector",
            "type": "object",
            "default": null
          },
          {
            "name": "timeout",
            "type": "number",
            "default": 30000
          }
        ]
      },
      "waitToBeClickable": {
        "type": "async",
        "description": "Waits until the element with the given selector is clickable.",
        "arguments": [
          {
            "name": "selector",
            "type": "object",
            "default": null
          },
          {
            "name": "timeout",
            "type": "number",
            "default": 30000
          }
        ]
      },
      "getAllDisplayed": {
        "type": "async",
        "description": "Gets all visible elements with the passed selector.",
        "arguments": [
          {
            "name": "selector",
            "type": "object",
            "default": null
          },
          {
            "name": "timeout",
            "type": "number",
            "default": 30000
          }
        ],
        "returnType": "array"
      },
      "getAll": {
        "type": "async",
        "description": "Returns all elements found by the given selector despite visible or not.",
        "arguments": [
          {
            "name": "selector",
            "type": "object",
            "default": null
          },
          {
            "name": "timeout",
            "type": "number",
            "default": 30000
          }
        ]
      },
      "getByCss": {
        "type": "async",
        "description": "Gets the element with the given CSS selector.",
        "arguments": [
          {
            "name": "selector",
            "type": "object",
            "default": null
          },
          {
            "name": "index",
            "type": "number",
            "default": 0
          },
          {
            "name": "timeout",
            "type": "number",
            "default": 30000
          },
          {
            "name": "includeHidden",
            "type": "boolean",
            "default": true
          }
        ],
        "returnType": "object"
      },
      "getByCssContainingText": {
        "type": "async",
        "description": "Gets the element with the given CSS selector containing the given text value.",
        "arguments": [
          {
            "name": "selector",
            "type": "object",
            "default": null
          },
          {
            "name": "text",
            "type": "string",
            "default": "\"\""
          },
          {
            "name": "index",
            "type": "number",
            "default": 0
          },
          {
            "name": "timeout",
            "type": "number",
            "default": 30000
          },
          {
            "name": "includeHidden",
            "type": "boolean",
            "default": true
          },
          {
            "name": "strict",
            "type": "boolean",
            "default": true
          }
        ],
        "returnType": "object"
      },
      "getById": {
        "type": "async",
        "description": "Gets the element with the given ID.",
        "arguments": [
          {
            "name": "id",
            "type": "string",
            "default": null
          },
          {
            "name": "timeout",
            "type": "number",
            "default": 30000
          },
          {
            "name": "includeHidden",
            "type": "boolean",
            "default": true
          }
        ],
        "returnType": "object"
      },
      "getByClass": {
        "type": "async",
        "description": "Gets the element with the given class.",
        "arguments": [
          {
            "name": "elemClass",
            "type": "string",
            "default": null
          },
          {
            "name": "index",
            "type": "number",
            "default": 0
          },
          {
            "name": "timeout",
            "type": "number",
            "default": 30000
          },
          {
            "name": "includeHidden",
            "type": "boolean",
            "default": true
          }
        ],
        "returnType": "object"
      },
      "getByName": {
        "type": "async",
        "description": "Gets the element with the given name.",
        "arguments": [
          {
            "name": "name",
            "type": "string",
            "default": null
          },
          {
            "name": "index",
            "type": "number",
            "default": 0
          },
          {
            "name": "timeout",
            "type": "number",
            "default": 30000
          },
          {
            "name": "includeHidden",
            "type": "boolean",
            "default": true
          }
        ],
        "returnType": "object"
      },
      "getByXPath": {
        "type": "async",
        "description": "Gets the element with the given XPath.",
        "arguments": [
          {
            "name": "xpath",
            "type": "string",
            "default": null
          },
          {
            "name": "index",
            "type": "number",
            "default": 0
          },
          {
            "name": "timeout",
            "type": "number",
            "default": 30000
          },
          {
            "name": "includeHidden",
            "type": "boolean",
            "default": true
          }
        ],
        "returnType": "object"
      },
      "getByChild": {
        "type": "async",
        "description": "Gets an element by its selector and child selector. Can be used when multiple elements have the same properties.",
        "arguments": [
          {
            "name": "elementSelector",
            "type": "string",
            "default": null
          },
          {
            "name": "childSelector",
            "type": "string",
            "default": null
          },
          {
            "name": "index",
            "type": "number",
            "default": 0
          },
          {
            "name": "timeout",
            "type": "number",
            "default": 30000
          },
          {
            "name": "includeHidden",
            "type": "boolean",
            "default": true
          }
        ],
        "returnType": "object"
      },
      "getByParent": {
        "type": "async",
        "description": "Gets an element by its selector and parent selector. Can be used when multiple elements have the same properties.",
        "arguments": [
          {
            "name": "elementSelector",
            "type": "string",
            "default": null
          },
          {
            "name": "parentSelector",
            "type": "string",
            "default": null
          },
          {
            "name": "index",
            "type": "number",
            "default": 0
          },
          {
            "name": "timeout",
            "type": "number",
            "default": 30000
          },
          {
            "name": "includeHidden",
            "type": "boolean",
            "default": true
          }
        ],
        "returnType": "object"
      },
      "isVisible": {
        "type": "async",
        "description": "Returns a boolean if the element is visible to the user.",
        "arguments": [
          {
            "name": "element",
            "type": "object",
            "default": null
          },
          {
            "name": "strict",
            "type": "boolean",
            "default": true
          }
        ],
        "returnType": "boolean"
      },
      "isPresent": {
        "type": "async",
        "description": "Returns a boolean if the element is present at the DOM or not. It might be hidden.",
        "arguments": [
          {
            "name": "elem",
            "type": "object",
            "default": null
          }
        ],
        "returnType": "boolean"
      },
      "isEnabled": {
        "type": "async",
        "description": "Returns a boolean if the element is enabled or not.",
        "arguments": [
          {
            "name": "elem",
            "type": "element",
            "default": null
          }
        ],
        "returnType": "boolean"
      },
      "isPresentByCss": {
        "type": "async",
        "description": "Returns a boolean if the element is present at the DOM or not.",
        "arguments": [
          {
            "name": "css",
            "type": "string",
            "default": null
          },
          {
            "name": "index",
            "type": "number",
            "default": 0
          },
          {
            "name": "timeout",
            "type": "number",
            "default": 30000
          }
        ],
        "returnType": "boolean"
      },
      "isPresentByXPath": {
        "type": "async",
        "description": "Returns a boolean if the element is present at the DOM or not.",
        "arguments": [
          {
            "name": "xpath",
            "type": "string",
            "default": null
          },
          {
            "name": "index",
            "type": "number",
            "default": 0
          },
          {
            "name": "timeout",
            "type": "number",
            "default": 30000
          }
        ],
        "returnType": "boolean"
      },
      "isSelected": {
        "type": "async",
        "description": "Returns a boolean if the element (e.g. checkbox) is selected.",
        "arguments": [
          {
            "name": "elem",
            "type": "object",
            "default": null
          }
        ],
        "returnType": "boolean"
      },
      "getAttributeValue": {
        "type": "async",
        "description": "Returns the attributes value of the passed element.",
        "arguments": [
          {
            "name": "elem",
            "type": "object",
            "default": null
          },
          {
            "name": "attribute",
            "type": "string",
            "default": null
          }
        ],
        "returnType": "string"
      },
      "getValue": {
        "type": "async",
        "description": "Returns the value of the passed element.",
        "arguments": [
          {
            "name": "elem",
            "type": "object",
            "default": null
          }
        ],
        "returnType": "string"
      },
      "getCssPropertyValue": {
        "type": "async",
        "description": "Returns the value of the passed CSS property of the element.",
        "arguments": [
          {
            "name": "elementOrSelector",
            "type": "string",
            "default": null
          },
          {
            "name": "cssProperty",
            "type": "string",
            "default": null
          }
        ],
        "returnType": "string"
      },
      "setInnerHTML": {
        "type": "async",
        "description": "Sets the innerHTML value of the given element.\nCAUTION: Only use this if filling the value in the normal way is not working and if it is unavoidable. Keep in mind, that a user is not able to perform such actions.",
        "arguments": [
          {
            "name": "elem",
            "type": "object",
            "default": null
          }
        ],
        "returnType": "string"
      },
      "highlight": {
        "type": "async",
        "description": "Highlights the passed element.",
        "arguments": [
          {
            "name": "elem",
            "type": "object",
            "default": null
          },
          {
            "name": "duration",
            "type": "integer",
            "default": "2000"
          },
          {
            "name": "color",
            "type": "string",
            "default": "\"red\""
          }
        ]
      }
    },
    "navigation": {
      "navigateToApplication": {
        "type": "async",
        "description": "Navigates to the application via the passed relative reference. The path will be added to the baseUrl maintained in the config.",
        "arguments": [
          {
            "name": "relativeReference",
            "type": "string",
            "default": null
          },
          {
            "name": "refresh",
            "type": "boolean",
            "default": true
          }
        ]
      }
    },
    "session": {
      "loginSapNetWeaver": {
        "type": "async",
        "description": "Login for SAP NetWebGUI form and specific username and password.",
        "arguments": [
          {
            "name": "username",
            "type": "string",
            "default": null
          },
          {
            "name": "password",
            "type": "string",
            "default": null
          },
          {
            "name": "clickContinue",
            "type": "boolean",
            "default": true
          },
          {
            "name": "iframeCssSelector",
            "type": "string",
            "default": "\"iframe\""
          }
        ]
      }
    },
    "userInteraction": {
      "click": {
        "type": "async",
        "description": "Clicks on the passed element.",
        "arguments": [
          {
            "name": "elementOrSelector",
            "type": "string",
            "default": null
          },
          {
            "name": "timeout",
            "type": "number",
            "default": 30000
          }
        ]
      },
      "clickAndRetry": {
        "type": "async",
        "description": "Clicks on the passed element, retries in case it fails.",
        "arguments": [
          {
            "name": "elementOrSelector",
            "type": "string",
            "default": null
          },
          {
            "name": "timeout",
            "type": "number",
            "default": 30000
          },
          {
            "name": "retries",
            "type": "number",
            "default": 3
          },
          {
            "name": "interval",
            "type": "number",
            "default": 5000
          }
        ]
      },
      "doubleClick": {
        "type": "async",
        "description": "Double Clicks on the passed element.",
        "arguments": [
          {
            "name": "elementOrSelector",
            "type": "string",
            "default": null
          },
          {
            "name": "timeout",
            "type": "number",
            "default": 30000
          }
        ]
      },
      "rightClick": {
        "type": "async",
        "description": "Right Clicks on the passed element.",
        "arguments": [
          {
            "name": "elementOrSelector",
            "type": "string",
            "default": null
          },
          {
            "name": "timeout",
            "type": "number",
            "default": 30000
          }
        ]
      },
      "check": {
        "type": "async",
        "description": "Checks the given checkbox.",
        "arguments": [
          {
            "name": "elementOrSelector",
            "type": "string",
            "default": null
          }
        ]
      },
      "uncheck": {
        "type": "async",
        "description": "Unchecks the given checkbox.",
        "arguments": [
          {
            "name": "elementOrSelector",
            "type": "string",
            "default": null
          }
        ]
      },
      "fill": {
        "type": "async",
        "description": "Fills the given value into the passed input.",
        "arguments": [
          {
            "name": "elementOrSelector",
            "type": "string",
            "default": null
          },
          {
            "name": "value",
            "type": "string",
            "default": null
          }
        ]
      },
      "fillAndRetry": {
        "type": "async",
        "description": "Fills the given value into the passed input, retries in case of a failure.",
        "arguments": [
          {
            "name": "elementOrSelector",
            "type": "string",
            "default": null
          },
          {
            "name": "value",
            "type": "string",
            "default": null
          },
          {
            "name": "retries",
            "type": "number",
            "default": 3
          },
          {
            "name": "interval",
            "type": "number",
            "default": 5000
          }
        ]
      },
      "clear": {
        "type": "async",
        "description": "Clears the passed input element.",
        "arguments": [
          {
            "name": "elementOrSelector",
            "type": "string",
            "default": null
          }
        ]
      },
      "clearAndRetry": {
        "type": "async",
        "description": "Clears the passed input element, retries in case of a failure.",
        "arguments": [
          {
            "name": "elementOrSelector",
            "type": "string",
            "default": null
          },
          {
            "name": "retries",
            "type": "number",
            "default": 3
          },
          {
            "name": "interval",
            "type": "number",
            "default": 5000
          }
        ]
      },
      "clearAndFill": {
        "type": "async",
        "description": "Clears and fills the passed input element.",
        "arguments": [
          {
            "name": "elementOrSelector",
            "type": "string",
            "default": null
          },
          {
            "name": "value",
            "type": "string",
            "default": null
          }
        ]
      },
      "clearAndFillAndRetry": {
        "type": "async",
        "description": "Clears and fills the passed input, retries in case it fails.",
        "arguments": [
          {
            "name": "elementOrSelector",
            "type": "string",
            "default": null
          },
          {
            "name": "value",
            "type": "string",
            "default": null
          },
          {
            "name": "retries",
            "type": "number",
            "default": 3
          },
          {
            "name": "interval",
            "type": "number",
            "default": 5000
          },
          {
            "name": "verify",
            "type": "boolean",
            "default": true
          }
        ]
      },
      "mouseOverElement": {
        "type": "async",
        "description": "Moves the cursor/focus to the passed element.",
        "arguments": [
          {
            "name": "elementOrSelector",
            "type": "string",
            "default": null
          },
          {
            "name": "xOffset",
            "type": "number",
            "default": null
          },
          {
            "name": "yOffset",
            "type": "number",
            "default": null
          }
        ]
      },
      "scrollToElement": {
        "type": "async",
        "description": "Scrolls an element into view.",
        "arguments": [
          {
            "name": "elem",
            "type": "element",
            "default": null
          },
          {
            "name": "alignment",
            "type": "string",
            "default": "\"center\""
          }
        ]
      },
      "selectAll": {
        "type": "async",
        "description": "Performs \"select all\" (ctrl + a) at the element with the given selector.",
        "arguments": [
          {
            "name": "selector",
            "type": "object",
            "default": null
          },
          {
            "name": "timeout",
            "type": "number",
            "default": 30000
          }
        ]
      },
      "dragAndDrop": {
        "type": "async",
        "description": "Drags and drops the given element to the given target element.",
        "arguments": [
          {
            "name": "elementOrSelector",
            "type": "string",
            "default": null
          },
          {
            "name": "targetElem",
            "type": "object",
            "default": null
          }
        ]
      },
      "moveCursorAndClick": {
        "type": "async",
        "description": "Moves the cursor to the target element and clicks on it. Can be used for charts.",
        "arguments": [
          {
            "name": "elementOrSelector",
            "type": "string",
            "default": null
          }
        ]
      },
      "clickElementInSvg": {
        "type": "async",
        "description": "Clicks on an inner element within a SVG element.",
        "arguments": [
          {
            "name": "elementOrSelector",
            "type": "string",
            "default": null
          },
          {
            "name": "innerSelector",
            "type": "string",
            "default": null
          }
        ]
      }
    }
  },
  "service": {
    "odata": {
      "init": {
        "type": "async",
        "description": "Initializes the OData Service.\nXCSRF-Token will be automatically fetched and stored in the service instance.\nCookies will also automatically assembled and stored in the service instance.",
        "arguments": [
          {
            "name": "url",
            "type": "string",
            "default": null
          },
          {
            "name": "username",
            "type": "string",
            "default": null
          },
          {
            "name": "password",
            "type": "string",
            "default": null
          },
          {
            "name": "loggingEnabled",
            "type": "boolean",
            "default": true
          },
          {
            "name": "params",
            "type": "object",
            "default": "{}"
          },
          {
            "name": "authType",
            "type": "string",
            "default": null
          },
          {
            "name": "headers",
            "type": "object",
            "default": "undefined"
          }
        ],
        "returnType": "object"
      },
      "get": {
        "type": "async",
        "description": "Sends a GET request to retrieve data from the specified OData entity set.",
        "arguments": [
          {
            "name": "srv",
            "type": "object",
            "default": null
          },
          {
            "name": "entitySet",
            "type": "string",
            "default": null
          },
          {
            "name": "keys",
            "type": "object",
            "default": null
          },
          {
            "name": "raw",
            "type": "boolean",
            "default": true
          },
          {
            "name": "headers",
            "type": "object",
            "default": null
          },
          {
            "name": "queryParams",
            "type": "object",
            "default": null
          }
        ],
        "returnType": "promise"
      },
      "getEntitySet": {
        "type": "async",
        "description": "GET's the EntitySet collection.",
        "arguments": [
          {
            "name": "srv",
            "type": "object",
            "default": null
          },
          {
            "name": "entitySet",
            "type": "string",
            "default": null
          },
          {
            "name": "filterString",
            "type": "string",
            "default": null
          },
          {
            "name": "selectionFields",
            "type": "string",
            "default": null
          },
          {
            "name": "queryParams",
            "type": "object",
            "default": null
          }
        ],
        "returnType": "promise"
      },
      "post": {
        "type": "async",
        "description": "Sends a POST request to retrieve data from the specified OData entity set for the given payload.",
        "arguments": [
          {
            "name": "srv",
            "type": "object",
            "default": null
          },
          {
            "name": "entitySet",
            "type": "string",
            "default": null
          },
          {
            "name": "payload",
            "type": "object",
            "default": null
          },
          {
            "name": "raw",
            "type": "boolean",
            "default": true
          },
          {
            "name": "headers",
            "type": "object",
            "default": null
          },
          {
            "name": "queryParams",
            "type": "object",
            "default": null
          }
        ],
        "returnType": "promise"
      },
      "merge": {
        "type": "async",
        "description": "@description Sends a MERGE request to merge data from the specified OData entity set for the given payload.",
        "arguments": [
          {
            "name": "srv",
            "type": "object",
            "default": null
          },
          {
            "name": "entitySet",
            "type": "string",
            "default": null
          },
          {
            "name": "payload",
            "type": "object",
            "default": null
          },
          {
            "name": "headers",
            "type": "object",
            "default": null
          }
        ],
        "returnType": "promise"
      },
      "patch": {
        "type": "async",
        "description": "@description Sends a PATCH request to patch data from the specified OData entity set for the given payload.",
        "arguments": [
          {
            "name": "srv",
            "type": "object",
            "default": null
          },
          {
            "name": "entitySet",
            "type": "string",
            "default": null
          },
          {
            "name": "payload",
            "type": "object",
            "default": null
          },
          {
            "name": "headers",
            "type": "object",
            "default": null
          }
        ],
        "returnType": "promise"
      },
      "delete": {
        "type": "async",
        "description": "Sends a DELETE request to the specified OData entity set.",
        "arguments": [
          {
            "name": "srv",
            "type": "object",
            "default": null
          },
          {
            "name": "entitySet",
            "type": "string",
            "default": null
          },
          {
            "name": "options",
            "type": "object",
            "default": null
          },
          {
            "name": "headers",
            "type": "object",
            "default": null
          }
        ],
        "returnType": "promise"
      },
      "callFunctionImport": {
        "type": "async",
        "description": "Sends a function import request to the OData service instance.",
        "arguments": [
          {
            "name": "srv",
            "type": "object",
            "default": null
          },
          {
            "name": "functionImportName",
            "type": "string",
            "default": null
          },
          {
            "name": "options",
            "type": "object",
            "default": null
          }
        ],
        "returnType": "promise"
      },
      "isFeatureToggleActivated": {
        "type": "async",
        "description": "Checks if a feature toggle is switched on or off.",
        "arguments": [
          {
            "name": "srv",
            "type": "object",
            "default": null
          },
          {
            "name": "featureName",
            "type": "string",
            "default": null
          }
        ],
        "returnType": "promise"
      },
      "getOutputManagementPdfStream": {
        "type": "async",
        "description": "returns a stream of output management pdf file.",
        "arguments": [
          {
            "name": "outputConf",
            "type": "object",
            "default": null
          },
          {
            "name": "url",
            "type": "string",
            "default": null
          },
          {
            "name": "username",
            "type": "string",
            "default": null
          },
          {
            "name": "password",
            "type": "string",
            "default": null
          }
        ]
      },
      "readPdfFromDirectUrl": {
        "type": "async",
        "description": "returns a stream of pdf file which is part of attachment.",
        "arguments": [
          {
            "name": "url",
            "type": "string",
            "default": null
          },
          {
            "name": "username",
            "type": "string",
            "default": null
          },
          {
            "name": "password",
            "type": "string",
            "default": null
          },
          {
            "name": "isSaml",
            "type": "boolean",
            "default": true
          }
        ]
      }
    },
    "rest": {
      "init": {
        "type": "sync",
        "description": "Returns an axios instance for custom axios handling.",
        "arguments": [
          {
            "name": "customConfig",
            "type": "object",
            "default": "{}"
          }
        ],
        "returnType": "object"
      },
      "get": {
        "type": "async",
        "description": "makes a GET request.",
        "arguments": [
          {
            "name": "uri",
            "type": "string",
            "default": null
          },
          {
            "name": "config",
            "type": "object",
            "default": null
          }
        ],
        "returnType": "object"
      },
      "post": {
        "type": "async",
        "description": "makes a POST request.",
        "arguments": [
          {
            "name": "uri",
            "type": "string",
            "default": null
          },
          {
            "name": "payload",
            "type": "object",
            "default": null
          },
          {
            "name": "config",
            "type": "object",
            "default": null
          }
        ],
        "returnType": "object"
      },
      "delete": {
        "type": "async",
        "description": "makes a DELETE request.",
        "arguments": [
          {
            "name": "uri",
            "type": "string",
            "default": null
          },
          {
            "name": "config",
            "type": "object",
            "default": null
          }
        ],
        "returnType": "object"
      },
      "patch": {
        "type": "async",
        "description": "makes a PATCH request.",
        "arguments": [
          {
            "name": "uri",
            "type": "string",
            "default": null
          },
          {
            "name": "payload",
            "type": "object",
            "default": null
          },
          {
            "name": "config",
            "type": "object",
            "default": null
          }
        ],
        "returnType": "object"
      },
      "put": {
        "type": "async",
        "description": "makes a PUT request.",
        "arguments": [
          {
            "name": "uri",
            "type": "string",
            "default": null
          },
          {
            "name": "payload",
            "type": "object",
            "default": null
          },
          {
            "name": "config",
            "type": "object",
            "default": null
          }
        ],
        "returnType": "object"
      }
    }
  },
  "ui5": {
    "assertion": {
      "expectAttributeToBe": {
        "type": "async",
        "description": "Expects the passed elements attribute to be the compare value.",
        "arguments": [
          {
            "name": "selector",
            "type": "object",
            "default": null
          },
          {
            "name": "attribute",
            "type": "string",
            "default": null
          },
          {
            "name": "compareValue",
            "type": "string",
            "default": null
          },
          {
            "name": "index",
            "type": "number",
            "default": 0
          },
          {
            "name": "timeout",
            "type": "number",
            "default": 30000
          },
          {
            "name": "loadPropertyTimeout",
            "type": "number",
            "default": 10000
          }
        ]
      },
      "expectAttributeToContain": {
        "type": "async",
        "description": "Expects the passed elements attribute to contain the compare value.",
        "arguments": [
          {
            "name": "selector",
            "type": "object",
            "default": null
          },
          {
            "name": "attribute",
            "type": "string",
            "default": null
          },
          {
            "name": "compareValue",
            "type": "string",
            "default": null
          },
          {
            "name": "index",
            "type": "number",
            "default": 0
          },
          {
            "name": "timeout",
            "type": "number",
            "default": 30000
          },
          {
            "name": "loadPropertyTimeout",
            "type": "number",
            "default": 10000
          }
        ]
      },
      "expectTextToBe": {
        "type": "async",
        "description": "Expects the passed elements text attribute to be the compare value.",
        "arguments": [
          {
            "name": "selector",
            "type": "object",
            "default": null
          },
          {
            "name": "compareValue",
            "type": "string",
            "default": null
          },
          {
            "name": "index",
            "type": "number",
            "default": 0
          },
          {
            "name": "timeout",
            "type": "number",
            "default": 30000
          },
          {
            "name": "loadPropertyTimeout",
            "type": "number",
            "default": 10000
          }
        ]
      },
      "expectValueToBe": {
        "type": "async",
        "description": "Expects the passed elements value attribute to be the compare value.",
        "arguments": [
          {
            "name": "selector",
            "type": "object",
            "default": null
          },
          {
            "name": "compareValue",
            "type": "string",
            "default": null
          },
          {
            "name": "index",
            "type": "number",
            "default": 0
          },
          {
            "name": "timeout",
            "type": "number",
            "default": 30000
          },
          {
            "name": "loadPropertyTimeout",
            "type": "number",
            "default": 10000
          }
        ]
      },
      "expectValueToBeDefined": {
        "type": "async",
        "description": "Expects the passed elements value to be defined.",
        "arguments": [
          {
            "name": "selector",
            "type": "object",
            "default": null
          },
          {
            "name": "index",
            "type": "number",
            "default": 0
          },
          {
            "name": "timeout",
            "type": "number",
            "default": 30000
          }
        ]
      },
      "expectToBeNotEnabled": {
        "type": "async",
        "description": "Expects that the element is not enabled to the user.",
        "arguments": [
          {
            "name": "selector",
            "type": "object",
            "default": null
          },
          {
            "name": "index",
            "type": "number",
            "default": 0
          },
          {
            "name": "timeout",
            "type": "number",
            "default": 30000
          },
          {
            "name": "loadPropertyTimeout",
            "type": "number",
            "default": 10000
          }
        ]
      },
      "expectToBeEnabled": {
        "type": "async",
        "description": "Expects that the element is enabled to the user.",
        "arguments": [
          {
            "name": "selector",
            "type": "object",
            "default": null
          },
          {
            "name": "index",
            "type": "number",
            "default": 0
          },
          {
            "name": "timeout",
            "type": "number",
            "default": 30000
          },
          {
            "name": "loadPropertyTimeout",
            "type": "number",
            "default": 10000
          }
        ]
      },
      "expectValidationError": {
        "type": "async",
        "description": "Expects the \"valueState\" of the element to be \"Error\".",
        "arguments": [
          {
            "name": "selector",
            "type": "object",
            "default": null
          },
          {
            "name": "index",
            "type": "number",
            "default": 0
          },
          {
            "name": "timeout",
            "type": "number",
            "default": 30000
          },
          {
            "name": "loadPropertyTimeout",
            "type": "number",
            "default": 10000
          }
        ]
      },
      "expectValidationSuccess": {
        "type": "async",
        "description": "Expects the valueState of the element to be \"None\".",
        "arguments": [
          {
            "name": "selector",
            "type": "object",
            "default": null
          },
          {
            "name": "index",
            "type": "number",
            "default": 0
          },
          {
            "name": "timeout",
            "type": "number",
            "default": 30000
          },
          {
            "name": "loadPropertyTimeout",
            "type": "number",
            "default": 10000
          }
        ]
      },
      "expectCssPropertyValueToBe": {
        "type": "async",
        "description": "Expects the CSS property value of the passed element to be the compare value.",
        "arguments": [
          {
            "name": "selector",
            "type": "object",
            "default": null
          },
          {
            "name": "cssProperty",
            "type": "string",
            "default": null
          },
          {
            "name": "compareValue",
            "type": "string",
            "default": null
          },
          {
            "name": "index",
            "type": "number",
            "default": 0
          },
          {
            "name": "timeout",
            "type": "number",
            "default": 30000
          }
        ]
      },
      "expectBindingPathToBe": {
        "type": "async",
        "description": "Expects the passed elements attribute binding-path to contain the compare value",
        "arguments": [
          {
            "name": "selector",
            "type": "object",
            "default": null
          },
          {
            "name": "attribute",
            "type": "string",
            "default": null
          },
          {
            "name": "compareValue",
            "type": "string",
            "default": null
          },
          {
            "name": "index",
            "type": "number",
            "default": 0
          },
          {
            "name": "timeout",
            "type": "number",
            "default": 30000
          },
          {
            "name": "loadPropertyTimeout",
            "type": "number",
            "default": 10000
          }
        ]
      },
      "expectBindingContextPathToBe": {
        "type": "async",
        "description": "Expects the passed elements binding-context-path to be the compare value.",
        "arguments": [
          {
            "name": "selector",
            "type": "object",
            "default": null
          },
          {
            "name": "attribute",
            "type": "string",
            "default": null
          },
          {
            "name": "compareValue",
            "type": "string",
            "default": null
          },
          {
            "name": "index",
            "type": "number",
            "default": 0
          },
          {
            "name": "timeout",
            "type": "number",
            "default": 30000
          },
          {
            "name": "loadPropertyTimeout",
            "type": "number",
            "default": 10000
          }
        ]
      },
      "expectToBeVisible": {
        "type": "async",
        "description": "Expects that the element is visible to the user.",
        "arguments": [
          {
            "name": "selector",
            "type": "object",
            "default": null
          },
          {
            "name": "index",
            "type": "number",
            "default": 0
          },
          {
            "name": "timeout",
            "type": "number",
            "default": 30000
          },
          {
            "name": "loadPropertyTimeout",
            "type": "number",
            "default": 10000
          }
        ]
      },
      "expectToBeVisibleInViewport": {
        "type": "async",
        "description": "Expects that the element is visible in the viewport.",
        "arguments": [
          {
            "name": "selector",
            "type": "object",
            "default": null
          },
          {
            "name": "index",
            "type": "number",
            "default": 0
          },
          {
            "name": "timeout",
            "type": "number",
            "default": 30000
          },
          {
            "name": "loadPropertyTimeout",
            "type": "number",
            "default": 10000
          }
        ]
      },
      "expectToBeNotVisible": {
        "type": "async",
        "description": "Expects that the element is not visible to the user.",
        "arguments": [
          {
            "name": "selector",
            "type": "object",
            "default": null
          },
          {
            "name": "index",
            "type": "number",
            "default": 0
          },
          {
            "name": "timeout",
            "type": "number",
            "default": 30000
          }
        ]
      },
      "expectMessageToastTextToBe": {
        "type": "async",
        "description": "Expects the message toast with the passed text.",
        "arguments": [
          {
            "name": "text",
            "type": "string",
            "default": null
          },
          {
            "name": "timeout",
            "type": "number",
            "default": 30000
          }
        ]
      }
    },
    "confirmationDialog": {
      "clickButton": {
        "type": "async",
        "description": "Clicks the button with the given text at the confirmation dialog.",
        "arguments": [
          {
            "name": "text",
            "type": "string",
            "default": null
          },
          {
            "name": "timeout",
            "type": "number",
            "default": 30000
          }
        ]
      },
      "clickOk": {
        "type": "async",
        "description": "Clicks the \"OK\" button at the confirmation dialog.",
        "arguments": [
          {
            "name": "timeout",
            "type": "number",
            "default": 30000
          }
        ]
      },
      "clickCancel": {
        "type": "async",
        "description": "Clicks the \"Cancel\" button at the confirmation dialog.",
        "arguments": [
          {
            "name": "timeout",
            "type": "number",
            "default": 30000
          }
        ]
      },
      "clickYes": {
        "type": "async",
        "description": "Clicks the \"Yes\" button at the confirmation dialog.",
        "arguments": [
          {
            "name": "timeout",
            "type": "number",
            "default": null
          }
        ]
      },
      "clickNo": {
        "type": "async",
        "description": "Clicks the \"Yes\" button at the confirmation dialog.",
        "arguments": [
          {
            "name": "timeout",
            "type": "number",
            "default": null
          }
        ]
      },
      "clickCreate": {
        "type": "async",
        "description": "Clicks the create button in the confirmation dialog",
        "arguments": [
          {
            "name": "timeout",
            "type": "number",
            "default": null
          }
        ]
      },
      "clickDelete": {
        "type": "async",
        "description": "Clicks the \"Delete\" button at the confirmation dialog.",
        "arguments": [
          {
            "name": "timeout",
            "type": "number",
            "default": null
          }
        ]
      },
      "clickRevokeApproval": {
        "type": "async",
        "description": "Clicks the \"Revoke Approval\" button at the confirmation dialog.",
        "arguments": [
          {
            "name": "timeout",
            "type": "number",
            "default": null
          }
        ]
      }
    },
    "control": {
      "execute": {
        "type": "async",
        "description": "Executes a native UI5 action as callback function in the browser on the given UI5 control.",
        "arguments": [
          {
            "name": "callbackFunction",
            "type": "function",
            "default": null
          },
          {
            "name": "selectorOrElement",
            "type": "string",
            "default": null
          },
          {
            "name": "args",
            "type": "object",
            "default": null
          }
        ]
      },
      "focus": {
        "type": "async",
        "description": "Focuses on the element with the given selector to get it into view. If focus is not possible scrollToElement is used.",
        "arguments": [
          {
            "name": "selector",
            "type": "object",
            "default": null
          },
          {
            "name": "index",
            "type": "number",
            "default": 0
          },
          {
            "name": "timeout",
            "type": "number",
            "default": 30000
          }
        ]
      },
      "getProperty": {
        "type": "async",
        "description": "Gets the UI5 control property of the given element.",
        "arguments": [
          {
            "name": "selectorOrElement",
            "type": "string",
            "default": null
          },
          {
            "name": "propertyName",
            "type": "string",
            "default": null
          }
        ]
      },
      "getAggregationProperty": {
        "type": "async",
        "description": "Gets the UI5 control aggregation property  of the given element.",
        "arguments": [
          {
            "name": "selectorOrElement",
            "type": "string",
            "default": null
          },
          {
            "name": "propertyName",
            "type": "string",
            "default": null
          }
        ]
      },
      "getAssociationProperty": {
        "type": "async",
        "description": "Get UI control property",
        "arguments": [
          {
            "name": "selectorOrElement",
            "type": "string",
            "default": null
          },
          {
            "name": "propertyName",
            "type": "string",
            "default": null
          }
        ]
      },
      "getBindingContextPathProperty": {
        "type": "async",
        "description": "Get UI control binding context path",
        "arguments": [
          {
            "name": "selectorOrElement",
            "type": "string",
            "default": null
          }
        ]
      },
      "getPropertyBinding": {
        "type": "async",
        "description": "Get UI control property",
        "arguments": [
          {
            "name": "selectorOrElement",
            "type": "string",
            "default": null
          },
          {
            "name": "propertyName",
            "type": "string",
            "default": null
          }
        ],
        "returnType": "array"
      }
    },
    "date": {
      "pick": {
        "type": "async",
        "description": "Picks the passed date using the \"DatePicker\" with the given selector.",
        "arguments": [
          {
            "name": "selector",
            "type": "selector",
            "default": null
          },
          {
            "name": "date",
            "type": "date",
            "default": null
          },
          {
            "name": "index",
            "type": "number",
            "default": 0
          }
        ]
      },
      "pickRange": {
        "type": "async",
        "description": "Picks the passed date range using the \"DatePicker\" with the given selector.\nNote that this will only work within the current month!",
        "arguments": [
          {
            "name": "selector",
            "type": "selector",
            "default": null
          },
          {
            "name": "range",
            "type": "array",
            "default": null
          },
          {
            "name": "index",
            "type": "number",
            "default": 0
          }
        ]
      },
      "pickWithTime": {
        "type": "async",
        "description": "Picks the passed date with time using the \"DateTimePicker\" with the given selector.",
        "arguments": [
          {
            "name": "selector",
            "type": "selector",
            "default": null
          },
          {
            "name": "date",
            "type": "date",
            "default": null
          },
          {
            "name": "index",
            "type": "number",
            "default": 0
          }
        ]
      },
      "fillRange": {
        "type": "async",
        "description": "Enters the passed date range to the date input with the given selector by providing the start- and end date.",
        "arguments": [
          {
            "name": "selector",
            "type": "selector",
            "default": null
          },
          {
            "name": "range",
            "type": "array",
            "default": null
          },
          {
            "name": "index",
            "type": "number",
            "default": 0
          }
        ]
      }
    },
    "element": {
      "waitForAll": {
        "type": "async",
        "description": "Waits for all elements matching the given selector.",
        "arguments": [
          {
            "name": "selector",
            "type": "object",
            "default": null
          },
          {
            "name": "timeout",
            "type": "number",
            "default": 30000
          }
        ]
      },
      "getAllDisplayed": {
        "type": "async",
        "description": "Returns the visible elements with the given selector.",
        "arguments": [
          {
            "name": "selector",
            "type": "object",
            "default": null
          },
          {
            "name": "timeout",
            "type": "number",
            "default": 30000
          }
        ],
        "returnType": "array"
      },
      "getDisplayed": {
        "type": "async",
        "description": "Returns the visible element.",
        "arguments": [
          {
            "name": "selector",
            "type": "object",
            "default": null
          },
          {
            "name": "index",
            "type": "number",
            "default": 0
          },
          {
            "name": "timeout",
            "type": "number",
            "default": 30000
          }
        ],
        "returnType": "object"
      },
      "getByText": {
        "type": "async",
        "description": "Returns the element with the given selector and text value.",
        "arguments": [
          {
            "name": "selector",
            "type": "object",
            "default": null
          },
          {
            "name": "value",
            "type": "string",
            "default": null
          },
          {
            "name": "index",
            "type": "number",
            "default": 0
          },
          {
            "name": "timeout",
            "type": "number",
            "default": 30000
          }
        ],
        "returnType": "object"
      },
      "getByChild": {
        "type": "async",
        "description": "Gets an element by its selector and child selector.\nCan be used as unique combination between element and child properties when multiple elements have the same properties.\nNote: For nested selectors, all properties except of the \"elementProperties\" are being ignored.",
        "arguments": [
          {
            "name": "elementSelector",
            "type": "string",
            "default": null
          },
          {
            "name": "childSelector",
            "type": "string",
            "default": null
          },
          {
            "name": "index",
            "type": "number",
            "default": 0
          },
          {
            "name": "timeout",
            "type": "number",
            "default": 30000
          }
        ],
        "returnType": "object"
      },
      "getByParent": {
        "type": "async",
        "description": "Gets an element by its selector and parent selector.\nCan be used as unique combination between element and parent properties when multiple elements have the same properties.\nNote: For nested selectors, all properties except of the \"elementProperties\" are being ignored.",
        "arguments": [
          {
            "name": "elementSelector",
            "type": "string",
            "default": null
          },
          {
            "name": "parentSelector",
            "type": "string",
            "default": null
          },
          {
            "name": "index",
            "type": "number",
            "default": 0
          },
          {
            "name": "timeout",
            "type": "number",
            "default": 30000
          }
        ],
        "returnType": "object"
      },
      "getId": {
        "type": "async",
        "description": "Returns the id of the element with the given selector.",
        "arguments": [
          {
            "name": "selector",
            "type": "object",
            "default": null
          },
          {
            "name": "index",
            "type": "number",
            "default": 0
          },
          {
            "name": "timeout",
            "type": "number",
            "default": 30000
          }
        ],
        "returnType": "string"
      },
      "getPropertyValue": {
        "type": "async",
        "description": "Returns the UI5 property value of the passed element.",
        "arguments": [
          {
            "name": "selector",
            "type": "object",
            "default": null
          },
          {
            "name": "property",
            "type": "string",
            "default": null
          },
          {
            "name": "index",
            "type": "number",
            "default": 0
          },
          {
            "name": "timeout",
            "type": "number",
            "default": 30000
          }
        ],
        "returnType": "any"
      },
      "getValue": {
        "type": "async",
        "description": "Returns the inner value of the passed element.",
        "arguments": [
          {
            "name": "selector",
            "type": "object",
            "default": null
          },
          {
            "name": "index",
            "type": "number",
            "default": 0
          },
          {
            "name": "timeout",
            "type": "number",
            "default": 30000
          }
        ],
        "returnType": "string"
      },
      "getCssPropertyValue": {
        "type": "async",
        "description": "Returns the value of the passed CSS property of the element.",
        "arguments": [
          {
            "name": "selector",
            "type": "object",
            "default": null
          },
          {
            "name": "cssProperty",
            "type": "string",
            "default": null
          },
          {
            "name": "index",
            "type": "number",
            "default": 0
          },
          {
            "name": "timeout",
            "type": "number",
            "default": 30000
          }
        ],
        "returnType": "string"
      },
      "getBindingValue": {
        "type": "async",
        "description": "Returns the value of the given binding property for a specific element.",
        "arguments": [
          {
            "name": "selector",
            "type": "object",
            "default": null
          },
          {
            "name": "bindingContext",
            "type": "string",
            "default": null
          },
          {
            "name": "index",
            "type": "number",
            "default": 0
          },
          {
            "name": "timeout",
            "type": "number",
            "default": 30000
          }
        ],
        "returnType": "string"
      },
      "isVisible": {
        "type": "async",
        "description": "Determines if the element is visible.",
        "arguments": [
          {
            "name": "selector",
            "type": "object",
            "default": null
          },
          {
            "name": "index",
            "type": "number",
            "default": 0
          },
          {
            "name": "timeout",
            "type": "number",
            "default": 30000
          }
        ],
        "returnType": "boolean"
      },
      "highlight": {
        "type": "async",
        "description": "Highlights the element with the given selector.",
        "arguments": [
          {
            "name": "selector",
            "type": "object",
            "default": null
          },
          {
            "name": "duration",
            "type": "number",
            "default": 2000
          },
          {
            "name": "color",
            "type": "string",
            "default": "\"red\""
          }
        ]
      }
    },
    "errorDialog": {
      "expectToBeVisible": {
        "type": "async",
        "description": "Expects that the error dialog is visible on the page.",
        "arguments": []
      },
      "clickClose": {
        "type": "async",
        "description": "Clicks the 'Close' button at the error dialog.",
        "arguments": []
      }
    },
    "footerBar": {
      "clickButton": {
        "type": "async",
        "description": "Clicks the button with the given text at the footer bar.",
        "arguments": [
          {
            "name": "text",
            "type": "string",
            "default": null
          },
          {
            "name": "timeout",
            "type": "number",
            "default": 30000
          }
        ]
      },
      "clickApply": {
        "type": "async",
        "description": "Clicks the 'Apply' button at the footer toolbar.",
        "arguments": [
          {
            "name": "timeout",
            "type": "number",
            "default": 30000
          }
        ]
      },
      "clickSave": {
        "type": "async",
        "description": "Clicks the 'Save' button at the footer toolbar.",
        "arguments": [
          {
            "name": "timeout",
            "type": "number",
            "default": 30000
          }
        ]
      },
      "clickCreate": {
        "type": "async",
        "description": "Clicks the 'Create' button at the footer toolbar.",
        "arguments": [
          {
            "name": "timeout",
            "type": "number",
            "default": 30000
          }
        ]
      },
      "clickCancel": {
        "type": "async",
        "description": "Clicks the 'Cancel' button at the footer toolbar.",
        "arguments": [
          {
            "name": "timeout",
            "type": "number",
            "default": 30000
          }
        ]
      },
      "clickCheck": {
        "type": "async",
        "description": "Clicks the 'Check' button at the footer toolbar.",
        "arguments": [
          {
            "name": "timeout",
            "type": "number",
            "default": 30000
          }
        ]
      },
      "clickOrder": {
        "type": "async",
        "description": "Clicks the 'Order' button at the footer toolbar.",
        "arguments": [
          {
            "name": "timeout",
            "type": "number",
            "default": 30000
          }
        ]
      },
      "clickPost": {
        "type": "async",
        "description": "Clicks the 'Post' button at the footer toolbar.",
        "arguments": [
          {
            "name": "timeout",
            "type": "number",
            "default": 30000
          }
        ]
      },
      "clickAdd": {
        "type": "async",
        "description": "Clicks the 'Add' button at the footer toolbar.",
        "arguments": [
          {
            "name": "timeout",
            "type": "number",
            "default": 30000
          }
        ]
      },
      "clickMessageBoxButton": {
        "type": "async",
        "description": "Opens the message box by clicking the button at the footer bar.",
        "arguments": []
      },
      "clickCloseMessageBox": {
        "type": "async",
        "description": "Closes the message box by clicking the close icon.",
        "arguments": []
      },
      "expectMessageBoxToBeVisible": {
        "type": "async",
        "description": "Expects the MessageBox to be visible.",
        "arguments": []
      },
      "isMessageBoxVisible": {
        "type": "async",
        "description": "Determines if the messageBox is visible.",
        "arguments": [],
        "returnType": "boolean"
      }
    },
    "mockserver": {
      "waitForUi5ApplicationLoad": {
        "type": "async",
        "description": "Waits for the UI5 framework to load and makes sure XHR request finished und busy indicators are not visible anymore.",
        "arguments": []
      },
      "interactWithMockServer": {
        "type": "async",
        "description": "Execute client script function to enable interaction with mockserver instance [you can write code in ui5 app context]",
        "arguments": [
          {
            "name": "mockServerPath",
            "type": "string",
            "default": null
          },
          {
            "name": "fnCallback",
            "type": "string",
            "default": null
          },
          {
            "name": "oParams",
            "type": "string",
            "default": null
          }
        ]
      },
      "attachFunctionBefore": {
        "type": "async",
        "description": "Attaches a callback function in mockserver attachBefore event to be executed",
        "arguments": [
          {
            "name": "method",
            "type": "string",
            "default": null
          },
          {
            "name": "mockServerPath",
            "type": "string",
            "default": null
          },
          {
            "name": "fnBeforeCallback",
            "type": "string",
            "default": null
          },
          {
            "name": "oParams",
            "type": "object",
            "default": null
          }
        ]
      },
      "attachFunctionAfter": {
        "type": "async",
        "description": "Attaches a callback function in mockserver attachAfter event to be executed",
        "arguments": [
          {
            "name": "method",
            "type": "string",
            "default": null
          },
          {
            "name": "mockServerPath",
            "type": "string",
            "default": null
          },
          {
            "name": "fnAfterCallback",
            "type": "string",
            "default": null
          },
          {
            "name": "oParams",
            "type": "object",
            "default": null
          }
        ]
      },
      "addNewRequest": {
        "type": "async",
        "description": "Adds new mock request",
        "arguments": [
          {
            "name": "method",
            "type": "string",
            "default": null
          },
          {
            "name": "mockServerPath",
            "type": "string",
            "default": null
          },
          {
            "name": "urlPathRegex",
            "type": "string",
            "default": null
          },
          {
            "name": "responseJsonPath",
            "type": "string",
            "default": null
          },
          {
            "name": "returnCode",
            "type": "integer",
            "default": null
          },
          {
            "name": "isText",
            "type": "boolean",
            "default": null
          },
          {
            "name": "responseMessages",
            "type": "string",
            "default": null
          },
          {
            "name": "responseLocation",
            "type": "string",
            "default": null
          }
        ]
      },
      "removeRequest": {
        "type": "async",
        "description": "Removes request mock [Doesn't work currently - Mockserver bug]",
        "arguments": [
          {
            "name": "method",
            "type": "string",
            "default": null
          },
          {
            "name": "mockServerPath",
            "type": "string",
            "default": null
          },
          {
            "name": "urlPathRegex",
            "type": "string",
            "default": null
          }
        ]
      },
      "addOrOverrideRequest": {
        "type": "async",
        "description": "Adds new or overrides an existing mock request",
        "arguments": [
          {
            "name": "method",
            "type": "string",
            "default": null
          },
          {
            "name": "mockServerPath",
            "type": "string",
            "default": null
          },
          {
            "name": "urlPathRegex",
            "type": "string",
            "default": null
          },
          {
            "name": "responseJsonPath",
            "type": "string",
            "default": null
          },
          {
            "name": "returnCode",
            "type": "integer",
            "default": null
          },
          {
            "name": "isText",
            "type": "boolean",
            "default": null
          },
          {
            "name": "responseMessages",
            "type": "string",
            "default": null
          },
          {
            "name": "responseLocation",
            "type": "string",
            "default": null
          }
        ]
      },
      "startMockServer": {
        "type": "async",
        "description": "(Re-)Starts mock server instance",
        "arguments": [
          {
            "name": "mockServerPath",
            "type": "string",
            "default": null
          }
        ]
      },
      "initMockServer": {
        "type": "async",
        "description": "Initializes the provide mockserver instance on the fly",
        "arguments": [
          {
            "name": "mockServerPath",
            "type": "string",
            "default": null
          },
          {
            "name": "mockServerOptions",
            "type": "string",
            "default": null
          }
        ]
      },
      "initApplication": {
        "type": "async",
        "description": "Initializes the application [Used in the beggining of script, once the mockserver is fully initialized and request mocking is done]",
        "arguments": [
          {
            "name": "mockServerPath",
            "type": "string",
            "default": null
          }
        ]
      },
      "stopMockServer": {
        "type": "async",
        "description": "Stops the mockserver instance",
        "arguments": [
          {
            "name": "mockServerPath",
            "type": "string",
            "default": null
          }
        ]
      },
      "loadMockDataFile": {
        "type": "async",
        "description": "Loads a mock data file",
        "arguments": [
          {
            "name": "filePath",
            "type": "string",
            "default": null
          },
          {
            "name": "isText",
            "type": "boolean",
            "default": null
          }
        ],
        "returnType": "string"
      },
      "getEntitySetData": {
        "type": "async",
        "description": "Retrieves entity data",
        "arguments": [
          {
            "name": "mockServerPath",
            "type": "string",
            "default": null
          },
          {
            "name": "entitySetName",
            "type": "string",
            "default": null
          }
        ],
        "returnType": "array"
      },
      "setEntitySetData": {
        "type": "async",
        "description": "Override entity data entries",
        "arguments": [
          {
            "name": "mockServerPath",
            "type": "string",
            "default": null
          },
          {
            "name": "entitySetName",
            "type": "string",
            "default": null
          },
          {
            "name": "entries",
            "type": "string",
            "default": null
          }
        ]
      }
    },
    "navigation": {
      "navigateToApplication": {
        "type": "async",
        "description": "Navigates to the application via the passed intent. The intent will be added to the baseUrl maintained in the config.",
        "arguments": [
          {
            "name": "intent",
            "type": "string",
            "default": null
          },
          {
            "name": "preventPopups",
            "type": "boolean",
            "default": true
          },
          {
            "name": "verify",
            "type": "boolean",
            "default": true
          },
          {
            "name": "refresh",
            "type": "boolean",
            "default": true
          }
        ]
      },
      "navigateToApplicationAndRetry": {
        "type": "async",
        "description": "Navigates to the application via the passed intent, and retries in case it fails.",
        "arguments": [
          {
            "name": "intent",
            "type": "string",
            "default": null
          },
          {
            "name": "preventPopups",
            "type": "boolean",
            "default": true
          },
          {
            "name": "verify",
            "type": "boolean",
            "default": true
          },
          {
            "name": "retries",
            "type": "number",
            "default": 3
          },
          {
            "name": "interval",
            "type": "number",
            "default": 5000
          }
        ]
      },
      "navigateToSystemAndApplication": {
        "type": "async",
        "description": "Navigates within the passed system to the application via the passed intent.",
        "arguments": [
          {
            "name": "system",
            "type": "string",
            "default": null
          },
          {
            "name": "intent",
            "type": "string",
            "default": null
          },
          {
            "name": "closePopups",
            "type": "boolean",
            "default": true
          },
          {
            "name": "verify",
            "type": "boolean",
            "default": true
          }
        ]
      },
      "navigateToSystemAndApplicationAndRetry": {
        "type": "async",
        "description": "Navigates within the passed system to the application via the passed intent, and retries in case it fails.",
        "arguments": [
          {
            "name": "system",
            "type": "string",
            "default": null
          },
          {
            "name": "intent",
            "type": "string",
            "default": null
          },
          {
            "name": "closePopups",
            "type": "boolean",
            "default": true
          },
          {
            "name": "verify",
            "type": "boolean",
            "default": true
          },
          {
            "name": "retries",
            "type": "number",
            "default": 3
          },
          {
            "name": "interval",
            "type": "number",
            "default": 5000
          }
        ]
      },
      "navigateToApplicationWithQueryParams": {
        "type": "async",
        "description": "Navigates to the application with the passed queryParams via the passed intent.",
        "arguments": [
          {
            "name": "intent",
            "type": "string",
            "default": null
          },
          {
            "name": "queryParams",
            "type": "string",
            "default": null
          },
          {
            "name": "preventPopups",
            "type": "boolean",
            "default": true
          },
          {
            "name": "verify",
            "type": "boolean",
            "default": true
          }
        ]
      },
      "navigateToApplicationWithQueryParamsAndRetry": {
        "type": "async",
        "description": "Navigates to the application via the passed intent, and retries in case it fails.",
        "arguments": [
          {
            "name": "intent",
            "type": "string",
            "default": null
          },
          {
            "name": "queryParams",
            "type": "string",
            "default": null
          },
          {
            "name": "preventPopups",
            "type": "boolean",
            "default": true
          },
          {
            "name": "verify",
            "type": "boolean",
            "default": true
          },
          {
            "name": "retries",
            "type": "number",
            "default": 3
          },
          {
            "name": "interval",
            "type": "number",
            "default": 5000
          }
        ]
      },
      "closePopups": {
        "type": "async",
        "description": "Closes all popups if they occur after navigating to a specific page.",
        "arguments": [
          {
            "name": "timeout",
            "type": "number",
            "default": 30000
          }
        ]
      },
      "expectUnsupportedNavigationPopup": {
        "type": "async",
        "description": "Expects navigation to an app that is not supported.\nThis can be the case for Mocked tests when the application does not exist or when the app is not included in a role.",
        "arguments": [
          {
            "name": "navigationTarget",
            "type": "string",
            "default": null
          }
        ]
      }
    },
    "navigationBar": {
      "clickBack": {
        "type": "async",
        "description": "Navigates one layer back.",
        "arguments": [
          {
            "name": "timeout",
            "type": "number",
            "default": 30000
          }
        ]
      },
      "clickSapLogo": {
        "type": "async",
        "description": "Clicks at the SAP Logo.",
        "arguments": [
          {
            "name": "timeout",
            "type": "number",
            "default": 30000
          }
        ]
      },
      "clickUserIcon": {
        "type": "async",
        "description": "Clicks at the Account Icon.",
        "arguments": [
          {
            "name": "timeout",
            "type": "number",
            "default": 30000
          }
        ]
      },
      "expectPageTitle": {
        "type": "async",
        "description": "Expects the page title of the current page to be the compare value.",
        "arguments": [
          {
            "name": "compareValue",
            "type": "string",
            "default": null
          }
        ]
      },
      "expectShellHeader": {
        "type": "async",
        "description": "Expects the shell header to be visible",
        "arguments": [
          {
            "name": "timeout",
            "type": "number",
            "default": 30000
          }
        ]
      }
    },
    "qunit": {
      "executeTests": {
        "type": "async",
        "description": "Executes QUnit & OPA5 tests. Qmate acts like a runner.",
        "arguments": [
          {
            "name": "path",
            "type": "string",
            "default": null
          }
        ]
      }
    },
    "session": {
      "login": {
        "type": "async",
        "description": "Login with specific username and password. This function works for both fiori and sap-cloud login.",
        "arguments": [
          {
            "name": "username",
            "type": "string",
            "default": null
          },
          {
            "name": "password",
            "type": "string",
            "default": null
          },
          {
            "name": "verify",
            "type": "boolean",
            "default": true
          },
          {
            "name": "timeout",
            "type": "number",
            "default": 30000
          }
        ]
      },
      "loginFiori": {
        "type": "async",
        "description": "Login with fioriForm and specific username and password.",
        "arguments": [
          {
            "name": "username",
            "type": "string",
            "default": null
          },
          {
            "name": "password",
            "type": "string",
            "default": null
          },
          {
            "name": "verify",
            "type": "boolean",
            "default": true
          }
        ]
      },
      "loginSapCloud": {
        "type": "async",
        "description": "Login with sapCloud form and specific username and password.",
        "arguments": [
          {
            "name": "username",
            "type": "string",
            "default": null
          },
          {
            "name": "password",
            "type": "string",
            "default": null
          },
          {
            "name": "verify",
            "type": "boolean",
            "default": true
          }
        ]
      },
      "loginCustom": {
        "type": "async",
        "description": "Login with custom form and specific username and password.",
        "arguments": [
          {
            "name": "username",
            "type": "string",
            "default": null
          },
          {
            "name": "password",
            "type": "string",
            "default": "\"super-duper-sensitive-pw\""
          },
          {
            "name": "usernameFieldSelector",
            "type": "string",
            "default": null
          },
          {
            "name": "passwordFieldSelector",
            "type": "string",
            "default": null
          },
          {
            "name": "logonButtonSelector",
            "type": "string",
            "default": null
          },
          {
            "name": "verify",
            "type": "boolean",
            "default": true
          }
        ]
      },
      "loginCustomViaConfig": {
        "type": "async",
        "description": "Login with specific username and password. The selectors will be taken from the config.",
        "arguments": [
          {
            "name": "username",
            "type": "string",
            "default": null
          },
          {
            "name": "password",
            "type": "string",
            "default": null
          },
          {
            "name": "verify",
            "type": "boolean",
            "default": true
          }
        ]
      },
      "logout": {
        "type": "async",
        "description": "Logs the user out.",
        "arguments": [
          {
            "name": "verify",
            "type": "boolean",
            "default": true
          }
        ]
      },
      "switchUser": {
        "type": "async",
        "description": "switches the user according to the passed username and password.",
        "arguments": [
          {
            "name": "username",
            "type": "string",
            "default": null
          },
          {
            "name": "password",
            "type": "string",
            "default": null
          },
          {
            "name": "authenticator",
            "type": "object",
            "default": null
          },
          {
            "name": "wait",
            "type": "number",
            "default": 10000
          }
        ]
      },
      "expectLogoutText": {
        "type": "async",
        "description": "Expects the logout text after logout to be \"You have been logged off.\nThis is essential for chaining scripts, so that no static browser sleep in the spec itself is required anymore.",
        "arguments": []
      }
    },
    "table": {
      "sortColumnAscending": {
        "type": "async",
        "description": "Sorts the given column \"Ascending\".",
        "arguments": [
          {
            "name": "columnName",
            "type": "string",
            "default": null
          },
          {
            "name": "tableSelector",
            "type": "ui5selector",
            "default": null
          }
        ]
      },
      "sortColumnDescending": {
        "type": "async",
        "description": "Sorts the given column \"Descending\".",
        "arguments": [
          {
            "name": "columnName",
            "type": "string",
            "default": null
          },
          {
            "name": "tableSelector",
            "type": "ui5selector",
            "default": null
          }
        ]
      },
      "clickSettingsButton": {
        "type": "async",
        "description": "Opens the user Settings.",
        "arguments": [
          {
            "name": "tableSelector",
            "type": "ui5selector",
            "default": null
          }
        ]
      },
      "getTotalNumberOfRows": {
        "type": "async",
        "description": "Returns the total number of rows in the table.",
        "arguments": [
          {
            "name": "tableSelectorOrId",
            "type": "string",
            "default": null
          }
        ],
        "returnType": "number"
      },
      "getTotalNumberOfRowsByValues": {
        "type": "async",
        "description": "Returns the total number of rows in the table that match the given values.",
        "arguments": [
          {
            "name": "tableSelectorOrId",
            "type": "string",
            "default": null
          },
          {
            "name": "values",
            "type": "string",
            "default": null
          },
          {
            "name": "enableHighlighting",
            "type": "boolean",
            "default": true
          },
          {
            "name": "matchMode",
            "type": "string",
            "default": "\"contains\""
          }
        ],
        "returnType": "number"
      },
      "getSelectorsForRowsByValues": {
        "type": "async",
        "description": "Gets the selectors of rows in the table that contain the given values. If multiple values are provided, it only returns the selectors of rows that contain all of them.",
        "arguments": [
          {
            "name": "tableSelectorOrId",
            "type": "string",
            "default": null
          },
          {
            "name": "values",
            "type": "string",
            "default": null
          },
          {
            "name": "enableHighlighting",
            "type": "boolean",
            "default": true
          },
          {
            "name": "matchMode",
            "type": "string",
            "default": "\"contains\""
          }
        ]
      },
      "getSelectorForRowByIndex": {
        "type": "async",
        "description": "Gets the selector of a row in the table by its index.",
        "arguments": [
          {
            "name": "tableSelectorOrId",
            "type": "string",
            "default": null
          },
          {
            "name": "index",
            "type": "number",
            "default": null
          }
        ]
      },
      "selectRowByIndex": {
        "type": "async",
        "description": "Selects a row in the table by its index.",
        "arguments": [
          {
            "name": "tableSelectorOrId",
            "type": "string",
            "default": null
          },
          {
            "name": "index",
            "type": "number",
            "default": null
          }
        ]
      },
      "selectAllRows": {
        "type": "async",
        "description": "Selects all rows in the table.",
        "arguments": [
          {
            "name": "tableSelectorOrId",
            "type": "string",
            "default": null
          }
        ]
      },
      "deselectRowByIndex": {
        "type": "async",
        "description": "Deselects a row in the table by its index.",
        "arguments": [
          {
            "name": "tableSelectorOrId",
            "type": "string",
            "default": null
          }
        ]
      },
      "deselectAllRows": {
        "type": "async",
        "description": "Deselects all rows in the table.",
        "arguments": [
          {
            "name": "tableSelectorOrId",
            "type": "string",
            "default": null
          }
        ]
      },
      "selectRowByValues": {
        "type": "async",
        "description": "Selects a row in the table by matching value(s). First, all rows containing the given value(s) are collected.\nThen, the row at the given index within that list of matching rows is selected.\nThis is useful when multiple rows match the same value(s) and you need to target a specific one.",
        "arguments": [
          {
            "name": "tableSelectorOrId",
            "type": "string",
            "default": null
          },
          {
            "name": "values",
            "type": "string",
            "default": null
          },
          {
            "name": "index",
            "type": "number",
            "default": 0
          }
        ]
      },
      "openItemByIndex": {
        "type": "async",
        "description": "Opens the item in the table by its index via right arrow icon or direct click.",
        "arguments": [
          {
            "name": "tableSelectorOrId",
            "type": "string",
            "default": null
          },
          {
            "name": "index",
            "type": "number",
            "default": null
          }
        ]
      },
      "openItemByValues": {
        "type": "async",
        "description": "Opens the item in the table containing the given values. First, all rows containing the given value(s) are collected.\nThen, the row at the given index within that list of matching rows is opened.\nThis is useful when multiple rows match the same value(s) and you need to target a specific one.",
        "arguments": [
          {
            "name": "tableSelectorOrId",
            "type": "string",
            "default": null
          },
          {
            "name": "values",
            "type": "string",
            "default": null
          },
          {
            "name": "index",
            "type": "number",
            "default": 0
          },
          {
            "name": "enableHighlighting",
            "type": "boolean",
            "default": true
          },
          {
            "name": "matchMode",
            "type": "string",
            "default": "\"contains\""
          }
        ]
      }
    },
    "userInteraction": {
      "click": {
        "type": "async",
        "description": "Clicks on the element with the given selector.",
        "arguments": [
          {
            "name": "selector",
            "type": "object",
            "default": null
          },
          {
            "name": "index",
            "type": "number",
            "default": 0
          },
          {
            "name": "timeout",
            "type": "number",
            "default": 30000
          }
        ]
      },
      "clickAndRetry": {
        "type": "async",
        "description": "Clicks on the element with the given selector and retries the action in case of a failure.",
        "arguments": [
          {
            "name": "selector",
            "type": "object",
            "default": null
          },
          {
            "name": "index",
            "type": "number",
            "default": 0
          },
          {
            "name": "timeout",
            "type": "number",
            "default": 30000
          },
          {
            "name": "retries",
            "type": "number",
            "default": 3
          },
          {
            "name": "interval",
            "type": "number",
            "default": 5000
          }
        ]
      },
      "doubleClick": {
        "type": "async",
        "description": "Double Clicks on the passed element.",
        "arguments": [
          {
            "name": "selector",
            "type": "object",
            "default": null
          },
          {
            "name": "index",
            "type": "number",
            "default": 0
          },
          {
            "name": "timeout",
            "type": "number",
            "default": 30000
          }
        ]
      },
      "rightClick": {
        "type": "async",
        "description": "Right Clicks on the passed element.",
        "arguments": [
          {
            "name": "selector",
            "type": "object",
            "default": null
          },
          {
            "name": "index",
            "type": "number",
            "default": 0
          },
          {
            "name": "timeout",
            "type": "number",
            "default": 30000
          }
        ]
      },
      "clickTab": {
        "type": "async",
        "description": "Clicks on the tab with the given selector and checks if the tab got selected successfully.\nThe function retries the click for maximal 3 times if the selection of the tab (blue underline) was not successful.",
        "arguments": [
          {
            "name": "selector",
            "type": "object",
            "default": null
          },
          {
            "name": "index",
            "type": "number",
            "default": 0
          },
          {
            "name": "timeout",
            "type": "number",
            "default": 30000
          }
        ]
      },
      "clickListItem": {
        "type": "async",
        "description": "Clicks or opens the list item with the given selector (e.g. ColumnListItem, StandardListItem).\nIn some cases the default click function is not working correctly (clicks an element within the list item).\nTherefore we recommend to use this function to open a specific list item.",
        "arguments": [
          {
            "name": "selector",
            "type": "object",
            "default": null
          },
          {
            "name": "index",
            "type": "number",
            "default": 0
          },
          {
            "name": "timeout",
            "type": "number",
            "default": 30000
          }
        ]
      },
      "check": {
        "type": "async",
        "description": "Checks the checkbox with the given selector.",
        "arguments": [
          {
            "name": "selector",
            "type": "object",
            "default": null
          },
          {
            "name": "index",
            "type": "number",
            "default": 0
          },
          {
            "name": "timeout",
            "type": "number",
            "default": 30000
          }
        ]
      },
      "uncheck": {
        "type": "async",
        "description": "Unchecks the checkbox with the given selector.",
        "arguments": [
          {
            "name": "selector",
            "type": "object",
            "default": null
          },
          {
            "name": "index",
            "type": "number",
            "default": 0
          },
          {
            "name": "timeout",
            "type": "number",
            "default": 30000
          }
        ]
      },
      "fill": {
        "type": "async",
        "description": "Fills the input field with the given selector.",
        "arguments": [
          {
            "name": "selector",
            "type": "object",
            "default": null
          },
          {
            "name": "value",
            "type": "string",
            "default": null
          },
          {
            "name": "index",
            "type": "number",
            "default": 0
          },
          {
            "name": "timeout",
            "type": "number",
            "default": 30000
          }
        ]
      },
      "fillAndRetry": {
        "type": "async",
        "description": "Fills the input field with the given selector and retries the action in case of a failure.",
        "arguments": [
          {
            "name": "selector",
            "type": "object",
            "default": null
          },
          {
            "name": "value",
            "type": "string",
            "default": null
          },
          {
            "name": "index",
            "type": "number",
            "default": 0
          },
          {
            "name": "timeout",
            "type": "number",
            "default": 30000
          },
          {
            "name": "retries",
            "type": "number",
            "default": 3
          },
          {
            "name": "interval",
            "type": "number",
            "default": 5000
          }
        ]
      },
      "clear": {
        "type": "async",
        "description": "Clears the input with the given selector.",
        "arguments": [
          {
            "name": "selector",
            "type": "object",
            "default": null
          },
          {
            "name": "index",
            "type": "number",
            "default": 0
          },
          {
            "name": "timeout",
            "type": "number",
            "default": 30000
          }
        ]
      },
      "clearAndRetry": {
        "type": "async",
        "description": "Clears the input with the given selector and retries the action in case of a failure",
        "arguments": [
          {
            "name": "selector",
            "type": "object",
            "default": null
          },
          {
            "name": "index",
            "type": "number",
            "default": 0
          },
          {
            "name": "timeout",
            "type": "number",
            "default": 30000
          },
          {
            "name": "retries",
            "type": "number",
            "default": 3
          },
          {
            "name": "interval",
            "type": "number",
            "default": 5000
          }
        ]
      },
      "clearAndFill": {
        "type": "async",
        "description": "Clears the input field with the given selector and fills the given value.",
        "arguments": [
          {
            "name": "selector",
            "type": "object",
            "default": null
          },
          {
            "name": "value",
            "type": "string",
            "default": null
          },
          {
            "name": "index",
            "type": "number",
            "default": 0
          },
          {
            "name": "timeout",
            "type": "number",
            "default": 30000
          }
        ]
      },
      "clearAndFillAndRetry": {
        "type": "async",
        "description": "Clears the input field with the given selector and fills the given value. Retries the action in case of a failure.",
        "arguments": [
          {
            "name": "selector",
            "type": "object",
            "default": null
          },
          {
            "name": "value",
            "type": "string",
            "default": null
          },
          {
            "name": "index",
            "type": "number",
            "default": 0
          },
          {
            "name": "timeout",
            "type": "number",
            "default": 30000
          },
          {
            "name": "retries",
            "type": "number",
            "default": 3
          },
          {
            "name": "interval",
            "type": "number",
            "default": 5000
          },
          {
            "name": "verify",
            "type": "boolean",
            "default": true
          }
        ]
      },
      "clearSmartFieldInput": {
        "type": "async",
        "description": "Clears the smart filed with the given selector.",
        "arguments": [
          {
            "name": "selector",
            "type": "object",
            "default": null
          },
          {
            "name": "index",
            "type": "number",
            "default": 0
          },
          {
            "name": "timeout",
            "type": "number",
            "default": 30000
          }
        ]
      },
      "clearAndFillSmartFieldInput": {
        "type": "async",
        "description": "Clears the smart filed with the given selector and fills the given value.",
        "arguments": [
          {
            "name": "selector",
            "type": "object",
            "default": null
          },
          {
            "name": "value",
            "type": "string",
            "default": null
          },
          {
            "name": "index",
            "type": "number",
            "default": 0
          },
          {
            "name": "timeout",
            "type": "number",
            "default": 30000
          }
        ]
      },
      "clearAndFillSmartFieldInputAndRetry": {
        "type": "async",
        "description": "Clears the smart filed with the given selector and fills the given value and retries the action in case of a failure.",
        "arguments": [
          {
            "name": "selector",
            "type": "object",
            "default": null
          },
          {
            "name": "value",
            "type": "string",
            "default": null
          },
          {
            "name": "index",
            "type": "number",
            "default": 0
          },
          {
            "name": "timeout",
            "type": "number",
            "default": 30000
          },
          {
            "name": "retries",
            "type": "number",
            "default": 3
          },
          {
            "name": "interval",
            "type": "number",
            "default": 5000
          }
        ]
      },
      "select": {
        "type": "async",
        "description": "Selects a value from a UI5 dropdown control.",
        "arguments": [
          {
            "name": "selector",
            "type": "object",
            "default": null
          },
          {
            "name": "value",
            "type": "string",
            "default": null
          },
          {
            "name": "index",
            "type": "number",
            "default": 0
          }
        ]
      },
      "clickSelectArrow": {
        "type": "async",
        "description": "Clicks the arrow icon at the passed selector (select box).",
        "arguments": [
          {
            "name": "selector",
            "type": "object",
            "default": null
          },
          {
            "name": "index",
            "type": "number",
            "default": 0
          }
        ]
      },
      "clickSelectArrowAndRetry": {
        "type": "async",
        "description": "Clicks the arrow icon at the passed selector (select box), and retries in case it fails.",
        "arguments": [
          {
            "name": "selector",
            "type": "object",
            "default": null
          },
          {
            "name": "index",
            "type": "number",
            "default": 0
          },
          {
            "name": "retries",
            "type": "number",
            "default": 3
          },
          {
            "name": "interval",
            "type": "number",
            "default": 5000
          }
        ]
      },
      "selectFromTab": {
        "type": "async",
        "description": "Selects the passed value on the tab with the given selector and checks if the tab got selected successfully.\nThe function retries the click for maximal 3 times if the selection of the tab (blue underline) was not successful.",
        "arguments": [
          {
            "name": "selector",
            "type": "object",
            "default": null
          },
          {
            "name": "value",
            "type": "string",
            "default": null
          },
          {
            "name": "index",
            "type": "number",
            "default": 0
          },
          {
            "name": "timeout",
            "type": "number",
            "default": 30000
          }
        ]
      },
      "mouseOverElement": {
        "type": "async",
        "description": "Moves the cursor/focus to the element with the given selector.",
        "arguments": [
          {
            "name": "selector",
            "type": "object",
            "default": null
          },
          {
            "name": "index",
            "type": "number",
            "default": 0
          },
          {
            "name": "timeout",
            "type": "number",
            "default": 30000
          }
        ]
      },
      "scrollToElement": {
        "type": "async",
        "description": "Scrolls the element with the given selector into view.",
        "arguments": [
          {
            "name": "selector",
            "type": "object",
            "default": null
          },
          {
            "name": "index",
            "type": "number",
            "default": 0
          },
          {
            "name": "alignment",
            "type": "string",
            "default": "\"center\""
          },
          {
            "name": "timeout",
            "type": "number",
            "default": 30000
          }
        ]
      },
      "selectAll": {
        "type": "async",
        "description": "Performs \"select all\" (ctrl + a) at the element with the given selector.",
        "arguments": [
          {
            "name": "selector",
            "type": "object",
            "default": null
          },
          {
            "name": "index",
            "type": "number",
            "default": 0
          },
          {
            "name": "timeout",
            "type": "number",
            "default": 30000
          }
        ]
      },
      "openF4Help": {
        "type": "async",
        "description": "Opens the F4-help of the element with the given selector.",
        "arguments": [
          {
            "name": "selector",
            "type": "object",
            "default": null
          },
          {
            "name": "index",
            "type": "number",
            "default": 0
          },
          {
            "name": "timeout",
            "type": "number",
            "default": 30000
          },
          {
            "name": "useF4Key",
            "type": "boolean",
            "default": null
          }
        ]
      },
      "searchFor": {
        "type": "async",
        "description": "Searches for the passed value and executes the search.\nIn case that the search is already filled, it will reset the field first.",
        "arguments": [
          {
            "name": "selector",
            "type": "object",
            "default": null
          },
          {
            "name": "index",
            "type": "number",
            "default": 0
          },
          {
            "name": "timeout",
            "type": "number",
            "default": 30000
          },
          {
            "name": "useEnter",
            "type": "boolean",
            "default": null
          }
        ]
      },
      "resetSearch": {
        "type": "async",
        "description": "Resets the search field.",
        "arguments": [
          {
            "name": "selector",
            "type": "object",
            "default": null
          },
          {
            "name": "index",
            "type": "number",
            "default": 0
          },
          {
            "name": "timeout",
            "type": "number",
            "default": 30000
          }
        ]
      }
    }
  },
  "util": {
    "browser": {
      "getBaseUrl": {
        "type": "sync",
        "description": "Retrieves the baseUrl from the configuration file.",
        "arguments": [],
        "returnType": "string"
      },
      "setBaseUrl": {
        "type": "async",
        "description": "Sets or overwrites the baseUrl in the configuration file.",
        "arguments": [
          {
            "name": "baseUrl",
            "type": "string",
            "default": null
          }
        ]
      },
      "logCurrentUrl": {
        "type": "async",
        "description": "Displays the current URL in the console.",
        "arguments": []
      },
      "getCurrentUrl": {
        "type": "async",
        "description": "Returns the current URL",
        "arguments": []
      },
      "resetFocus": {
        "type": "async",
        "description": "Resets the focus in case it set for a specific element.",
        "arguments": []
      },
      "sleep": {
        "type": "async",
        "description": "Sleeps (pauses execution) for the passed duration.",
        "arguments": [
          {
            "name": "duration",
            "type": "number",
            "default": 1000
          }
        ]
      },
      "collectCoverage": {
        "type": "async",
        "description": "Trigger collection of coverage by coverage service.",
        "arguments": []
      },
      "sleepAndCollectCoverage": {
        "type": "async",
        "description": "Trigger collection of coverage by coverage service.",
        "arguments": [
          {
            "name": "duration",
            "type": "number",
            "default": 1000
          }
        ]
      },
      "refresh": {
        "type": "async",
        "description": "Refreshes the page.",
        "arguments": []
      },
      "clearBrowser": {
        "type": "async",
        "description": "Clears the local and session cache and deletes all browser cookies.",
        "arguments": [
          {
            "name": "clearLocal",
            "type": "boolean",
            "default": true
          },
          {
            "name": "clearSession",
            "type": "boolean",
            "default": true
          },
          {
            "name": "clearCookies",
            "type": "boolean",
            "default": true
          }
        ]
      },
      "reloadSession": {
        "type": "async",
        "description": "Clears the browser session, and creates a new one. Use in cases where util.browser.clearBrowser doesn't invalidate login session.",
        "arguments": []
      },
      "getBrowserName": {
        "type": "sync",
        "description": "Retrieves the name of the current browser.",
        "arguments": [],
        "returnType": "string"
      },
      "getUI5Version": {
        "type": "async",
        "description": "Gets the UI5 version and creation date for UI5 based applications.",
        "arguments": [
          {
            "name": "timeout",
            "type": "number",
            "default": 30000
          }
        ]
      },
      "logUI5Version": {
        "type": "async",
        "description": "Logs the UI5 version and creation date for UI5 based applications to the console.",
        "arguments": []
      },
      "executeScript": {
        "type": "async",
        "description": "Executes the specified JavaScript command.",
        "arguments": [
          {
            "name": "command",
            "type": "string",
            "default": null
          }
        ],
        "returnType": "any"
      },
      "waitUntil": {
        "type": "async",
        "description": "Waits until the specified function returns true or the timeout is reached.",
        "arguments": [
          {
            "name": "condition",
            "type": "function",
            "default": null
          },
          {
            "name": "options",
            "type": "object",
            "default": null
          },
          {
            "name": "options.timeout",
            "type": "number",
            "default": null
          },
          {
            "name": "options.timeoutMsg",
            "type": "string",
            "default": null
          },
          {
            "name": "options.interval",
            "type": "number",
            "default": null
          }
        ],
        "returnType": "promise"
      },
      "switchToNewWindow": {
        "type": "async",
        "description": "Switches to the window or tab with the given title.",
        "arguments": [
          {
            "name": "titleOrUrl",
            "type": "string",
            "default": null
          },
          {
            "name": "timeout",
            "type": "number",
            "default": 10000
          }
        ]
      },
      "switchToWindow": {
        "type": "async",
        "description": "Switches to the passed window.",
        "arguments": [
          {
            "name": "handle",
            "type": "object",
            "default": null
          }
        ]
      },
      "getCurrentWindow": {
        "type": "async",
        "description": "Returns the current window handle.",
        "arguments": [],
        "returnType": "object"
      },
      "switchToIframe": {
        "type": "async",
        "description": "Switches to the passed iframe.",
        "arguments": [
          {
            "name": "selector",
            "type": "string",
            "default": null
          }
        ]
      },
      "switchToDefaultContent": {
        "type": "async",
        "description": "Switches to the default content of the HTML page.",
        "arguments": []
      },
      "back": {
        "type": "async",
        "description": "Go one step back in browser history.",
        "arguments": []
      },
      "forward": {
        "type": "async",
        "description": "Go one step ahead in browser history.",
        "arguments": []
      },
      "log": {
        "type": "async",
        "description": "add log message to browser logs, can be viewed in the html report",
        "arguments": [
          {
            "name": "message",
            "type": "string",
            "default": null
          }
        ]
      },
      "warn": {
        "type": "async",
        "description": "add warning message to browser logs, can be viewed in the html report",
        "arguments": [
          {
            "name": "message",
            "type": "string",
            "default": null
          }
        ]
      },
      "error": {
        "type": "async",
        "description": "add error message to browser logs, can be viewed in the html report",
        "arguments": [
          {
            "name": "message",
            "type": "string",
            "default": null
          }
        ]
      },
      "isMobile": {
        "type": "async",
        "description": "Indicates a mobile session",
        "arguments": [],
        "returnType": "boolean"
      },
      "isAndroid": {
        "type": "async",
        "description": "Indicates a mobile session",
        "arguments": [],
        "returnType": "boolean"
      },
      "isIos": {
        "type": "async",
        "description": "Indicates an iOS session",
        "arguments": [],
        "returnType": "boolean"
      }
    },
    "component": {
      "loadEntryPoint": {
        "type": "sync",
        "description": "Will be called in component test scripts. Returns a previously stored entry point object for sharing information (like a draft id) between preparation and the actual component tests.",
        "arguments": [
          {
            "name": "folderPath",
            "type": "string",
            "default": "\"./entrypoints\""
          }
        ],
        "returnType": "object"
      },
      "storeEntryPoint": {
        "type": "sync",
        "description": "Will be called in preparation scripts before component tests. Stores an entry point object for sharing information (like a draft id) between preparation and the actual component tests.",
        "arguments": [
          {
            "name": "data",
            "type": "object",
            "default": null
          },
          {
            "name": "folderPath",
            "type": "string",
            "default": "\"./entrypoints\""
          }
        ]
      }
    },
    "console": {
      "log": {
        "type": "sync",
        "description": "Logs a message to the console in the given color.",
        "arguments": [
          {
            "name": "message",
            "type": "string",
            "default": null
          },
          {
            "name": "textColor",
            "type": "string",
            "default": null
          },
          {
            "name": "backgroundColor",
            "type": "string",
            "default": null
          },
          {
            "name": "brightness",
            "type": "string",
            "default": null
          }
        ]
      },
      "error": {
        "type": "sync",
        "description": "Logs a error message to the console in red.",
        "arguments": [
          {
            "name": "message",
            "type": "string",
            "default": null
          }
        ]
      },
      "warn": {
        "type": "sync",
        "description": "Logs a warning message to the console in yellow.",
        "arguments": [
          {
            "name": "message",
            "type": "string",
            "default": null
          }
        ]
      },
      "success": {
        "type": "sync",
        "description": "Logs a success message to the console in green.",
        "arguments": [
          {
            "name": "message",
            "type": "string",
            "default": null
          }
        ]
      },
      "info": {
        "type": "sync",
        "description": "Logs a info message to the console in cyan.",
        "arguments": [
          {
            "name": "message",
            "type": "string",
            "default": null
          }
        ]
      }
    },
    "data": {
      "getData": {
        "type": "sync",
        "description": "Returns the data object with the given filename (JSON, stored in data folder).",
        "arguments": [
          {
            "name": "filename",
            "type": "string",
            "default": null
          },
          {
            "name": "source",
            "type": "string",
            "default": "data"
          }
        ],
        "returnType": "object"
      },
      "getSecureData": {
        "type": "sync",
        "description": "Returns and encrypts the data object with the given filename (JSON, stored in data folder). Will return the local file object if private key is not accessible.",
        "arguments": [
          {
            "name": "filename",
            "type": "string",
            "default": null
          },
          {
            "name": "source",
            "type": "string",
            "default": "data"
          },
          {
            "name": "options",
            "type": "object",
            "default": null
          }
        ],
        "returnType": "object"
      },
      "readDataFromFile": {
        "type": "sync",
        "description": "Reads the data object from the given filepath.",
        "arguments": [
          {
            "name": "filePath",
            "type": "string",
            "default": null
          }
        ],
        "returnType": "object"
      },
      "writeDataToFile": {
        "type": "sync",
        "description": "Writes the data object to the given filepath.",
        "arguments": [
          {
            "name": "filePath",
            "type": "string",
            "default": null
          },
          {
            "name": "data",
            "type": "object",
            "default": null
          }
        ]
      },
      "decrypt": {
        "type": "sync",
        "description": "Decrypts the passed input data.",
        "arguments": [
          {
            "name": "data",
            "type": "string",
            "default": null
          },
          {
            "name": "options",
            "type": "object",
            "default": null
          }
        ],
        "returnType": "string"
      }
    },
    "file": {
      "upload": {
        "type": "async",
        "description": "Uploads all the file/s by the paths given in the Array.",
        "arguments": [
          {
            "name": "files",
            "type": "array",
            "default": null
          },
          {
            "name": "selector",
            "type": "string",
            "default": "\"input[type='file']\""
          }
        ]
      },
      "uploadWebGui": {
        "type": "async",
        "description": "Uploads all the file/s by the paths given in the Array for SAP WebGUI apps.",
        "arguments": [
          {
            "name": "files",
            "type": "array",
            "default": null
          },
          {
            "name": "selector",
            "type": "string",
            "default": null
          }
        ]
      },
      "parsePdf": {
        "type": "async",
        "description": "Parses the text from PDF stream. Returned text can be asserted to verify the PDF document content.",
        "arguments": [
          {
            "name": "pdfStream",
            "type": "buffer",
            "default": null
          },
          {
            "name": "renderingMethod",
            "type": "function",
            "default": null
          }
        ],
        "returnType": "string"
      },
      "expectPdfContainsText": {
        "type": "async",
        "description": "Parses the PDF and checks for given text to be contained in PDF.",
        "arguments": [
          {
            "name": "pdfStream",
            "type": "buffer",
            "default": null
          },
          {
            "name": "text",
            "type": "string",
            "default": null
          },
          {
            "name": "renderingMethod",
            "type": "function",
            "default": null
          }
        ]
      },
      "expectPdfNotContainsText": {
        "type": "async",
        "description": "Parses the PDF and checks for given text not to be contained in PDF.",
        "arguments": [
          {
            "name": "pdfStream",
            "type": "buffer",
            "default": null
          },
          {
            "name": "text",
            "type": "string",
            "default": null
          },
          {
            "name": "renderingMethod",
            "type": "function",
            "default": null
          }
        ]
      },
      "getExcelData": {
        "type": "async",
        "description": "It returns the excel data based on the conversion type which is passed",
        "arguments": [
          {
            "name": "filePath",
            "type": "string",
            "default": null
          },
          {
            "name": "fileName",
            "type": "string",
            "default": null
          },
          {
            "name": "sheetIndex",
            "type": "number",
            "default": null
          },
          {
            "name": "conversionType",
            "type": "string",
            "default": null
          }
        ]
      },
      "getTextData": {
        "type": "async",
        "description": "Returns the content of a .txt file.",
        "arguments": [
          {
            "name": "filePath",
            "type": "string",
            "default": null
          }
        ]
      },
      "expectTextDataToContain": {
        "type": "async",
        "description": "Reads the specified .txt file and asserts if it includes a specific string.",
        "arguments": [
          {
            "name": "filePath",
            "type": "string",
            "default": null
          }
        ]
      },
      "getXmlData": {
        "type": "async",
        "description": "Returns the converted JSON object based on the passed XML file.",
        "arguments": [
          {
            "name": "filePath",
            "type": "string",
            "default": null
          }
        ]
      },
      "getAttributeValuesFromJson": {
        "type": "sync",
        "description": "Traverses the passed JSON object and returns the value/s of the passed attribute if found. Else returns empty Array.",
        "arguments": [
          {
            "name": "object",
            "type": "object",
            "default": null
          }
        ]
      },
      "findFilePathRecursively": {
        "type": "async",
        "description": "Returns the absolute path of the file with the given filename. Searches Recursively for the file within the given directory.",
        "arguments": [
          {
            "name": "directory",
            "type": "string",
            "default": null
          },
          {
            "name": "fileName",
            "type": "string",
            "default": null
          }
        ]
      },
      "getFileNamesByExtensions": {
        "type": "async",
        "description": "Returns the filename/s of the given directory filtered by the given extensions.",
        "arguments": [
          {
            "name": "dirPath",
            "type": "string",
            "default": null
          },
          {
            "name": "fileExtensions",
            "type": "string",
            "default": null
          }
        ]
      }
    },
    "formatter": {
      "sliceStringAt": {
        "type": "sync",
        "description": "Slices the given string beginning at a specific substring.",
        "arguments": [
          {
            "name": "input",
            "type": "string",
            "default": null
          },
          {
            "name": "slicePoint",
            "type": "string",
            "default": null
          },
          {
            "name": "length",
            "type": "number",
            "default": null
          }
        ],
        "returnType": "string"
      },
      "sliceStringAfter": {
        "type": "sync",
        "description": "Slices the given string after a specific substring.",
        "arguments": [
          {
            "name": "input",
            "type": "string",
            "default": null
          },
          {
            "name": "slicePoint",
            "type": "string",
            "default": null
          },
          {
            "name": "length",
            "type": "number",
            "default": null
          }
        ],
        "returnType": "string"
      },
      "trimString": {
        "type": "sync",
        "description": "Removes whitespace from both sides of the given string.",
        "arguments": [
          {
            "name": "input",
            "type": "string",
            "default": null
          }
        ]
      },
      "extractNumberFromString": {
        "type": "sync",
        "description": "Extracts all numbers from a string.",
        "arguments": [
          {
            "name": "input",
            "type": "string",
            "default": null
          },
          {
            "name": "index",
            "type": "number",
            "default": 0
          }
        ],
        "returnType": "string"
      },
      "stringifyJSON": {
        "type": "sync",
        "description": "Converts a JSON object to string.",
        "arguments": [
          {
            "name": "object",
            "type": "object",
            "default": null
          }
        ],
        "returnType": "string"
      },
      "addRemoveLeadingZeros": {
        "type": "sync",
        "description": "Adds or removes leading zeros to the passed number to format it to the required length.",
        "arguments": [
          {
            "name": "number",
            "type": "string",
            "default": null
          },
          {
            "name": "length",
            "type": "number",
            "default": null
          }
        ],
        "returnType": "string"
      },
      "formatDate": {
        "type": "sync",
        "description": "formats date.",
        "arguments": [
          {
            "name": "date",
            "type": "date",
            "default": null
          },
          {
            "name": "format",
            "type": "string",
            "default": null
          },
          {
            "name": "locale",
            "type": "string",
            "default": "\"en-US\""
          }
        ],
        "returnType": "string"
      },
      "formatDateWithTime": {
        "type": "sync",
        "description": "formats date with time.",
        "arguments": [
          {
            "name": "date",
            "type": "date",
            "default": null
          },
          {
            "name": "format",
            "type": "string",
            "default": null
          },
          {
            "name": "locale",
            "type": "string",
            "default": "\"en-US\""
          }
        ]
      }
    },
    "function": {
      "retry": {
        "type": "async",
        "description": "Retries the passed function n times with a specific interval until it executed successfully.",
        "arguments": [
          {
            "name": "fct",
            "type": "function",
            "default": null
          },
          {
            "name": "args",
            "type": "array",
            "default": null
          },
          {
            "name": "retries",
            "type": "integer",
            "default": "3"
          },
          {
            "name": "interval",
            "type": "integer",
            "default": "5000"
          },
          {
            "name": "scope",
            "type": "object",
            "default": "null"
          }
        ]
      },
      "executeOptional": {
        "type": "async",
        "description": "Executes the given function optionally. If it fails, a promise will be returned anyway.",
        "arguments": [
          {
            "name": "fct",
            "type": "function",
            "default": null
          },
          {
            "name": "args",
            "type": "array",
            "default": null
          }
        ]
      },
      "mapWdioErrorToQmateErrorMessage": {
        "type": "async",
        "description": "Maps Wdio Error to Qmate Error Message",
        "arguments": [
          {
            "name": "wdioError",
            "type": "error",
            "default": null
          },
          {
            "name": "action",
            "type": "string",
            "default": null
          }
        ]
      }
    },
    "system": {
      "getOS": {
        "type": "async",
        "description": "Returns the current operating system.",
        "arguments": [],
        "returnType": "string"
      }
    },
    "userSettings": {}
  }
}