diff --git a/data/en/aigetmetadata.json b/data/en/aigetmetadata.json new file mode 100644 index 000000000..84615f9fe --- /dev/null +++ b/data/en/aigetmetadata.json @@ -0,0 +1,27 @@ +{ + "engines": {"lucee": { + "docs": "https://docs.lucee.org/reference/functions/AIGetMetaData.html", + "minimum_version": "" + }}, + "name": "AIGetMetaData", + "description": "Retrieves metadata about a configured AI endpoint. \nReturns information about the endpoint's configuration, \nand optionally detailed information about available models and associated files.", + "syntax": "AIGetMetaData( name )", + "returns": "struct", + "type": "function", + "params": [ + { + "name": "name", + "description": "The name of the AI endpoint to get metadata for. Can be either:\n\n1. A direct endpoint name as configured in the Lucee Administrator\n2. A default reference (e.g., \"default:exception\") which will resolve to the configured default endpoint for that category\n3. A AI session object from which to retrieve and analyze AI endpoint metadata", + "aliases": "aiName,nameAI,session", + "type": "any", + "required": true + }, + { + "name": "detailed", + "description": "When true, includes additional detailed information:\n\n- Models: List of available models with their names, labels, descriptions, and custom settings\n- Files: For file-capable engines, lists associated files with their IDs, purposes, sizes, creation dates, and status information", + "default": "false", + "type": "boolean", + "required": false + } + ] +} \ No newline at end of file diff --git a/data/en/aihas.json b/data/en/aihas.json new file mode 100644 index 000000000..cd9f60798 --- /dev/null +++ b/data/en/aihas.json @@ -0,0 +1,18 @@ +{ + "engines": {"lucee": { + "docs": "https://docs.lucee.org/reference/functions/AIHas.html", + "minimum_version": "" + }}, + "name": "AIHas", + "description": "Checks whether a specific AI endpoint is configured and available for use.", + "syntax": "AIHas( name )", + "returns": "boolean", + "type": "function", + "params": [{ + "name": "name", + "description": "The name of the AI endpoint to check. Can be either:\n\n1. A direct endpoint name as configured in the Lucee Administrator\n2. A default reference (e.g., \"default:exception\") which will check if a default endpoint is configured for that category", + "aliases": "aiName,nameAI", + "type": "string", + "required": true + }] +} \ No newline at end of file diff --git a/data/en/applicationpathcacheclear.json b/data/en/applicationpathcacheclear.json new file mode 100644 index 000000000..aeacb8a64 --- /dev/null +++ b/data/en/applicationpathcacheclear.json @@ -0,0 +1,12 @@ +{ + "engines": {"lucee": { + "docs": "https://docs.lucee.org/reference/functions/ApplicationPathCacheClear.html", + "minimum_version": "5.3" + }}, + "name": "ApplicationPathCacheClear", + "description": "flush the application.[cfc|cfm] path cache", + "syntax": "ApplicationPathCacheClear()", + "returns": "void", + "type": "function", + "params": [] +} \ No newline at end of file diff --git a/data/en/arrayremoveduplicates.json b/data/en/arrayremoveduplicates.json new file mode 100644 index 000000000..b97ed0ebc --- /dev/null +++ b/data/en/arrayremoveduplicates.json @@ -0,0 +1,25 @@ +{ + "engines": {"lucee": { + "docs": "https://docs.lucee.org/reference/functions/ArrayRemoveDuplicates.html", + "minimum_version": "6.0" + }}, + "name": "ArrayRemoveDuplicates", + "description": "Removes duplicate values from array.", + "syntax": "ArrayRemoveDuplicates( array )", + "returns": "array", + "type": "function", + "params": [ + { + "name": "array", + "description": "A array to Removes duplicate", + "type": "array", + "required": true + }, + { + "name": "ignoreCase", + "description": "if set to true, the duplicate value will not be case sensitive", + "type": "boolean", + "required": false + } + ] +} \ No newline at end of file diff --git a/data/en/componentlistpackage.json b/data/en/componentlistpackage.json new file mode 100644 index 000000000..26e0d9ac9 --- /dev/null +++ b/data/en/componentlistpackage.json @@ -0,0 +1,18 @@ +{ + "engines": {"lucee": { + "docs": "https://docs.lucee.org/reference/functions/ComponentListPackage.html", + "minimum_version": "" + }}, + "name": "ComponentListPackage", + "description": "List all components in a certain package, throws an application exception if package does not exist.", + "syntax": "ComponentListPackage( package )", + "returns": "array", + "type": "function", + "params": [{ + "name": "package", + "description": "name of the package to list", + "aliases": "packageName,name", + "type": "string", + "required": true + }] +} \ No newline at end of file diff --git a/data/en/configtranslate.json b/data/en/configtranslate.json new file mode 100644 index 000000000..9358abe02 --- /dev/null +++ b/data/en/configtranslate.json @@ -0,0 +1,46 @@ +{ + "engines": {"lucee": { + "docs": "https://docs.lucee.org/reference/functions/ConfigTranslate.html", + "minimum_version": "6.0" + }}, + "name": "ConfigTranslate", + "description": "translate an old Lucee XML configuration to the new CFConfig.json configuration", + "syntax": "ConfigTranslate( source )", + "returns": "struct", + "type": "function", + "params": [ + { + "name": "source", + "description": "Path to the Lucee XML file (lucee-server.xml or lucee-web.xml.cfm) file or the data itself as a String.", + "aliases": "data,input", + "type": "string", + "required": true + }, + { + "name": "target", + "description": "Path to the Lucee XML file (lucee-server.xml or lucee-web.xml.cfm) file or the data itself as a String.", + "aliases": "output", + "type": "string", + "required": false + }, + { + "name": "type", + "description": "Config Context to manipulate, server or web context.", + "default": "server", + "type": "string", + "required": false + }, + { + "name": "mode", + "description": "Only used when type is set to [server], should be the resulting json set for single or multi mode.", + "type": "string", + "required": false + }, + { + "name": "charset", + "description": "charset to use to read the XML file, if not defined, Lucee will use the default resource charset.", + "type": "string", + "required": false + } + ] +} \ No newline at end of file diff --git a/data/en/createaisession.json b/data/en/createaisession.json new file mode 100644 index 000000000..3baa8a6d5 --- /dev/null +++ b/data/en/createaisession.json @@ -0,0 +1,42 @@ +{ + "engines": {"lucee": { + "docs": "https://docs.lucee.org/reference/functions/CreateAISession.html", + "minimum_version": "" + }}, + "name": "CreateAISession", + "description": "Creates a new AI session for interaction with Large Language Models (LLMs). \nThe session maintains conversation history and context between interactions. \nEach session can be configured with different parameters to optimize for specific use cases like code analysis, content generation, or data processing.\nCommon usage patterns:\n- Exception analysis and debugging assistance\n- Code documentation generation\n- Query optimization suggestions\n- Security review assistance\n- Performance optimization recommendations\nThe session persists until explicitly terminated or the application restarts.", + "syntax": "CreateAISession( name )", + "returns": "object", + "type": "function", + "params": [ + { + "name": "name", + "description": "Specifies which AI endpoint configuration to use. Can be provided in two formats:\n\n1. Direct endpoint name:\n\nThe name of an endpoint as defined in the Lucee Administrator (similar to how datasource names work)\n\n2. Default reference:\n\nUsing the format \"default:category\" to use the endpoint configured as the default for that specific category in the Lucee Administrator.\n\nCurrently supported default categories:\n\n- exception: For exception analysis\n- documentation: For documentation tasks\n\nThe endpoint configurations and their default category assignments are managed in the Lucee Administrator.", + "aliases": "aiName,nameAI", + "type": "string", + "required": true + }, + { + "name": "systemMessage", + "description": "Initial instruction set that defines the AI's behavior and expertise for this session. This message sets the context and rules for all subsequent interactions.\n\nBest practices:\n\n- Be specific about the AI's role and expertise\n- Define output format requirements clearly\n- Include any necessary constraints or rules\n- Specify error handling preferences\n- Define response structure expectations\n\nThe system message persists throughout the session and influences all responses.", + "aliases": "initalMesssage,message", + "type": "string", + "required": false + }, + { + "name": "limit", + "description": "Maximum number of question-answer pairs to keep in the conversation history. Once reached, older messages will be removed.\n\nConsider:\n\n- Higher limits provide more context but consume more memory\n- Lower limits are more memory efficient but may lose important context\n- For complex analysis tasks, consider limits of 10-20\n- For simple Q&A, limits of 5-10 may suffice", + "default": "50", + "aliases": "conversationHistoryLimit", + "type": "numeric", + "required": false + }, + { + "name": "temperature", + "description": "Controls response randomness (0.0 to 1.0). Lower values make responses more focused and deterministic, higher values make them more creative and varied.\n\nRecommended settings:\n\n- 0.0-0.3: Technical analysis, debugging, code review\n- 0.3-0.5: Documentation generation, error explanations\n- 0.5-0.7: General purpose interactions\n- 0.7-1.0: Creative content generation\n\nFor exception analysis and debugging, lower temperatures (0.2-0.3) are recommended for more consistent and precise responses.", + "default": "0.7", + "type": "numeric", + "required": false + } + ] +} \ No newline at end of file diff --git a/data/en/createulid.json b/data/en/createulid.json new file mode 100644 index 000000000..5b5a780c2 --- /dev/null +++ b/data/en/createulid.json @@ -0,0 +1,34 @@ +{ + "engines": {"lucee": { + "docs": "https://docs.lucee.org/reference/functions/createULID.html", + "minimum_version": "6.0" + }}, + "name": "createULID", + "description": "Generates a ULID (Universally Unique Lexicographically Sortable Identifier)", + "syntax": "createULID()", + "returns": "string", + "type": "function", + "params": [ + { + "name": "type", + "description": "Specifies the generation mode of the ULID. If not defined, a standard ULID is generated.\n\n- `monotonic` ensures ULIDs increase monotonically, suitable for ensuring order in rapid generation scenarios. \n- `hash` mode generates a ULID based on hashing the provided inputs, useful for creating deterministic identifiers.", + "default": "", + "type": "string", + "required": false + }, + { + "name": "input1", + "description": "Used in conjunction with the `hash` type, this numeric input contributes to the generation of a deterministic ULID by influencing its random component.\n\nonly used for hash", + "default": "", + "type": "number", + "required": false + }, + { + "name": "input2", + "description": "Similar to `input1`, this string input is utilized only in the `hash` mode to further seed the ULID's random component, enabling the creation of a deterministic ULID based on the hash of the inputs.", + "default": "", + "type": "string", + "required": false + } + ] +} \ No newline at end of file diff --git a/data/en/debugadd.json b/data/en/debugadd.json new file mode 100644 index 000000000..2df9ecfb3 --- /dev/null +++ b/data/en/debugadd.json @@ -0,0 +1,25 @@ +{ + "engines": {"lucee": { + "docs": "https://docs.lucee.org/reference/functions/debugAdd.html", + "minimum_version": "" + }}, + "name": "debugAdd", + "description": "Adding data to debug output.", + "syntax": "debugAdd( category, data )", + "returns": "void", + "type": "function", + "params": [ + { + "name": "category", + "description": "category name for the data passed in.", + "type": "string", + "required": true + }, + { + "name": "data", + "description": "struct containing data to add to debug output.", + "type": "struct", + "required": true + } + ] +} \ No newline at end of file diff --git a/data/en/directoryinfo.json b/data/en/directoryinfo.json new file mode 100644 index 000000000..13f3c9be7 --- /dev/null +++ b/data/en/directoryinfo.json @@ -0,0 +1,18 @@ +{ + "engines": {"lucee": { + "docs": "https://docs.lucee.org/reference/functions/DirectoryInfo.html", + "minimum_version": "6.0" + }}, + "name": "DirectoryInfo", + "description": "returns detailed info about the given directory.", + "syntax": "DirectoryInfo( source )", + "returns": "struct", + "type": "function", + "params": [{ + "name": "source", + "description": "directory path", + "aliases": "Directory", + "type": "string", + "required": true + }] +} \ No newline at end of file diff --git a/data/en/dump.json b/data/en/dump.json new file mode 100644 index 000000000..d05c720fc --- /dev/null +++ b/data/en/dump.json @@ -0,0 +1,91 @@ +{ + "engines": {"lucee": { + "docs": "https://docs.lucee.org/reference/functions/dump.html", + "minimum_version": "" + }}, + "name": "dump", + "description": "Outputs the elements, variables and values of most kinds of CFML objects. Useful for debugging. You can display the contents of simple and complex variables, objects, components, user-defined functions, and other elements.", + "syntax": "dump()", + "returns": "void", + "type": "function", + "params": [ + { + "name": "var", + "description": "Variable to display.", + "type": "object", + "required": false + }, + { + "name": "expand", + "description": "expands views", + "type": "boolean", + "required": false + }, + { + "name": "format", + "description": "specify the output format of the dump, the following formats are supported:\n\n- simple: - a simple HTML output (no JavaScript or CSS)\n- text (default output=\"console\"): plain text output (no HTML)\n- html (default output=\"browser\"): regular output with HTML/CSS/JavaScript\n- classic: classic view with HTML/CSS/JavaScript", + "type": "string", + "required": false + }, + { + "name": "hide", + "description": "hide column or keys.", + "type": "string", + "required": false + }, + { + "name": "keys", + "description": "For a structure, number of keys to display.", + "type": "numeric", + "required": false + }, + { + "name": "label", + "description": "header for the dump output.", + "type": "string", + "required": false + }, + { + "name": "metainfo", + "description": "Includes information about the query in the cfdump results.", + "type": "boolean", + "required": false + }, + { + "name": "output", + "description": "Where to send the results:\n\n- console: the result is written to the console (System.out).\n- browser (default): the result is written to the browser response stream.", + "type": "string", + "required": false + }, + { + "name": "show", + "description": "show column or keys.", + "type": "string", + "required": false + }, + { + "name": "showUDFs", + "description": "show UDFs in cfdump output.", + "type": "boolean", + "required": false + }, + { + "name": "top", + "description": "The number of rows to display.", + "type": "numeric", + "required": false + }, + { + "name": "abort", + "description": "stops further processing of the request.", + "type": "boolean", + "required": false + }, + { + "name": "eval", + "description": "name of the variable to display, also used as label, when no label defined.", + "type": "string", + "required": false + } + ] +} \ No newline at end of file diff --git a/data/en/encodeforsql.json b/data/en/encodeforsql.json new file mode 100644 index 000000000..1a1ddb40d --- /dev/null +++ b/data/en/encodeforsql.json @@ -0,0 +1,33 @@ +{ + "engines": {"lucee": { + "docs": "https://docs.lucee.org/reference/functions/encodeForSQL.html", + "minimum_version": "" + }}, + "name": "encodeForSQL", + "description": "Encodes the given string for safe output in a query to reduce the risk of SQL Injection attacks. _This method is not recommended_ - the use of query parameters are strongly encouraged as a stronger alternative.", + "syntax": "encodeForSQL( string, dialect )", + "returns": "string", + "type": "function", + "params": [ + { + "name": "string", + "description": "string to encode", + "type": "string", + "required": true + }, + { + "name": "dialect", + "description": "SQL dialect used to encode, possible values are:\n\t\t\t\t* db2\n\t\t\t\t* mysql_ansi\n\t\t\t\t* mysql\n\t\t\t\t* oracle", + "type": "string", + "required": true + }, + { + "name": "canonicalize", + "description": "If set to true, canonicalization happens before encoding. If set to false, the given input string will just be encoded. The default value for canonicalize is false. When this parameter is not specified, canonicalization will not happen. By default, when canonicalization is performed, both mixed and multiple encodings will be allowed. To use any other combinations you should canonicalize using canonicalize method and then do encoding.", + "minimum_version": "boo", + "default": "false", + "type": "boolean", + "required": false + } + ] +} \ No newline at end of file diff --git a/data/en/extensioninfo.json b/data/en/extensioninfo.json new file mode 100644 index 000000000..0ccf4762f --- /dev/null +++ b/data/en/extensioninfo.json @@ -0,0 +1,17 @@ +{ + "engines": {"lucee": { + "docs": "https://docs.lucee.org/reference/functions/ExtensionInfo.html", + "minimum_version": "6.0" + }}, + "name": "ExtensionInfo", + "description": "Returns the detailed info about the extension.", + "syntax": "ExtensionInfo( id )", + "returns": "struct", + "type": "function", + "params": [{ + "name": "id", + "description": "Id of the extension", + "type": "string", + "required": true + }] +} \ No newline at end of file diff --git a/data/en/fileinfo.json b/data/en/fileinfo.json new file mode 100644 index 000000000..0703c7b8d --- /dev/null +++ b/data/en/fileinfo.json @@ -0,0 +1,18 @@ +{ + "engines": {"lucee": { + "docs": "https://docs.lucee.org/reference/functions/FileInfo.html", + "minimum_version": "5.0" + }}, + "name": "FileInfo", + "description": "returns detailed info about the given file.", + "syntax": "FileInfo( file )", + "returns": "struct", + "type": "function", + "params": [{ + "name": "file", + "description": "file path", + "aliases": "resource", + "type": "string", + "required": true + }] +} \ No newline at end of file diff --git a/data/en/filemodetosymbolic.json b/data/en/filemodetosymbolic.json new file mode 100644 index 000000000..a5b15dc7e --- /dev/null +++ b/data/en/filemodetosymbolic.json @@ -0,0 +1,17 @@ +{ + "engines": {"lucee": { + "docs": "https://docs.lucee.org/reference/functions/FileModeToSymbolic.html", + "minimum_version": "7.0" + }}, + "name": "FileModeToSymbolic", + "description": "Converts a mode mask to it's symbolic representation.", + "syntax": "FileModeToSymbolic( mode )", + "returns": "string", + "type": "function", + "params": [{ + "name": "mode", + "description": "A three-digit value, in which each digit specifies the file access for individuals and groups:\n\n- The first digit represents the owner.\n- The second digit represents a group.\n- The third digit represents anyone.\n\nEach digit of this code sets permissions for the appropriate individual or group:\n\n- 4 specifies read permission.\n- 2 specifies write permission.\n- 1 specifies execute permission.\n\nYou use the sums of these numbers to indicate combinations of the permissions:\n\n- 3 specifies write and execute permission.\n- 5 specifies read and execute permission.\n- 6 indicates read and write permission.\n- 7 indicates read, write, and execute permission.\n\nFor example, 400 specifies that only the owner can read the file; 004 specifies that anyone can read the file.", + "type": "string", + "required": true + }] +} \ No newline at end of file diff --git a/data/en/filetouch.json b/data/en/filetouch.json new file mode 100644 index 000000000..bf0f1faba --- /dev/null +++ b/data/en/filetouch.json @@ -0,0 +1,25 @@ +{ + "engines": {"lucee": { + "docs": "https://docs.lucee.org/reference/functions/fileTouch.html", + "minimum_version": "" + }}, + "name": "fileTouch", + "description": "Touches given file, creates the file if not already exists.", + "syntax": "fileTouch( file )", + "returns": "void", + "type": "function", + "params": [ + { + "name": "file", + "description": "file to touch.", + "type": "any", + "required": true + }, + { + "name": "createPath", + "description": "if set to false, expects all parent directories to exist, true (default) will generate necessary directories", + "type": "boolean", + "required": false + } + ] +} \ No newline at end of file diff --git a/data/en/findlast.json b/data/en/findlast.json new file mode 100644 index 000000000..0423cfd9e --- /dev/null +++ b/data/en/findlast.json @@ -0,0 +1,32 @@ +{ + "engines": {"lucee": { + "docs": "https://docs.lucee.org/reference/functions/findLast.html", + "minimum_version": "5.3" + }}, + "name": "findLast", + "description": "Finds the last occurrence of a substring in a string, from a\nspecified start position. The search is case-sensitive.", + "syntax": "findLast( substring, string )", + "returns": "number", + "type": "function", + "params": [ + { + "name": "substring", + "description": "String for which to search.", + "type": "string", + "required": true + }, + { + "name": "string", + "description": "String in which to search.", + "type": "string", + "required": true + }, + { + "name": "start", + "description": "End position of search from the left.", + "default": "1", + "type": "number", + "required": false + } + ] +} \ No newline at end of file diff --git a/data/en/findlastnocase.json b/data/en/findlastnocase.json new file mode 100644 index 000000000..cee4ee732 --- /dev/null +++ b/data/en/findlastnocase.json @@ -0,0 +1,32 @@ +{ + "engines": {"lucee": { + "docs": "https://docs.lucee.org/reference/functions/findLastNoCase.html", + "minimum_version": "5.3" + }}, + "name": "findLastNoCase", + "description": "Finds the last occurrence of a substring in a string, from a\nspecified start position. If substring is not in string,\nreturns zero. The search is case-insensitive.", + "syntax": "findLastNoCase( substring, string )", + "returns": "number", + "type": "function", + "params": [ + { + "name": "substring", + "description": "String for which to search.", + "type": "string", + "required": true + }, + { + "name": "string", + "description": "String in which to search.", + "type": "string", + "required": true + }, + { + "name": "start", + "description": "End position of search from the left.", + "default": "1", + "type": "number", + "required": false + } + ] +} \ No newline at end of file diff --git a/data/en/functions.json b/data/en/functions.json index e2031e96b..f8e72f9a6 100644 --- a/data/en/functions.json +++ b/data/en/functions.json @@ -1,4 +1,4 @@ { - "related":["abs","acos","addsoaprequestheader","addsoapresponseheader","ajaxlink","ajaxonload","applicationstarttime","applicationstop","argon2checkhash","array","arrayappend","arrayavg","arrayclear","arraycontains","arraycontainsnocase","arraydelete","arraydeleteat","arraydeletenocase","arrayeach","arrayevery","arrayfilter","arrayfind","arrayfindall","arrayfindallnocase","arrayfindnocase","arrayfirst","arraygetmetadata","arrayindexexists","arrayinsertat","arrayisdefined","arrayisempty","arraylast","arraylen","arraymap","arraymax","arraymedian","arraymerge","arraymid","arraymin","arraynew","arraypop","arrayprepend","arraypush","arrayreduce","arrayreduceright","arrayresize","arrayreverse","arrayset","arraysetmetadata","arrayshift","arrayslice","arraysome","arraysort","arraysplice","arraysum","arrayswap","arraytolist","arraytostruct","arrayunshift","asc","asin","atn","beat","binarydecode","binaryencode","bitand","bitmaskclear","bitmaskread","bitmaskset","bitnot","bitor","bitshln","bitshrn","bitxor","booleanformat","bundleinfo","cacheclear","cachecount","cachedelete","cacheget","cachegetall","cachegetallids","cachegetdefaultcachename","cachegetengineproperties","cachegetmetadata","cachegetproperties","cachegetsession","cacheidexists","cachekeyexists","cacheput","cacheregionexists","cacheregionnew","cacheregionremove","cacheremove","cacheremoveall","cachesetproperties","callstackdump","callstackget","canonicalize","ceiling","cfusion_decrypt","cfusion_encrypt","charsetdecode","charsetencode","chr","cjustify","cleartimezone","collectioneach","collectionevery","collectionfilter","collectionmap","collectionreduce","collectionsome","compare","comparenocase","componentcacheclear","componentcachelist","componentinfo","compress","configimport","contractpath","cos","createdate","createdatetime","createdynamicproxy","createencryptedjwt","createguid","createobject","createodbcdate","createodbcdatetime","createodbctime","createsignedjwt","createtime","createtimespan","createuniqueid","createuuid","csrfgeneratetoken","csrfverifytoken","ctcacheclear","ctcachelist","datasourceflushmetacache","dateadd","datecompare","dateconvert","datediff","dateformat","datepart","datetimeformat","day","dayofweek","dayofweekasstring","dbpoolclear","dayofweekshortasstring","dayofyear","daysinmonth","daysinyear","de","decimalformat","decodeforhtml","decodefromurl","decrementvalue","decrypt","decryptbinary","deleteclientvariable","deserialize","deserializeavro","deserializejson","deserializeprotobuf","deserializexml","directorycopy","directorycreate","directorydelete","directoryexists","directorylist","directoryrename","dollarformat","dotnettocftype","duplicate","each","echo","empty","encodefor","encodeforcss","encodefordn","encodeforhtml","encodeforhtmlattribute","encodeforjavascript","encodeforldap","encodeforurl","encodeforxml","encodeforxmlattribute","encodeforxpath","encrypt","encryptbinary","entitydelete","entityload","entityloadbyexample","entityloadbypk","entitymerge","entitynamearray","entitynamelist","entitynew","entityreload","entitysave","entitytoquery","esapidecode","esapiencode","evaluate","exceptionkeyexists","exp","expandpath","extensionexists","extensionlist","extract","fileappend","fileclose","filecopy","filedelete","fileexists","filegetmimetype","fileiseof","filemove","fileopen","fileread","filereadbinary","filereadline","fileseek","filesetaccessmode","filesetattribute","filesetlastmodified","fileskipbytes","fileupload","fileuploadall","filewrite","filewriteline","find","findnocase","findoneof","firstdayofmonth","fix","floor","formatbasen","generateargon2hash","generatebcrypthash","generategraphqlmodels","generatepbkdfkey","generatescrypthash","generatesecretkey","getapplicationmetadata","getapplicationsettings","getauthuser","getbasetagdata","getbasetaglist","getbasetemplatepath","getbuiltinfunction","getcanonicalpath","getclasspath","getclientvariableslist","getcomponentmetadata","getcontextroot","getcpuusage","getcurrentcontext","getcurrenttemplatepath","getdirectoryfrompath","getencoding","getexception","getfilefrompath","getfileinfo","getfreespace","getfunctioncalledname","getfunctiondata","getfunctionkeywords","getfunctionlist","getgatewayhelper","getgraphqlclient","gethttprequestdata","gethttptimestring","getk2serverdoccount","getk2serverdoccountlimit","getlocale","getlocalecountry","getlocaledisplayname","getlocaleinfo","getlocalelanguage","getlocalhostip","getluceeid","getmemoryusage","getmetadata","getmetricdata","getnumericdate","getpagecontext","getprinterinfo","getprinterlist","getprofilesections","getprofilestring","getreadableimageformats","getsafehtml","getsoaprequest","getsoaprequestheader","getsoapresponse","getsoapresponseheader","getsystemfreememory","getsystemtotalmemory","gettagdata","gettaglist","gettempdirectory","gettempfile","gettemplatepath","gettickcount","gettimezone","gettimezoneinfo","gettoken","gettotalspace","getuserroles","getvariable","getvfsmetadata","getwriteableimageformats","hash","hash40","hmac","hour","htmlcodeformat","htmleditformat","htmlparse","iif","imageaddborder","imageblur","imagecaptcha","imageclearrect","imagecopy","imagecreatecaptcha","imagecrop","imagedrawarc","imagedrawbeveledrect","imagedrawcubiccurve","imagedrawimage","imagedrawline","imagedrawlines","imagedrawoval","imagedrawpoint","imagedrawquadraticcurve","imagedrawrect","imagedrawroundrect","imagedrawtext","imagefilter","imagefiltercolormap","imagefiltercurves","imagefilterkernel","imagefilterwarpgrid","imageflip","imagefonts","imageformats","imagegetblob","imagegetbufferedimage","imagegetexifmetadata","imagegetexiftag","imagegetheight","imagegetiptcmetadata","imagegetiptctag","imagegetmetadata","imagegetwidth","imagegrayscale","imageinfo","imagemakecolortransparent","imagemaketranslucent","imagenegative","imagenew","imageoverlay","imagepaste","imageread","imagereadbase64","imageresize","imagerotate","imagerotatedrawingaxis","imagescaletofit","imagesetantialiasing","imagesetbackgroundcolor","imagesetdrawingalpha","imagesetdrawingcolor","imagesetdrawingstroke","imagesetdrawingtransparency","imagesharpen","imageshear","imagesheardrawingaxis","imagetranslate","imagetranslatedrawingaxis","imagewrite","imagewritebase64","imagexordrawingmode","incrementvalue","inputbasen","insert","int","invalidateoauthaccesstoken","invoke","isarray","isbinary","isboolean","isclosure","iscustomfunction","isdate","isdateobject","isddx","isdebugmode","isdefined","isempty","isfileobject","isimage","isimagefile","isinstanceof","isinthread","isipinrange","isipv6","isjson","isk2serverabroker","isk2serverdoccountexceeded","isk2serveronline","isleapyear","islocalhost","isnotmap","isnull","isnumeric","isnumericdate","isobject","ispdfarchive","ispdffile","ispdfobject","isquery","issafehtml","issimplevalue","issoaprequest","isspreadsheetfile","isspreadsheetobject","isstruct","isuserinanyrole","isuserinrole","isuserloggedin","isvalid","isvalidoauthaccesstoken","isvideofile","iswddx","isxml","isxmlattribute","isxmldoc","isxmlelem","isxmlnode","isxmlroot","iszipfile","javacast","jsstringformat","lcase","left","len","listappend","listavg","listchangedelims","listcompact","listcontains","listcontainsnocase","listdeleteat","listeach","listevery","listfilter","listfind","listfindnocase","listfirst","listgetat","listindexexists","listinsertat","listitemtrim","listlast","listlen","listmap","listprepend","listqualify","listreduce","listreduceright","listremoveduplicates","listrest","listsetat","listsome","listsort","listtoarray","listtrim","listvaluecount","listvaluecountnocase","ljustify","location","log","log10","lscurrencyformat","lsdateformat","lsdatetimeformat","lsdayofweek","lseurocurrencyformat","lsiscurrency","lsisdate","lsisnumeric","lsnumberformat","lsparsecurrency","lsparsedatetime","lsparseeurocurrency","lsparsenumber","lstimeformat","lsweek","ltrim","manifestread","max","metaphone","mid","millisecond","min","minute","month","monthasstring","monthshortasstring","newline","now","nowserver","nullvalue","numberformat","objectequals","objectload","objectsave","onapplicationend","onapplicationstart","onerror","onmissingmethod","onmissingtemplate","onrequest","onrequestend","onrequeststart","onserverstart","onsessionend","onsessionstart","ormclearsession","ormcloseallsessions","ormclosesession","ormevictcollection","ormevictentity","ormevictqueries","ormexecutequery","ormflush","ormflushall","ormgetsession","ormgetsessionfactory","ormindex","ormindexpurge","ormreload","ormsearch","ormsearchoffline","pagepoolclear","pagepoollist","paragraphformat","parameterexists","parsedatetime","parsenumber","pi","precisionevaluate","preservesinglequotes","quarter","query","queryaddcolumn","queryaddrow","queryappend","queryclear","querycolumnarray","querycolumncount","querycolumndata","querycolumnexists","querycolumnlist","queryconvertforgrid","querycurrentrow","querydeletecolumn","querydeleterow","queryeach","queryevery","queryexecute","queryfilter","querygetcell","querygetresult","querygetrow","queryinsertat","querykeyexists","querylazy","querymap","querynew","queryprepend","queryrecordcount","queryreduce","queryreverse","queryrowdata","queryrowswap","querysetcell","querysetrow","queryslice","querysome","querysort","quotedvaluelist","rand","randomize","randrange","reescape","refind","refindnocase","releasecomobject","rematch","rematchnocase","removecachedquery","removechars","render","repeatstring","replace","replacelist","replacelistnocase","replacenocase","rereplace","rereplacenocase","restdeleteapplication","restinitapplication","restsetresponse","reverse","right","rjustify","round","rtrim","runasync","sanitizehtml","second","sendgatewaymessage","serialize","serializeavro","serializejson","serializeprotobuf","serializexml","sessiongetmetadata","sessioninvalidate","sessionrotate","sessionstarttime","setencoding","setlocale","setprofilestring","settimezone","setvariable","sgn","sin","sizeof","sleep","soundex","spanexcluding","spanincluding","spreadsheetaddautofilter","spreadsheetaddcolumn","spreadsheetaddfreezepane","spreadsheetaddimage","spreadsheetaddinfo","spreadsheetaddpagebreaks","spreadsheetaddrow","spreadsheetaddrows","spreadsheetaddsplitpane","spreadsheetcreatesheet","spreadsheetdeletecolumn","spreadsheetdeletecolumns","spreadsheetdeleterow","spreadsheetdeleterows","spreadsheetformatcell","spreadsheetformatcellrange","spreadsheetformatcolumn","spreadsheetformatcolumns","spreadsheetformatrow","spreadsheetformatrows","spreadsheetgetcellcomment","spreadsheetgetcellformula","spreadsheetgetcellvalue","spreadsheetgetcolumncount","spreadsheetinfo","spreadsheetmergecells","spreadsheetnew","spreadsheetread","spreadsheetreadbinary","spreadsheetremovesheet","spreadsheetsetactivesheet","spreadsheetsetactivesheetnumber","spreadsheetsetcellcomment","spreadsheetsetcellformula","spreadsheetsetcellvalue","spreadsheetsetcolumnwidth","spreadsheetsetfooter","spreadsheetsetheader","spreadsheetsetrowheight","spreadsheetshiftcolumns","spreadsheetshiftrows","spreadsheetwrite","sqr","sslcertificateinstall","sslcertificatelist","storeaddacl","storegetacl","storegetmetadata","storesetacl","storesetmetadata","stringeach","stringevery","stringfilter","stringlen","stringmap","stringreduce","stringreduceright","stringsome","stringsort","stripcr","structappend","structclear","structcopy","structcount","structdelete","structeach","structequals","structevery","structfilter","structfind","structfindkey","structfindvalue","structget","structgetmetadata","structinsert","structiscasesensitive","structisempty","structisordered","structkeyarray","structkeyexists","structkeylist","structkeytranslate","structlistnew","structmap","structnew","structreduce","structsetmetadata","structsome","structsort","structtosorted","structupdate","structvaluearray","systemcacheclear","systemoutput","tan","threadjoin","threadterminate","throw","timeformat","tobase64","tobinary","tonumeric","toscript","tostring","trace","transactioncommit","transactionrollback","transactionsetsavepoint","trim","truefalseformat","ucase","ucfirst","unserializejava","urldecode","urlencode","urlencodedformat","urlsessionformat","val","valuearray","valuelist","verifybcrypthash","verifyclient","verifyencryptedjwt","verifyscrypthash","verifysignedjwt","webservicenew","week","wrap","writebody","writedump","writelog","writeoutput","wsgetallchannels","wsgetsubscribers","wspublish","wssendmessage","xmlchildpos","xmlclear","xmldeleteat","xmlelemnew","xmlformat","xmlgetnodetype","xmlhaschild","xmlnew","xmlparse","xmlsearch","xmltransform","xmlupdate","xmlvalidate","year","yesnoformat"], + "related":["abs","acos","addsoaprequestheader","addsoapresponseheader","ajaxlink","ajaxonload","applicationstarttime","applicationstop","argon2checkhash","array","arrayappend","arrayavg","arrayclear","arraycontains","arraycontainsnocase","arraydelete","arraydeleteat","arraydeletenocase","arrayeach","arrayevery","arrayfilter","arrayfind","arrayfindall","arrayfindallnocase","arrayfindnocase","arrayfirst","arraygetmetadata","arrayindexexists","arrayinsertat","arrayisdefined","arrayisempty","arraylast","arraylen","arraymap","arraymax","arraymedian","arraymerge","arraymid","arraymin","arraynew","arraypop","arrayprepend","arraypush","arrayreduce","arrayreduceright","arrayresize","arrayreverse","arrayset","arraysetmetadata","arrayshift","arrayslice","arraysome","arraysort","arraysplice","arraysum","arrayswap","arraytolist","arraytostruct","arrayunshift","asc","asin","atn","beat","binarydecode","binaryencode","bitand","bitmaskclear","bitmaskread","bitmaskset","bitnot","bitor","bitshln","bitshrn","bitxor","booleanformat","bundleinfo","cacheclear","cachecount","cachedelete","cacheget","cachegetall","cachegetallids","cachegetdefaultcachename","cachegetengineproperties","cachegetmetadata","cachegetproperties","cachegetsession","cacheidexists","cachekeyexists","cacheput","cacheregionexists","cacheregionnew","cacheregionremove","cacheremove","cacheremoveall","cachesetproperties","callstackdump","callstackget","canonicalize","ceiling","cfusion_decrypt","cfusion_encrypt","charsetdecode","charsetencode","chr","cjustify","cleartimezone","collectioneach","collectionevery","collectionfilter","collectionmap","collectionreduce","collectionsome","compare","comparenocase","componentcacheclear","componentcachelist","componentinfo","compress","configimport","contractpath","cos","createdate","createdatetime","createdynamicproxy","createencryptedjwt","createguid","createobject","createodbcdate","createodbcdatetime","createodbctime","createsignedjwt","createtime","createtimespan","createuniqueid","createuuid","csrfgeneratetoken","csrfverifytoken","ctcacheclear","ctcachelist","datasourceflushmetacache","dateadd","datecompare","dateconvert","datediff","dateformat","datepart","datetimeformat","day","dayofweek","dayofweekasstring","dbpoolclear","dayofweekshortasstring","dayofyear","daysinmonth","daysinyear","de","decimalformat","decodeforhtml","decodefromurl","decrementvalue","decrypt","decryptbinary","deleteclientvariable","deserialize","deserializeavro","deserializejson","deserializeprotobuf","deserializexml","directorycopy","directorycreate","directorydelete","directoryexists","directorylist","directoryrename","dollarformat","dotnettocftype","duplicate","each","echo","empty","encodefor","encodeforcss","encodefordn","encodeforhtml","encodeforhtmlattribute","encodeforjavascript","encodeforldap","encodeforurl","encodeforxml","encodeforxmlattribute","encodeforxpath","encrypt","encryptbinary","entitydelete","entityload","entityloadbyexample","entityloadbypk","entitymerge","entitynamearray","entitynamelist","entitynew","entityreload","entitysave","entitytoquery","esapidecode","esapiencode","evaluate","exceptionkeyexists","exp","expandpath","extensionexists","extensionlist","extract","fileappend","fileclose","filecopy","filedelete","fileexists","filegetmimetype","fileiseof","filemove","fileopen","fileread","filereadbinary","filereadline","fileseek","filesetaccessmode","filesetattribute","filesetlastmodified","fileskipbytes","fileupload","fileuploadall","filewrite","filewriteline","find","findnocase","findoneof","firstdayofmonth","fix","floor","formatbasen","generateargon2hash","generatebcrypthash","generategraphqlmodels","generatepbkdfkey","generatescrypthash","generatesecretkey","getapplicationmetadata","getapplicationsettings","getauthuser","getbasetagdata","getbasetaglist","getbasetemplatepath","getbuiltinfunction","getcanonicalpath","getclasspath","getclientvariableslist","getcomponentmetadata","getcontextroot","getcpuusage","getcurrentcontext","getcurrenttemplatepath","getdirectoryfrompath","getencoding","getexception","getfilefrompath","getfileinfo","getfreespace","getfunctioncalledname","getfunctiondata","getfunctionkeywords","getfunctionlist","getgatewayhelper","getgraphqlclient","gethttprequestdata","gethttptimestring","getk2serverdoccount","getk2serverdoccountlimit","getlocale","getlocalecountry","getlocaledisplayname","getlocaleinfo","getlocalelanguage","getlocalhostip","getluceeid","getmemoryusage","getmetadata","getmetricdata","getnumericdate","getpagecontext","getprinterinfo","getprinterlist","getprofilesections","getprofilestring","getreadableimageformats","getsafehtml","getsoaprequest","getsoaprequestheader","getsoapresponse","getsoapresponseheader","getsystemfreememory","getsystemtotalmemory","gettagdata","gettaglist","gettempdirectory","gettempfile","gettemplatepath","gettickcount","gettimezone","gettimezoneinfo","gettoken","gettotalspace","getuserroles","getvariable","getvfsmetadata","getwriteableimageformats","hash","hash40","hmac","hour","htmlcodeformat","htmleditformat","htmlparse","iif","imageaddborder","imageblur","imagecaptcha","imageclearrect","imagecopy","imagecreatecaptcha","imagecrop","imagedrawarc","imagedrawbeveledrect","imagedrawcubiccurve","imagedrawimage","imagedrawline","imagedrawlines","imagedrawoval","imagedrawpoint","imagedrawquadraticcurve","imagedrawrect","imagedrawroundrect","imagedrawtext","imagefilter","imagefiltercolormap","imagefiltercurves","imagefilterkernel","imagefilterwarpgrid","imageflip","imagefonts","imageformats","imagegetblob","imagegetbufferedimage","imagegetexifmetadata","imagegetexiftag","imagegetheight","imagegetiptcmetadata","imagegetiptctag","imagegetmetadata","imagegetwidth","imagegrayscale","imageinfo","imagemakecolortransparent","imagemaketranslucent","imagenegative","imagenew","imageoverlay","imagepaste","imageread","imagereadbase64","imageresize","imagerotate","imagerotatedrawingaxis","imagescaletofit","imagesetantialiasing","imagesetbackgroundcolor","imagesetdrawingalpha","imagesetdrawingcolor","imagesetdrawingstroke","imagesetdrawingtransparency","imagesharpen","imageshear","imagesheardrawingaxis","imagetranslate","imagetranslatedrawingaxis","imagewrite","imagewritebase64","imagexordrawingmode","incrementvalue","inputbasen","insert","int","invalidateoauthaccesstoken","invoke","isarray","isbinary","isboolean","isclosure","iscustomfunction","isdate","isdateobject","isddx","isdebugmode","isdefined","isempty","isfileobject","isimage","isimagefile","isinstanceof","isinthread","isipinrange","isipv6","isjson","isk2serverabroker","isk2serverdoccountexceeded","isk2serveronline","isleapyear","islocalhost","isnotmap","isnull","isnumeric","isnumericdate","isobject","ispdfarchive","ispdffile","ispdfobject","isquery","issafehtml","issimplevalue","issoaprequest","isspreadsheetfile","isspreadsheetobject","isstruct","isuserinanyrole","isuserinrole","isuserloggedin","isvalid","isvalidoauthaccesstoken","isvideofile","iswddx","isxml","isxmlattribute","isxmldoc","isxmlelem","isxmlnode","isxmlroot","iszipfile","javacast","jsstringformat","lcase","left","len","listappend","listavg","listchangedelims","listcompact","listcontains","listcontainsnocase","listdeleteat","listeach","listevery","listfilter","listfind","listfindnocase","listfirst","listgetat","listindexexists","listinsertat","listitemtrim","listlast","listlen","listmap","listprepend","listqualify","listreduce","listreduceright","listremoveduplicates","listrest","listsetat","listsome","listsort","listtoarray","listtrim","listvaluecount","listvaluecountnocase","ljustify","location","log","log10","lscurrencyformat","lsdateformat","lsdatetimeformat","lsdayofweek","lseurocurrencyformat","lsiscurrency","lsisdate","lsisnumeric","lsnumberformat","lsparsecurrency","lsparsedatetime","lsparseeurocurrency","lsparsenumber","lstimeformat","lsweek","ltrim","manifestread","max","metaphone","mid","millisecond","min","minute","month","monthasstring","monthshortasstring","newline","now","nowserver","nullvalue","numberformat","objectequals","objectload","objectsave","onapplicationend","onapplicationstart","onerror","onmissingmethod","onmissingtemplate","onrequest","onrequestend","onrequeststart","onserverstart","onsessionend","onsessionstart","ormclearsession","ormcloseallsessions","ormclosesession","ormevictcollection","ormevictentity","ormevictqueries","ormexecutequery","ormflush","ormflushall","ormgetsession","ormgetsessionfactory","ormindex","ormindexpurge","ormreload","ormsearch","ormsearchoffline","pagepoolclear","pagepoollist","paragraphformat","parameterexists","parsedatetime","parsenumber","pi","precisionevaluate","preservesinglequotes","quarter","query","queryaddcolumn","queryaddrow","queryappend","queryclear","querycolumnarray","querycolumncount","querycolumndata","querycolumnexists","querycolumnlist","queryconvertforgrid","querycurrentrow","querydeletecolumn","querydeleterow","queryeach","queryevery","queryexecute","queryfilter","querygetcell","querygetresult","querygetrow","queryinsertat","querykeyexists","querylazy","querymap","querynew","queryprepend","queryrecordcount","queryreduce","queryreverse","queryrowdata","queryrowswap","querysetcell","querysetrow","queryslice","querysome","querysort","quotedvaluelist","rand","randomize","randrange","reescape","refind","refindnocase","releasecomobject","rematch","rematchnocase","removecachedquery","removechars","render","repeatstring","replace","replacelist","replacelistnocase","replacenocase","rereplace","rereplacenocase","restdeleteapplication","restinitapplication","restsetresponse","reverse","right","rjustify","round","rtrim","runasync","sanitizehtml","second","sendgatewaymessage","serialize","serializeavro","serializejson","serializeprotobuf","serializexml","sessiongetmetadata","sessioninvalidate","sessionrotate","sessionstarttime","setencoding","setlocale","setprofilestring","settimezone","setvariable","sgn","sin","sizeof","sleep","soundex","spanexcluding","spanincluding","spreadsheetaddautofilter","spreadsheetaddcolumn","spreadsheetaddfreezepane","spreadsheetaddimage","spreadsheetaddinfo","spreadsheetaddpagebreaks","spreadsheetaddrow","spreadsheetaddrows","spreadsheetaddsplitpane","spreadsheetcreatesheet","spreadsheetdeletecolumn","spreadsheetdeletecolumns","spreadsheetdeleterow","spreadsheetdeleterows","spreadsheetformatcell","spreadsheetformatcellrange","spreadsheetformatcolumn","spreadsheetformatcolumns","spreadsheetformatrow","spreadsheetformatrows","spreadsheetgetcellcomment","spreadsheetgetcellformula","spreadsheetgetcellvalue","spreadsheetgetcolumncount","spreadsheetinfo","spreadsheetmergecells","spreadsheetnew","spreadsheetread","spreadsheetreadbinary","spreadsheetremovesheet","spreadsheetsetactivesheet","spreadsheetsetactivesheetnumber","spreadsheetsetcellcomment","spreadsheetsetcellformula","spreadsheetsetcellvalue","spreadsheetsetcolumnwidth","spreadsheetsetfooter","spreadsheetsetheader","spreadsheetsetrowheight","spreadsheetshiftcolumns","spreadsheetshiftrows","spreadsheetwrite","sqr","sslcertificateinstall","sslcertificatelist","storeaddacl","storegetacl","storegetmetadata","storesetacl","storesetmetadata","stringeach","stringevery","stringfilter","stringlen","stringmap","stringreduce","stringreduceright","stringsome","stringsort","stripcr","structappend","structclear","structcopy","structcount","structdelete","structeach","structequals","structevery","structfilter","structfind","structfindkey","structfindvalue","structget","structgetmetadata","structinsert","structiscasesensitive","structisempty","structisordered","structkeyarray","structkeyexists","structkeylist","structkeytranslate","structlistnew","structmap","structnew","structreduce","structsetmetadata","structsome","structsort","structtosorted","structupdate","structvaluearray","systemcacheclear","systemoutput","tan","threadjoin","threadterminate","throw","timeformat","tobase64","tobinary","tonumeric","toscript","tostring","trace","transactioncommit","transactionrollback","transactionsetsavepoint","trim","truefalseformat","ucase","ucfirst","unserializejava","urldecode","urlencode","urlencodedformat","urlsessionformat","val","valuearray","valuelist","verifybcrypthash","verifyclient","verifyencryptedjwt","verifyscrypthash","verifysignedjwt","webservicenew","week","wrap","writebody","writedump","writelog","writeoutput","wsgetallchannels","wsgetsubscribers","wspublish","wssendmessage","xmlchildpos","xmlclear","xmldeleteat","xmlelemnew","xmlformat","xmlgetnodetype","xmlhaschild","xmlnew","xmlparse","xmlsearch","xmltransform","xmlupdate","xmlvalidate","year","yesnoformat", "aigetmetadata", "aihas", "applicationpathcacheclear", "arrayremoveduplicates", "componentlistpackage", "configtranslate", "createaisession", "createulid", "debugadd", "directoryinfo", "dump", "encodeforsql", "extensioninfo", "fileinfo", "filemodetosymbolic", "filetouch", "findlast", "findlastnocase", "gatewayaction", "gatewaystate", "generate3deskey", "generatersakeys", "getcomponentstaticscope", "getcontextinfo", "gethttprequestheaders", "getpropertyfile", "getpropertystring", "getsecret", "getsystemproporenvvar", "imagecoderinfo", "imagewritetobrowser", "inquiryaisession", "inspecttemplates", "internalrequest", "interruptthread", "isflushed", "iswithintransaction", "listgetduplicates", "listqualifiedtoarray", "loadaisession", "logallthreads", "lslcase", "lsucase", "luceeaigetmetadata", "luceeaihas", "luceecreateaisession", "luceeinquiryaisession", "markdowntohtml", "maveninfo", "mavenload", "queryclose", "querygetcellbyindex", "queryisempty", "queryrenamecolumn", "queryrowbyindex", "queryrowdatabyindex", "querytostruct", "s3addacl", "s3clearbucket", "s3copy", "s3createbucket", "s3delete", "s3deletebucket", "s3download", "s3exists", "s3generatepresignedurl", "s3generateuri", "s3getacl", "s3getmetadata", "s3getversioninfo", "s3listbucket", "s3listbuckets", "s3move", "s3read", "s3readbinary", "s3setacl", "s3setmetadata", "s3upload", "s3write", "sanitize", "serializeaisession", "sessioncommit", "sessionexists", "setpropertystring", "threaddata", "threadinterrupt", "trimwhitespace", "valueref"], "description":"A listing of all CFML functions.","type":"listing","name":"All CFML Functions" } \ No newline at end of file diff --git a/data/en/gatewayaction.json b/data/en/gatewayaction.json new file mode 100644 index 000000000..00c4bd75f --- /dev/null +++ b/data/en/gatewayaction.json @@ -0,0 +1,38 @@ +{ + "engines": {"lucee": { + "docs": "https://docs.lucee.org/reference/functions/GatewayAction.html", + "minimum_version": "6.2" + }}, + "name": "GatewayAction", + "description": "Executes a specifc action for a gateway instance.", + "syntax": "GatewayAction( gatewayID, action )", + "returns": "string", + "type": "function", + "params": [ + { + "name": "gatewayID", + "description": "Identifier of the gateway to do the action on.", + "type": "string", + "required": true + }, + { + "name": "action", + "description": "action to execute, possible values are [start,stop and restart]", + "type": "string", + "required": true + }, + { + "name": "waitForIt", + "description": "Wait for the process to end (starting, stopping or restarting)", + "default": "true", + "type": "boolean", + "required": false + }, + { + "name": "timeout", + "description": "in case `waitForIt` is set to `true`, this defines how long we wait for the process to end, default is one second.", + "type": "timespan", + "required": false + } + ] +} \ No newline at end of file diff --git a/data/en/gatewaystate.json b/data/en/gatewaystate.json new file mode 100644 index 000000000..f19937373 --- /dev/null +++ b/data/en/gatewaystate.json @@ -0,0 +1,17 @@ +{ + "engines": {"lucee": { + "docs": "https://docs.lucee.org/reference/functions/GatewayState.html", + "minimum_version": "6.2" + }}, + "name": "GatewayState", + "description": "Return the current state for the given gateway id.", + "syntax": "GatewayState( gatewayID )", + "returns": "string", + "type": "function", + "params": [{ + "name": "gatewayID", + "description": "Identifier of the gateway to get info for.", + "type": "string", + "required": true + }] +} \ No newline at end of file diff --git a/data/en/generate3deskey.json b/data/en/generate3deskey.json new file mode 100644 index 000000000..390d24178 --- /dev/null +++ b/data/en/generate3deskey.json @@ -0,0 +1,17 @@ +{ + "engines": {"lucee": { + "docs": "https://docs.lucee.org/reference/functions/generate3DesKey.html", + "minimum_version": "" + }}, + "name": "generate3DesKey", + "description": "Generates a secure key value for use in the encrypt function with the 3DES algorithm.", + "syntax": "generate3DesKey()", + "returns": "string", + "type": "function", + "params": [{ + "name": "input", + "description": "A string input off of which the key will be based", + "type": "string", + "required": false + }] +} \ No newline at end of file diff --git a/data/en/generatersakeys.json b/data/en/generatersakeys.json new file mode 100644 index 000000000..c3bf85ac9 --- /dev/null +++ b/data/en/generatersakeys.json @@ -0,0 +1,19 @@ +{ + "engines": {"lucee": { + "docs": "https://docs.lucee.org/reference/functions/GenerateRSAKeys.html", + "minimum_version": "" + }}, + "name": "GenerateRSAKeys", + "description": "Generates a secure keys (private and public) for use in the encrypt function with the RSA algorithm.", + "syntax": "GenerateRSAKeys()", + "returns": "struct", + "type": "function", + "params": [{ + "name": "key_size", + "description": "Number of bits to use for the generated Keys.", + "minimum_version": "num", + "default": "1024", + "type": "number", + "required": false + }] +} \ No newline at end of file diff --git a/data/en/getcomponentstaticscope.json b/data/en/getcomponentstaticscope.json new file mode 100644 index 000000000..8d3a6717c --- /dev/null +++ b/data/en/getcomponentstaticscope.json @@ -0,0 +1,18 @@ +{ + "engines": {"lucee": { + "docs": "https://docs.lucee.org/reference/functions/GetComponentStaticScope.html", + "minimum_version": "" + }}, + "name": "GetComponentStaticScope", + "description": "returns the static scope of a specific component, of course access rules apply.", + "syntax": "GetComponentStaticScope( component )", + "returns": "struct", + "type": "function", + "params": [{ + "name": "component", + "description": "name of the component to get static scope, for example \"org.lucee.cfml.Query\".", + "aliases": "name,componentName,cfc", + "type": "string", + "required": true + }] +} \ No newline at end of file diff --git a/data/en/getcontextinfo.json b/data/en/getcontextinfo.json new file mode 100644 index 000000000..c283fb9ee --- /dev/null +++ b/data/en/getcontextinfo.json @@ -0,0 +1,12 @@ +{ + "engines": {"lucee": { + "docs": "https://docs.lucee.org/reference/functions/getContextInfo.html", + "minimum_version": "5.3" + }}, + "name": "getContextInfo", + "description": "Returns information about the current context.", + "syntax": "getContextInfo()", + "returns": "struct", + "type": "function", + "params": [] +} \ No newline at end of file diff --git a/data/en/gethttprequestheaders.json b/data/en/gethttprequestheaders.json new file mode 100644 index 000000000..f708a744f --- /dev/null +++ b/data/en/gethttprequestheaders.json @@ -0,0 +1,12 @@ +{ + "engines": {"lucee": { + "docs": "https://docs.lucee.org/reference/functions/getHTTPRequestHeaders.html", + "minimum_version": "5.3" + }}, + "name": "getHTTPRequestHeaders", + "description": "Returns a Struct with HTTP Request Headers", + "syntax": "getHTTPRequestHeaders()", + "returns": "struct", + "type": "function", + "params": [] +} \ No newline at end of file diff --git a/data/en/getpropertyfile.json b/data/en/getpropertyfile.json new file mode 100644 index 000000000..a66f60d5b --- /dev/null +++ b/data/en/getpropertyfile.json @@ -0,0 +1,26 @@ +{ + "engines": {"lucee": { + "docs": "https://docs.lucee.org/reference/functions/getPropertyFile.html", + "minimum_version": "7.0" + }}, + "name": "getPropertyFile", + "description": "Read the properties from a properties file.", + "syntax": "getPropertyFile( filePath )", + "returns": "struct", + "type": "function", + "params": [ + { + "name": "filePath", + "description": "Path of the properties initialization file", + "type": "string", + "required": true + }, + { + "name": "encoding", + "description": "Encoding for the properties file", + "default": "UTF-8", + "type": "string", + "required": false + } + ] +} \ No newline at end of file diff --git a/data/en/getpropertystring.json b/data/en/getpropertystring.json new file mode 100644 index 000000000..7efeaf060 --- /dev/null +++ b/data/en/getpropertystring.json @@ -0,0 +1,32 @@ +{ + "engines": {"lucee": { + "docs": "https://docs.lucee.org/reference/functions/getPropertyString.html", + "minimum_version": "7.0" + }}, + "name": "getPropertyString", + "description": "Sets the value of a property entry in a properties file.", + "syntax": "getPropertyString( filePath, key )", + "returns": "string", + "type": "function", + "params": [ + { + "name": "filePath", + "description": "Path of the properties file", + "type": "string", + "required": true + }, + { + "name": "key", + "description": "Name of the key to return", + "type": "string", + "required": true + }, + { + "name": "encoding", + "description": "Encoding for the properties file", + "default": "UTF-8", + "type": "string", + "required": false + } + ] +} \ No newline at end of file diff --git a/data/en/getsecret.json b/data/en/getsecret.json new file mode 100644 index 000000000..d5daf86e1 --- /dev/null +++ b/data/en/getsecret.json @@ -0,0 +1,25 @@ +{ + "engines": {"lucee": { + "docs": "https://docs.lucee.org/reference/functions/GetSecret.html", + "minimum_version": "" + }}, + "name": "GetSecret", + "description": "Returns a reference to a secret value stored in a configured Secret Provider. The function doesn't immediately return the actual value, but rather a value object that can be handled by Lucee like a simple value.\nThis reference is automatically resolved to its actual value when:\n- It's converted to a real simple value (string, boolean, number, date)\n- It's used in operations requiring a simple value\nWhen used, the function automatically validates that the secret exists and throws an exception if not found.", + "syntax": "GetSecret( key )", + "returns": "any", + "type": "function", + "params": [ + { + "name": "key", + "description": "Key to read from the Secret Provider (e.g., \"database.password\", \"api.key\")", + "type": "string", + "required": true + }, + { + "name": "name", + "description": "Name of the Secret Provider to read from, as configured in .CFConfig.json. If not defined, the function checks all configured providers in the order they are defined in .CFConfig.json until it finds the secret.", + "type": "string", + "required": false + } + ] +} \ No newline at end of file diff --git a/data/en/getsystemproporenvvar.json b/data/en/getsystemproporenvvar.json new file mode 100644 index 000000000..a496fd5ec --- /dev/null +++ b/data/en/getsystemproporenvvar.json @@ -0,0 +1,17 @@ +{ + "engines": {"lucee": { + "docs": "https://docs.lucee.org/reference/functions/GetSystemPropOrEnvVar.html", + "minimum_version": "6.2" + }}, + "name": "GetSystemPropOrEnvVar", + "description": "Return the list of supported system properties or env vars Lucee supports.", + "syntax": "GetSystemPropOrEnvVar()", + "returns": "any", + "type": "function", + "params": [{ + "name": "property", + "description": "Optional, when set, the value of the property as configured is returned", + "type": "string", + "required": false + }] +} \ No newline at end of file diff --git a/data/en/imagecoderinfo.json b/data/en/imagecoderinfo.json new file mode 100644 index 000000000..3510cbe4e --- /dev/null +++ b/data/en/imagecoderinfo.json @@ -0,0 +1,18 @@ +{ + "engines": {"lucee": { + "docs": "https://docs.lucee.org/reference/functions/ImageCoderInfo.html", + "minimum_version": "" + }}, + "name": "ImageCoderInfo", + "description": "Gives detailed information about all coder used by the image extension.", + "syntax": "ImageCoderInfo( image )", + "returns": "struct", + "type": "function", + "params": [{ + "name": "image", + "description": "The image on which this operation is performed.", + "aliases": "name", + "type": "any", + "required": true + }] +} \ No newline at end of file diff --git a/data/en/imagewritetobrowser.json b/data/en/imagewritetobrowser.json new file mode 100644 index 000000000..bc91f3dc3 --- /dev/null +++ b/data/en/imagewritetobrowser.json @@ -0,0 +1,18 @@ +{ + "engines": {"lucee": { + "docs": "https://docs.lucee.org/reference/functions/ImageWriteToBrowser.html", + "minimum_version": "" + }}, + "name": "ImageWriteToBrowser", + "description": "Writes image to browser.", + "syntax": "ImageWriteToBrowser( image )", + "returns": "void", + "type": "function", + "params": [{ + "name": "image", + "description": "The image on which this operation is performed.", + "aliases": "name", + "type": "any", + "required": true + }] +} \ No newline at end of file diff --git a/data/en/inquiryaisession.json b/data/en/inquiryaisession.json new file mode 100644 index 000000000..55edf4787 --- /dev/null +++ b/data/en/inquiryaisession.json @@ -0,0 +1,33 @@ +{ + "engines": {"lucee": { + "docs": "https://docs.lucee.org/reference/functions/InquiryAISession.html", + "minimum_version": "" + }}, + "name": "InquiryAISession", + "description": "Sends a question/message to an AI session and returns the response. The function maintains conversation context from previous interactions within the same session.\nThe response can either be returned as a complete string or streamed in chunks to a listener function for real-time processing.", + "syntax": "InquiryAISession( session, question )", + "returns": "string", + "type": "function", + "params": [ + { + "name": "session", + "description": "The AI session object returned by LuceeCreateAISession(). This session maintains the conversation history and configuration settings like temperature and system message.", + "aliases": "aiSession", + "type": "any", + "required": true + }, + { + "name": "question", + "description": "The question or message to send to the AI. This can be plain text or structured data (like JSON) depending on how the session was configured in its system message.\n\nThe question becomes part of the conversation history and provides context for future interactions within the same session.", + "aliases": "message", + "type": "string", + "required": true + }, + { + "name": "listener", + "description": "A user-defined function that receives the response in chunks as they arrive from the AI. This enables real-time processing or display of the response.\n\nThe listener function should accept a single argument which will contain the response chunk.\n\nWhen a listener is provided, the function still returns the complete response as a string, but also streams each chunk to the listener as it arrives.", + "type": "function", + "required": false + } + ] +} \ No newline at end of file diff --git a/data/en/inspecttemplates.json b/data/en/inspecttemplates.json new file mode 100644 index 000000000..1ced085f6 --- /dev/null +++ b/data/en/inspecttemplates.json @@ -0,0 +1,13 @@ +{ + "engines": {"lucee": { + "docs": "https://docs.lucee.org/reference/functions/inspectTemplates.html", + "minimum_version": "5.3", + "notes": "This only clears the cache for the **current** Application, plus all Server and Web Context mappings. \n\nOther per Application mappings are not affected\n" + }}, + "name": "inspectTemplates", + "description": "Flag all the cfml code (cfm, cfcs) in the cache of compiled code (aka the Page Pool) to be checked once for any changes.", + "syntax": "inspectTemplates()", + "returns": "boolean", + "type": "function", + "params": [] +} \ No newline at end of file diff --git a/data/en/internalrequest.json b/data/en/internalrequest.json new file mode 100644 index 000000000..6ac00f335 --- /dev/null +++ b/data/en/internalrequest.json @@ -0,0 +1,80 @@ +{ + "engines": {"lucee": { + "docs": "https://docs.lucee.org/reference/functions/InternalRequest.html", + "minimum_version": "6.0" + }}, + "name": "InternalRequest", + "description": "Makes a request to the CFML Engine internally.", + "syntax": "InternalRequest( template )", + "returns": "struct", + "type": "function", + "params": [ + { + "name": "template", + "description": "Template path (script name) for the request (example:/test/index.cfm).", + "type": "string", + "required": true + }, + { + "name": "method", + "description": "method of the request (GET,POST,PUT,DELETE ...)", + "default": "get", + "type": "string", + "required": false + }, + { + "name": "urls", + "description": "URL scope passed to the request (query string). This can be a struct or a string following this format [name1=value1&name2=value2].", + "aliases": "url", + "type": "any", + "required": false + }, + { + "name": "forms", + "description": "FORM scope passed to the request.This can be a struct or a string following this format [name1=value1&name2=value2].", + "aliases": "form", + "type": "any", + "required": false + }, + { + "name": "cookies", + "description": "Cookie scope passed to the request", + "aliases": "cookie", + "type": "struct", + "required": false + }, + { + "name": "headers", + "description": "Request header entries passed to the request", + "aliases": "header", + "type": "struct", + "required": false + }, + { + "name": "body", + "description": "body to send with the request", + "type": "any", + "required": false + }, + { + "name": "charset", + "description": "charset used for the request, if not set the web charset is used.", + "type": "string", + "required": false + }, + { + "name": "addToken", + "description": "if yes add urlToken as cookie", + "default": "false", + "type": "boolean", + "required": false + }, + { + "name": "throwonerror", + "description": "if true (default) and the called page throws an exception, that exception is also thrown within the caller request. If false it is catched and only reported in the resulting struct.", + "default": "true", + "type": "boolean", + "required": false + } + ] +} \ No newline at end of file diff --git a/data/en/interruptthread.json b/data/en/interruptthread.json new file mode 100644 index 000000000..493322670 --- /dev/null +++ b/data/en/interruptthread.json @@ -0,0 +1,17 @@ +{ + "engines": {"lucee": { + "docs": "https://docs.lucee.org/reference/functions/interruptThread.html", + "minimum_version": "" + }}, + "name": "interruptThread", + "description": "Interrupts a specified thread by setting its interrupt status flag.\r\nThis function sets the interrupt status flag on a CFThread. The behavior depends on the thread's current state:\r\n- If the thread is blocked in a ThreadJoin or sleep method call: its interrupt status will be cleared and it will \r\nreceive an InterruptedException\r\n- If the thread is executing a long-running operation with interrupt checks: the operation may terminate early\r\n- If the thread is not alive: the interrupt request may have no effect", + "syntax": "interruptThread()", + "returns": "any", + "type": "function", + "params": [{ + "name": "name", + "description": "The name of the thread to interrupt. If omitted or empty, the current thread will be interrupted.", + "type": "string", + "required": false + }] +} \ No newline at end of file diff --git a/data/en/isflushed.json b/data/en/isflushed.json new file mode 100644 index 000000000..22b0db2ec --- /dev/null +++ b/data/en/isflushed.json @@ -0,0 +1,12 @@ +{ + "engines": {"lucee": { + "docs": "https://docs.lucee.org/reference/functions/IsFlushed.html", + "minimum_version": "6.1" + }}, + "name": "IsFlushed", + "description": "returns true if the response stream was already flushed.", + "syntax": "IsFlushed()", + "returns": "boolean", + "type": "function", + "params": [] +} \ No newline at end of file diff --git a/data/en/iswithintransaction.json b/data/en/iswithintransaction.json new file mode 100644 index 000000000..27c932d06 --- /dev/null +++ b/data/en/iswithintransaction.json @@ -0,0 +1,12 @@ +{ + "engines": {"lucee": { + "docs": "https://docs.lucee.org/reference/functions/isWithinTransaction.html", + "minimum_version": "5.3" + }}, + "name": "isWithinTransaction", + "description": "Determines whether the current thread is within a transaction block or not.", + "syntax": "isWithinTransaction()", + "returns": "boolean", + "type": "function", + "params": [] +} \ No newline at end of file diff --git a/data/en/listgetduplicates.json b/data/en/listgetduplicates.json new file mode 100644 index 000000000..20ee31342 --- /dev/null +++ b/data/en/listgetduplicates.json @@ -0,0 +1,40 @@ +{ + "engines": {"lucee": { + "docs": "https://docs.lucee.org/reference/functions/ListGetDuplicates.html", + "minimum_version": "7.0" + }}, + "name": "ListGetDuplicates", + "description": "Removes duplicate values from list.", + "syntax": "ListGetDuplicates( list )", + "returns": "string", + "type": "function", + "params": [ + { + "name": "list", + "description": "a string list", + "type": "string", + "required": true + }, + { + "name": "delimiters", + "description": "Characters that separate list elements. The default value is comma.", + "default": ",", + "aliases": "delimiter", + "type": "string", + "required": false + }, + { + "name": "ignoreCase", + "description": "if set to true, the duplicate value test will not be case sensitive", + "default": "false", + "type": "boolean", + "required": false + }, + { + "name": "includeEmptyFields", + "description": "if set to true, empty values are included as well", + "type": "boolean", + "required": false + } + ] +} \ No newline at end of file diff --git a/data/en/listqualifiedtoarray.json b/data/en/listqualifiedtoarray.json new file mode 100644 index 000000000..408967716 --- /dev/null +++ b/data/en/listqualifiedtoarray.json @@ -0,0 +1,49 @@ +{ + "engines": {"lucee": { + "docs": "https://docs.lucee.org/reference/functions/ListQualifiedToArray.html", + "minimum_version": "5.3" + }}, + "name": "ListQualifiedToArray", + "description": "Copies the elements of a list to an array.", + "syntax": "ListQualifiedToArray( list )", + "returns": "array", + "type": "function", + "params": [ + { + "name": "list", + "description": "a string list", + "type": "string", + "required": true + }, + { + "name": "delimiter", + "description": "a single character that separate list elements.", + "default": ",", + "aliases": "delimiters", + "type": "string", + "required": false + }, + { + "name": "qualifier", + "description": "a single character before and after the list elements.", + "default": "\"", + "aliases": "qualifiers", + "type": "string", + "required": false + }, + { + "name": "qualifierRequired", + "description": "if set to true, all values need to have qualifier (quotes) around them.", + "default": "false", + "type": "boolean", + "required": false + }, + { + "name": "includeEmptyFields", + "description": "if set to true, empty values are included as well", + "default": "false", + "type": "boolean", + "required": false + } + ] +} \ No newline at end of file diff --git a/data/en/loadaisession.json b/data/en/loadaisession.json new file mode 100644 index 000000000..356fa2817 --- /dev/null +++ b/data/en/loadaisession.json @@ -0,0 +1,26 @@ +{ + "engines": {"lucee": { + "docs": "https://docs.lucee.org/reference/functions/LoadAISession.html", + "minimum_version": "" + }}, + "name": "LoadAISession", + "description": "Restores an AI session from a serialized JSON string or struct. This function recreates an AI session with:\n- Original configuration settings (temperature, limits, timeouts)\n- Complete conversation history\n- System message prompt\nThe function supports loading sessions by:\n- AI engine name\n- Engine ID (using `id:` prefix)\n- Default engine (using `default:` prefix)\nThis function pairs with `SerializeAISession()` to provide persistence for AI conversations across requests or application restarts.", + "syntax": "LoadAISession( name, data )", + "returns": "any", + "type": "function", + "params": [ + { + "name": "name", + "description": "Specifies which AI endpoint configuration to use. Can be provided in two formats:\n1. Direct endpoint name:\nThe name of an endpoint as defined in the Lucee Administrator (similar to how datasource names work)\n2. Default reference:\nUsing the format \"default:category\" to use the endpoint configured as the default for that specific category in the Lucee Administrator.\nCurrently supported default categories:\n- exception: For exception analysis\n- documentation: For documentation tasks\nThe endpoint configurations and their default category assignments are managed in the Lucee Administrator.", + "aliases": "aiName,nameAI", + "type": "string", + "required": true + }, + { + "name": "data", + "description": "The serialized AI session data, which can be provided as either:\n1. A JSON string previously generated by `SerializeAISession()`\n2. A struct containing session configuration and conversation history\nMust contain the following keys:\n- `temperature`: The temperature setting for the AI responses\n- `limit`: The conversation size limit\n- `connectionTimeout`: Connection timeout in milliseconds\n- `socketTimeout`: Socket timeout in milliseconds \n- `systemMessage`: (Optional) System message that guides AI behavior\n- `history`: Array of conversation exchanges (questions and answers)\nIncomplete or improperly formatted data may cause initialization errors.", + "type": "any", + "required": true + } + ] +} \ No newline at end of file diff --git a/data/en/logallthreads.json b/data/en/logallthreads.json new file mode 100644 index 000000000..5d32bf8dc --- /dev/null +++ b/data/en/logallthreads.json @@ -0,0 +1,33 @@ +{ + "engines": {"lucee": { + "docs": "https://docs.lucee.org/reference/functions/LogAllThreads.html", + "minimum_version": "6.2" + }}, + "name": "LogAllThreads", + "description": "Creates detailed thread stack trace logs in JSONL format for performance analysis and debugging.\nThis function captures stack traces from all running threads at specified intervals for a given duration.\nIt executes asynchronously, returning immediately after starting the logging process, making it ideal\nfor analyzing specific code segments by initiating logging just before the target code execution.\nThe output format is JSONL (JSON Lines), where each line represents a separate JSON object containing:\n- Timestamp offset in milliseconds from 1/1/1970 00:00:00 UTC (Unix 0)\n- Complete stack trace of each thread's current location\nThis data can be used for:\n- Performance bottleneck identification\n- Thread behavior analysis\n- Deadlock detection\n- Resource usage patterns", + "syntax": "LogAllThreads( path )", + "returns": "void", + "type": "function", + "params": [ + { + "name": "path", + "description": "Full file path where the log will be written. The file should have a `.jsonl` extension\nfor proper identification as a JSON Lines format file. The function will create the file\nif it doesn't exist, or append to it if it does.\n\nExample: `/var/log/lucee/thread_analysis.jsonl`", + "type": "string", + "required": true + }, + { + "name": "interval", + "description": "The time interval (in milliseconds) between stack trace captures. Lower values provide\nmore detailed analysis but generate larger log files and may impact performance.\n\nRecommended ranges:\n\n- 1-10ms: Very detailed analysis, higher overhead\n- 10-100ms: Balanced detail and performance\n- 100ms+: Lower detail, minimal performance impact", + "default": "0", + "type": "number", + "required": false + }, + { + "name": "duration", + "description": "Total duration (in milliseconds) for which the function will collect thread data.\n\nAfter this period, logging automatically stops.\n\nCommon durations:\n\n- 1000-5000ms: Quick snapshots\n- 10000ms: Standard analysis period\n- 30000ms+: Extended analysis for complex operations", + "default": "10000", + "type": "number", + "required": false + } + ] +} \ No newline at end of file diff --git a/data/en/lslcase.json b/data/en/lslcase.json new file mode 100644 index 000000000..a3754b8ed --- /dev/null +++ b/data/en/lslcase.json @@ -0,0 +1,25 @@ +{ + "engines": {"lucee": { + "docs": "https://docs.lucee.org/reference/functions/LSLCase.html", + "minimum_version": "6.1" + }}, + "name": "LSLCase", + "description": "Converts the alphabetic characters in a specified string to lowercase, respecting locale-specific casing rules. This is particularly important for languages where the standard lowercase conversion rules do not apply, ensuring accurate and culturally correct text processing. The function defaults to the current page's locale if no locale is specified.", + "syntax": "LSLCase( string )", + "returns": "string", + "type": "function", + "params": [ + { + "name": "string", + "description": "The string to be converted to lowercase. This parameter can accept either a string literal or a variable that holds the string content.", + "type": "string", + "required": true + }, + { + "name": "locale", + "description": "Optional. Allows specifying a different locale for the conversion, superseding the page's default locale. This argument accepts a locale identifier, such as \"fr-CA\" for Canadian French or \"de-DE\" for German in Germany.", + "type": "locale", + "required": false + } + ] +} \ No newline at end of file diff --git a/data/en/lsucase.json b/data/en/lsucase.json new file mode 100644 index 000000000..643738304 --- /dev/null +++ b/data/en/lsucase.json @@ -0,0 +1,25 @@ +{ + "engines": {"lucee": { + "docs": "https://docs.lucee.org/reference/functions/lSUCase.html", + "minimum_version": "6.1" + }}, + "name": "lSUCase", + "description": "Converts the alphabetic characters in a specified string to uppercase, respecting locale-specific casing rules", + "syntax": "lSUCase( string )", + "returns": "string", + "type": "function", + "params": [ + { + "name": "string", + "description": "The string to be converted to uppercase. This can be a direct string value or a variable that contains the string.", + "type": "string", + "required": true + }, + { + "name": "locale", + "description": "Optional. Specifies the locale to use for the conversion, overriding the default locale of the page. This should be a locale code string (e.g., \"en-US\" for American English or \"tr-TR\" for Turkish).", + "type": "locale", + "required": false + } + ] +} \ No newline at end of file diff --git a/data/en/luceeaigetmetadata.json b/data/en/luceeaigetmetadata.json new file mode 100644 index 000000000..037b68d75 --- /dev/null +++ b/data/en/luceeaigetmetadata.json @@ -0,0 +1,27 @@ +{ + "engines": {"lucee": { + "docs": "https://docs.lucee.org/reference/functions/luceeaigetmetadata.html", + "minimum_version": "" + }}, + "name": "luceeaigetmetadata", + "description": "Retrieves metadata about a configured AI endpoint. \nReturns information about the endpoint's configuration, \nand optionally detailed information about available models and associated files.", + "syntax": "luceeaigetmetadata( name )", + "returns": "struct", + "type": "function", + "params": [ + { + "name": "name", + "description": "The name of the AI endpoint to get metadata for. Can be either:\n\n1. A direct endpoint name as configured in the Lucee Administrator\n2. A default reference (e.g., \"default:exception\") which will resolve to the configured default endpoint for that category", + "aliases": "aiName,nameAI,session", + "type": "any", + "required": true + }, + { + "name": "detailed", + "description": "When true, includes additional detailed information:\n\n- Models: List of available models with their names, labels, descriptions, and custom settings\n- Files: For file-capable engines, lists associated files with their IDs, purposes, sizes, creation dates, and status information", + "default": "false", + "type": "boolean", + "required": false + } + ] +} \ No newline at end of file diff --git a/data/en/luceeaihas.json b/data/en/luceeaihas.json new file mode 100644 index 000000000..9382ac0a0 --- /dev/null +++ b/data/en/luceeaihas.json @@ -0,0 +1,18 @@ +{ + "engines": {"lucee": { + "docs": "https://docs.lucee.org/reference/functions/luceeaihas.html", + "minimum_version": "" + }}, + "name": "luceeaihas", + "description": "Checks whether a specific AI endpoint is configured and available for use.", + "syntax": "luceeaihas( name )", + "returns": "boolean", + "type": "function", + "params": [{ + "name": "name", + "description": "The name of the AI endpoint to check. Can be either:\n\n1. A direct endpoint name as configured in the Lucee Administrator\n2. A default reference (e.g., \"default:exception\") which will check if a default endpoint is configured for that category", + "aliases": "aiName,nameAI", + "type": "string", + "required": true + }] +} \ No newline at end of file diff --git a/data/en/luceecreateaisession.json b/data/en/luceecreateaisession.json new file mode 100644 index 000000000..a23613952 --- /dev/null +++ b/data/en/luceecreateaisession.json @@ -0,0 +1,42 @@ +{ + "engines": {"lucee": { + "docs": "https://docs.lucee.org/reference/functions/luceecreateaisession.html", + "minimum_version": "" + }}, + "name": "luceecreateaisession", + "description": "Creates a new AI session for interaction with Large Language Models (LLMs). \nThe session maintains conversation history and context between interactions. \nEach session can be configured with different parameters to optimize for specific use cases like code analysis, content generation, or data processing.\nCommon usage patterns:\n- Exception analysis and debugging assistance\n- Code documentation generation\n- Query optimization suggestions\n- Security review assistance\n- Performance optimization recommendations\nThe session persists until explicitly terminated or the application restarts.", + "syntax": "luceecreateaisession( name )", + "returns": "object", + "type": "function", + "params": [ + { + "name": "name", + "description": "Specifies which AI endpoint configuration to use. Can be provided in two formats:\n\n1. Direct endpoint name:\nThe name of an endpoint as defined in the Lucee Administrator (similar to how datasource names work)\n2. Default reference:\nUsing the format \"default:category\" to use the endpoint configured as the default for that specific category in the Lucee Administrator.\n\nCurrently supported default categories:\n\n- exception: For exception analysis\n- documentation: For documentation tasks\n\nThe endpoint configurations and their default category assignments are managed in the Lucee Administrator.", + "aliases": "aiName,nameAI", + "type": "string", + "required": true + }, + { + "name": "systemMessage", + "description": "Initial instruction set that defines the AI's behavior and expertise for this session. This message sets the context and rules for all subsequent interactions.\n\nBest practices:\n\n- Be specific about the AI's role and expertise\n- Define output format requirements clearly\n- Include any necessary constraints or rules\n- Specify error handling preferences\n- Define response structure expectations\n\nThe system message persists throughout the session and influences all responses.", + "aliases": "initalMesssage,message", + "type": "string", + "required": false + }, + { + "name": "limit", + "description": "Maximum number of question-answer pairs to keep in the conversation history. Once reached, older messages will be removed.\nConsider:\n\n- Higher limits provide more context but consume more memory\n- Lower limits are more memory efficient but may lose important context\n- For complex analysis tasks, consider limits of 10-20\n- For simple Q&A, limits of 5-10 may suffice", + "default": "50", + "aliases": "conversationHistoryLimit", + "type": "numeric", + "required": false + }, + { + "name": "temperature", + "description": "Controls response randomness (0.0 to 1.0). Lower values make responses more focused and deterministic, higher values make them more creative and varied.\n\nRecommended settings:\n\n- 0.0-0.3: Technical analysis, debugging, code review\n- 0.3-0.5: Documentation generation, error explanations\n- 0.5-0.7: General purpose interactions\n- 0.7-1.0: Creative content generation\n\nFor exception analysis and debugging, lower temperatures (0.2-0.3) are recommended for more consistent and precise responses.", + "default": "0.7", + "type": "numeric", + "required": false + } + ] +} \ No newline at end of file diff --git a/data/en/luceeinquiryaisession.json b/data/en/luceeinquiryaisession.json new file mode 100644 index 000000000..8437b314e --- /dev/null +++ b/data/en/luceeinquiryaisession.json @@ -0,0 +1,33 @@ +{ + "engines": {"lucee": { + "docs": "https://docs.lucee.org/reference/functions/luceeinquiryaisession.html", + "minimum_version": "" + }}, + "name": "luceeinquiryaisession", + "description": "Sends a question/message to an AI session and returns the response. The function maintains conversation context from previous interactions within the same session.\nThe response can either be returned as a complete string or streamed in chunks to a listener function for real-time processing.", + "syntax": "luceeinquiryaisession( session, question )", + "returns": "string", + "type": "function", + "params": [ + { + "name": "session", + "description": "The AI session object returned by LuceeCreateAISession(). This session maintains the conversation history and configuration settings like temperature and system message.", + "aliases": "aiSession", + "type": "any", + "required": true + }, + { + "name": "question", + "description": "The question or message to send to the AI. This can be plain text or structured data (like JSON) depending on how the session was configured in its system message.\nThe question becomes part of the conversation history and provides context for future interactions within the same session.", + "aliases": "message", + "type": "string", + "required": true + }, + { + "name": "listener", + "description": "A user-defined function that receives the response in chunks as they arrive from the AI. This enables real-time processing or display of the response.\nThe listener function should accept a single argument which will contain the response chunk.\nWhen a listener is provided, the function still returns the complete response as a string, but also streams each chunk to the listener as it arrives.", + "type": "function", + "required": false + } + ] +} \ No newline at end of file diff --git a/data/en/markdowntohtml.json b/data/en/markdowntohtml.json new file mode 100644 index 000000000..2c62ee345 --- /dev/null +++ b/data/en/markdowntohtml.json @@ -0,0 +1,35 @@ +{ + "engines": {"lucee": { + "docs": "https://docs.lucee.org/reference/functions/MarkdownToHTML.html", + "minimum_version": "6.0" + }}, + "name": "MarkdownToHTML", + "description": "Transforms Markdown formatted String into HTML.", + "syntax": "MarkdownToHTML( string )", + "returns": "string", + "type": "function", + "params": [ + { + "name": "string", + "description": "A Markdown formatted string or a path to a file containf a markdown formatted string to convert to HTML", + "aliases": "markdown", + "type": "string", + "required": true + }, + { + "name": "safeMode", + "description": "If set to true it does escape unsafe HTML tags", + "default": "false", + "aliases": "safe", + "type": "boolean", + "required": false + }, + { + "name": "encoding", + "description": "Charset, only used in case the argument markdown contains a file path", + "aliases": "charset", + "type": "string", + "required": false + } + ] +} \ No newline at end of file diff --git a/data/en/maveninfo.json b/data/en/maveninfo.json new file mode 100644 index 000000000..b26dc8e2b --- /dev/null +++ b/data/en/maveninfo.json @@ -0,0 +1,52 @@ +{ + "engines": {"lucee": { + "docs": "https://docs.lucee.org/reference/functions/MavenInfo.html", + "minimum_version": "7.0" + }}, + "name": "MavenInfo", + "description": "Retrieves information about a Maven artifact and its dependencies.\nThis function allows you to query details about a specific Maven artifact by providing its coordinates (groupId, artifactId, and optionally version). \nIt returns a query containing information about the artifact itself and all of its dependencies based on the specified scope.\nThe returned query includes columns for:\n- **groupId**: The group identifier of the artifact\n- **artifactId**: The artifact identifier\n- **version**: The version of the artifact\n- **scope**: The scope of the dependency (compile, provided, runtime, test, system)\n- **optional**: Whether the dependency is optional\n- **checksum**: Checksum information\n- **url**: URL where the artifact can be found\n- **path**: Local file path to the artifact\nThis function is useful for debugging classloading issues, understanding dependency trees, or gathering information about the libraries your application depends on.", + "syntax": "MavenInfo( groupId, artifactId, version )", + "returns": "query", + "type": "function", + "params": [ + { + "name": "groupId", + "description": "The Maven group identifier that specifies the namespace for the artifact.", + "type": "string", + "required": true + }, + { + "name": "artifactId", + "description": "The Maven artifact identifier that specifies the name of the artifact.", + "type": "string", + "required": true + }, + { + "name": "version", + "description": "The specific version of the Maven artifact to query.", + "type": "string", + "required": true + }, + { + "name": "scopes", + "description": "The dependency scopes to consider when retrieving dependencies. this is an array containing all scopes you wanna include in the resulting query.\n\nValid values are:\n\n- compile\n- provided\n- runtime\n- test\n- system\n\nDefault are all scopes excluding test.", + "type": "array", + "required": false + }, + { + "name": "includeOptional", + "description": "If true, includes optional dependencies in the results. If false, excludes dependencies marked as optional from the query results.", + "default": "true", + "type": "boolean", + "required": false + }, + { + "name": "validateURL", + "description": "A Maven artifact can be provided from different repositories, not all repositories provide all artifacts. if set to false, Lucee simply picks the most likely repository. \nIf set to true, Lucee checks all possibilities, what can take a while, so only set to true, if really neded.", + "default": "false", + "aliases": "validate", + "type": "boolean", + "required": false + } + ] +} \ No newline at end of file diff --git a/data/en/mavenload.json b/data/en/mavenload.json new file mode 100644 index 000000000..46398a0b3 --- /dev/null +++ b/data/en/mavenload.json @@ -0,0 +1,18 @@ +{ + "engines": {"lucee": { + "docs": "https://docs.lucee.org/reference/functions/MavenLoad.html", + "minimum_version": "6.2" + }}, + "name": "MavenLoad", + "description": "Loads all JAR files from one or more Maven endpoints and makes them available for use within the Lucee server environment. \nThis function can be used to load dependencies, including transitive ones, for example at server startup.\n### Example Usage of MavenLoad Function\nThe `MavenLoad` function allows you to load JAR files from Maven repositories, including all transitive dependencies. \nThis is particularly useful during server startup to ensure that all required libraries are available.\n#### Example Input as an Array of Structs:\n```cfml\nmavenLoad([\n{\n\"groupId\": \"org.slf4j\",\n\"artifactId\": \"slf4j-api\",\n\"version\": \"1.7.32\"\n}\n]);\n```", + "syntax": "MavenLoad( input )", + "returns": "array", + "type": "function", + "params": [{ + "name": "input", + "description": "A struct or an array of structs specifying the Maven coordinates, including groupId, artifactId, and version.", + "aliases": "data,endpoint", + "type": "any", + "required": true + }] +} \ No newline at end of file diff --git a/data/en/queryclose.json b/data/en/queryclose.json new file mode 100644 index 000000000..bd8c873ef --- /dev/null +++ b/data/en/queryclose.json @@ -0,0 +1,17 @@ +{ + "engines": {"lucee": { + "docs": "https://docs.lucee.org/reference/functions/queryClose.html", + "minimum_version": "5.3" + }}, + "name": "queryClose", + "description": "When using lazy=\"true\", it is important to close the resultSet during a request or it will continue to use heap memory.", + "syntax": "queryClose( query )", + "returns": "boolean", + "type": "function", + "params": [{ + "name": "query", + "description": "Query object to close.", + "type": "query", + "required": true + }] +} \ No newline at end of file diff --git a/data/en/querygetcellbyindex.json b/data/en/querygetcellbyindex.json new file mode 100644 index 000000000..1a47205bd --- /dev/null +++ b/data/en/querygetcellbyindex.json @@ -0,0 +1,38 @@ +{ + "engines": {"lucee": { + "docs": "https://docs.lucee.org/reference/functions/queryGetCellByIndex.html", + "minimum_version": "5.3" + }}, + "name": "queryGetCellByIndex", + "description": "return the value of a specific query cell", + "syntax": "queryGetCellByIndex( query, column_name, index )", + "returns": "any", + "type": "function", + "params": [ + { + "name": "query", + "description": "query to get cell value from", + "type": "query", + "required": true + }, + { + "name": "column_name", + "description": "name of the column", + "type": "string", + "required": true + }, + { + "name": "index", + "description": "Name of the index.", + "type": "string", + "required": true + }, + { + "name": "defaultValue", + "description": "In case no matching index was found, this value is returned by the function, in case it is not set, the function will throw an exception.", + "minimum_version": "any", + "type": "any", + "required": false + } + ] +} \ No newline at end of file diff --git a/data/en/queryisempty.json b/data/en/queryisempty.json new file mode 100644 index 000000000..3a425ca08 --- /dev/null +++ b/data/en/queryisempty.json @@ -0,0 +1,17 @@ +{ + "engines": {"lucee": { + "docs": "https://docs.lucee.org/reference/functions/QueryIsEmpty.html", + "minimum_version": "6.0" + }}, + "name": "QueryIsEmpty", + "description": "returns query empty or not", + "syntax": "QueryIsEmpty( query )", + "returns": "boolean", + "type": "function", + "params": [{ + "name": "query", + "description": "Query object to check.", + "type": "query", + "required": true + }] +} \ No newline at end of file diff --git a/data/en/queryrenamecolumn.json b/data/en/queryrenamecolumn.json new file mode 100644 index 000000000..67454ac88 --- /dev/null +++ b/data/en/queryrenamecolumn.json @@ -0,0 +1,32 @@ +{ + "engines": {"lucee": { + "docs": "https://docs.lucee.org/reference/functions/queryRenameColumn.html", + "minimum_version": "6.0" + }}, + "name": "queryRenameColumn", + "description": "Rename a column", + "syntax": "queryRenameColumn( query, column, newColumnName )", + "returns": "void", + "type": "function", + "params": [ + { + "name": "query", + "description": "Name of a query object.", + "type": "query", + "required": true + }, + { + "name": "column", + "description": "Name of the column to rename.", + "aliases": "columnName", + "type": "string", + "required": true + }, + { + "name": "newColumnName", + "description": "New name of the column.", + "type": "string", + "required": true + } + ] +} \ No newline at end of file diff --git a/data/en/queryrowbyindex.json b/data/en/queryrowbyindex.json new file mode 100644 index 000000000..e223a83cc --- /dev/null +++ b/data/en/queryrowbyindex.json @@ -0,0 +1,31 @@ +{ + "engines": {"lucee": { + "docs": "https://docs.lucee.org/reference/functions/queryRowByIndex.html", + "minimum_version": "5.3" + }}, + "name": "queryRowByIndex", + "description": "", + "syntax": "queryRowByIndex( query, index )", + "returns": "numeric", + "type": "function", + "params": [ + { + "name": "query", + "description": "query object do get data from", + "type": "query", + "required": true + }, + { + "name": "index", + "description": "Name of the index.", + "type": "string", + "required": true + }, + { + "name": "defaultValue", + "description": "In case no matching index was found, this value is returned by the function, in case it is not set, the function will throw an exception.", + "type": "numeric", + "required": false + } + ] +} \ No newline at end of file diff --git a/data/en/queryrowdatabyindex.json b/data/en/queryrowdatabyindex.json new file mode 100644 index 000000000..cb0be9588 --- /dev/null +++ b/data/en/queryrowdatabyindex.json @@ -0,0 +1,31 @@ +{ + "engines": {"lucee": { + "docs": "https://docs.lucee.org/reference/functions/queryRowDataByIndex.html", + "minimum_version": "5.3" + }}, + "name": "queryRowDataByIndex", + "description": "", + "syntax": "queryRowDataByIndex( query, index )", + "returns": "struct", + "type": "function", + "params": [ + { + "name": "query", + "description": "query object do get data from", + "type": "query", + "required": true + }, + { + "name": "index", + "description": "Name of the index", + "type": "string", + "required": true + }, + { + "name": "defaultValue", + "description": "In case no matching index was found, this value is returned by the function, in case it is not set, the function will throw an exception.", + "type": "struct", + "required": false + } + ] +} \ No newline at end of file diff --git a/data/en/querytostruct.json b/data/en/querytostruct.json new file mode 100644 index 000000000..e4110cceb --- /dev/null +++ b/data/en/querytostruct.json @@ -0,0 +1,41 @@ +{ + "engines": {"lucee": { + "docs": "https://docs.lucee.org/reference/functions/queryToStruct.html", + "minimum_version": "6.0" + }}, + "name": "queryToStruct", + "description": "Copy the query columns data to struct by using the columnKey argument", + "syntax": "queryToStruct( query, columnKey )", + "returns": "struct", + "type": "function", + "params": [ + { + "name": "query", + "description": "A query to copy to a struct", + "type": "query", + "required": true + }, + { + "name": "columnKey", + "description": "Column name that values are used for struct key", + "aliases": "column,columnName", + "type": "string", + "required": true + }, + { + "name": "structType", + "description": "default:ordered, Struct type to created", + "default": "ordered", + "aliases": "type", + "type": "string", + "required": false + }, + { + "name": "valueRowNumber", + "description": "default: false, the boolean value that indicates the struct values return as column data or row number", + "aliases": "valueAsRowNumber", + "type": "boolean", + "required": false + } + ] +} \ No newline at end of file diff --git a/data/en/s3addacl.json b/data/en/s3addacl.json new file mode 100644 index 000000000..29a9ef214 --- /dev/null +++ b/data/en/s3addacl.json @@ -0,0 +1,63 @@ +{ + "engines": {"lucee": { + "docs": "https://docs.lucee.org/reference/functions/S3AddACL.html", + "minimum_version": "" + }}, + "name": "S3AddACL", + "description": "Adds ACL to existing ACL for object or bucket. You can provide the endpoint as a bucket/object definition (S3AddACL(bucket:\"mybucket\",object:\"myobject.txt\",acl:data) ) or as a virtual filesystem path (S3AddACL(path:\"s3://mybucket/myobject.txt\",acl:data) ).", + "syntax": "S3AddACL( bucketNameOrPath, aclObject )", + "returns": "void", + "type": "function", + "params": [ + { + "name": "bucketNameOrPath", + "description": "This can be the bucketname or a virtual filesystem path for a file/directory (example \"s3://mybucket/myobject.txt\").", + "aliases": "bucket,bucketName,path", + "type": "string", + "required": true + }, + { + "name": "objectName", + "description": "Name of the object (path) within the bucket of your object to read. In case you have defined a bucket with the first argument.", + "default": "", + "aliases": "object,path", + "type": "string", + "required": false + }, + { + "name": "aclObject", + "description": "an array of struct where each struct represents an ACL grant", + "aliases": "acl", + "type": "object", + "required": true + }, + { + "name": "accessKeyId", + "description": "S3 accessKeyId, if not defined it checks the system property/environment variable for [lucee.s3.accesskeyid].", + "aliases": "accessKey,awsAccessKeyId,awsAccessKey", + "type": "string", + "required": false + }, + { + "name": "secretAccessKey", + "description": "S3 secretAccessKey, if not defined it checks the system property/environment variable for [lucee.s3.secretaccesskey].", + "aliases": "secretkey,awsSecretkey,awsSecretAccessKey", + "type": "string", + "required": false + }, + { + "name": "host", + "description": "the provider to connect, if not set Amazon AWS is used.", + "aliases": "provider,server", + "type": "string", + "required": false + }, + { + "name": "timeout", + "description": "timeout for this execution", + "default": "10000", + "type": "number", + "required": false + } + ] +} \ No newline at end of file diff --git a/data/en/s3clearbucket.json b/data/en/s3clearbucket.json new file mode 100644 index 000000000..cf3d7a165 --- /dev/null +++ b/data/en/s3clearbucket.json @@ -0,0 +1,55 @@ +{ + "engines": {"lucee": { + "docs": "https://docs.lucee.org/reference/functions/S3ClearBucket.html", + "minimum_version": "" + }}, + "name": "S3ClearBucket", + "description": "Removes all objects from a bucket, unless maxage is set, in that case only objects that are older than maxage are removed.", + "syntax": "S3ClearBucket( bucketName )", + "returns": "void", + "type": "function", + "params": [ + { + "name": "bucketName", + "description": "Name of the bucket to list objects from.", + "aliases": "bucket", + "type": "string", + "required": true + }, + { + "name": "maxage", + "description": "Max age of the object we keep, if not set all objects are removed.", + "aliases": "age", + "type": "timespan", + "required": false + }, + { + "name": "accessKeyId", + "description": "S3 accessKeyId, if not defined it checks the system property/environment variable for [lucee.s3.accesskeyid].\n", + "aliases": "accessKey,awsAccessKeyId,awsAccessKey", + "type": "string", + "required": false + }, + { + "name": "secretAccessKey", + "description": "S3 secretAccessKey, if not defined it checks the system property/environment variable for [lucee.s3.secretaccesskey].\n", + "aliases": "secretkey,awsSecretkey,awsSecretAccessKey", + "type": "string", + "required": false + }, + { + "name": "host", + "description": "the provider to connect, if not set Amazon AWS is used.", + "aliases": "provider,server", + "type": "string", + "required": false + }, + { + "name": "timeout", + "description": "timeout for this execution", + "default": "10000", + "type": "number", + "required": false + } + ] +} \ No newline at end of file diff --git a/data/en/s3copy.json b/data/en/s3copy.json new file mode 100644 index 000000000..c438ce6a4 --- /dev/null +++ b/data/en/s3copy.json @@ -0,0 +1,83 @@ +{ + "engines": {"lucee": { + "docs": "https://docs.lucee.org/reference/functions/S3Copy.html", + "minimum_version": "" + }}, + "name": "S3Copy", + "description": "Copies an object in S3 from one bucket to an other.", + "syntax": "S3Copy( srcBucketName, srcObjectName, trgBucketName )", + "returns": "void", + "type": "function", + "params": [ + { + "name": "srcBucketName", + "description": "Name of the source bucket of your object to copy", + "aliases": "srcBucket,sourceBucketName,sourceBucket", + "type": "string", + "required": true + }, + { + "name": "srcObjectName", + "description": "Name of the source object (path) within the bucket of your object to copy", + "aliases": "sourceObjectName,srcObject,sourceObject", + "type": "string", + "required": true + }, + { + "name": "trgBucketName", + "description": "Name of the target bucket of your object to copy", + "aliases": "trgBucket,targetBucketName,targetBucket", + "type": "string", + "required": true + }, + { + "name": "trgObjectName", + "description": "Name of the target object (path)for the target bucket. If not defined the source obbject name is used.", + "aliases": "targetObjectName,trgObject,targetObject", + "type": "string", + "required": false + }, + { + "name": "acl", + "description": "an array of struct where each struct represents an ACL grant", + "aliases": "aclObject", + "type": "object", + "required": false + }, + { + "name": "location", + "description": "location of the S3 storage.", + "aliases": "region", + "type": "string", + "required": false + }, + { + "name": "accessKeyId", + "description": "S3 accessKeyId, if not defined it checks the system property/environment variable for [lucee.s3.accesskeyid].", + "aliases": "accessKey,awsAccessKeyId,awsAccessKey", + "type": "string", + "required": false + }, + { + "name": "secretAccessKey", + "description": "S3 secretAccessKey, if not defined it checks the system property/environment variable for [lucee.s3.secretaccesskey].", + "aliases": "secretkey,awsSecretkey,awsSecretAccessKey", + "type": "string", + "required": false + }, + { + "name": "host", + "description": "the provider to connect, if not set Amazon AWS is used.", + "aliases": "provider,server", + "type": "string", + "required": false + }, + { + "name": "timeout", + "description": "timeout for this execution", + "default": "10000", + "type": "number", + "required": false + } + ] +} \ No newline at end of file diff --git a/data/en/s3createbucket.json b/data/en/s3createbucket.json new file mode 100644 index 000000000..4d29783db --- /dev/null +++ b/data/en/s3createbucket.json @@ -0,0 +1,62 @@ +{ + "engines": {"lucee": { + "docs": "https://docs.lucee.org/reference/functions/S3CreateBucket.html", + "minimum_version": "" + }}, + "name": "S3CreateBucket", + "description": "Creates a bucket on S3.", + "syntax": "S3CreateBucket( bucketName )", + "returns": "void", + "type": "function", + "params": [ + { + "name": "bucketName", + "description": "Name of the bucket to create", + "aliases": "bucket", + "type": "string", + "required": true + }, + { + "name": "acl", + "description": "an array of struct where each struct represents an ACL grant", + "aliases": "aclObject", + "type": "object", + "required": false + }, + { + "name": "location", + "description": "location of the S3 storage.", + "aliases": "region", + "type": "string", + "required": false + }, + { + "name": "accessKeyId", + "description": "S3 accessKeyId, if not defined it checks the system property/environment variable for [lucee.s3.accesskeyid].", + "aliases": "accessKey,awsAccessKeyId,awsAccessKey", + "type": "string", + "required": false + }, + { + "name": "secretAccessKey", + "description": "S3 secretAccessKey, if not defined it checks the system property/environment variable for [lucee.s3.secretaccesskey].", + "aliases": "secretkey,awsSecretkey,awsSecretAccessKey", + "type": "string", + "required": false + }, + { + "name": "host", + "description": "the provider to connect, if not set Amazon AWS is used.", + "aliases": "provider,server", + "type": "string", + "required": false + }, + { + "name": "timeout", + "description": "timeout for this execution", + "default": "10000", + "type": "number", + "required": false + } + ] +} \ No newline at end of file diff --git a/data/en/s3delete.json b/data/en/s3delete.json new file mode 100644 index 000000000..88a0aecc6 --- /dev/null +++ b/data/en/s3delete.json @@ -0,0 +1,61 @@ +{ + "engines": {"lucee": { + "docs": "https://docs.lucee.org/reference/functions/S3Delete.html", + "minimum_version": "" + }}, + "name": "S3Delete", + "description": "deletes a bucket or an object within a bucket.", + "syntax": "S3Delete( bucketName )", + "returns": "query", + "type": "function", + "params": [ + { + "name": "bucketName", + "description": "Name of the bucket to delete.", + "aliases": "bucket", + "type": "string", + "required": true + }, + { + "name": "objectName", + "description": "Name of the object to delete, if not defined the bucket itself is deleted.", + "aliases": "object", + "type": "string", + "required": false + }, + { + "name": "force", + "description": "Also delete bucket if it has content.", + "type": "boolean", + "required": false + }, + { + "name": "accessKeyId", + "description": "S3 accessKeyId, if not defined it checks the system property/environment variable for [lucee.s3.accesskeyid].", + "aliases": "accessKey,awsAccessKeyId,awsAccessKey", + "type": "string", + "required": false + }, + { + "name": "secretAccessKey", + "description": "S3 secretAccessKey, if not defined it checks the system property/environment variable for [lucee.s3.secretaccesskey].", + "aliases": "secretkey,awsSecretkey,awsSecretAccessKey", + "type": "string", + "required": false + }, + { + "name": "host", + "description": "the provider to connect, if not set Amazon AWS is used.", + "aliases": "provider,server", + "type": "string", + "required": false + }, + { + "name": "timeout", + "description": "timeout for this execution", + "default": "10000", + "type": "number", + "required": false + } + ] +} \ No newline at end of file diff --git a/data/en/s3deletebucket.json b/data/en/s3deletebucket.json new file mode 100644 index 000000000..b10b72f8d --- /dev/null +++ b/data/en/s3deletebucket.json @@ -0,0 +1,54 @@ +{ + "engines": {"lucee": { + "docs": "https://docs.lucee.org/reference/functions/S3DeleteBucket.html", + "minimum_version": "" + }}, + "name": "S3DeleteBucket", + "description": "deletes a bucket, this function is deprecated, use instead S3Delete.", + "syntax": "S3DeleteBucket( bucketName )", + "returns": "query", + "type": "function", + "params": [ + { + "name": "bucketName", + "description": "Name of the bucket to list objects from.", + "aliases": "bucket", + "type": "string", + "required": true + }, + { + "name": "force", + "description": "Also delete bucket if it has content.", + "type": "boolean", + "required": false + }, + { + "name": "accessKeyId", + "description": "S3 accessKeyId, if not defined it checks the system property/environment variable for [lucee.s3.accesskeyid].", + "aliases": "accessKey,awsAccessKeyId,awsAccessKey", + "type": "string", + "required": false + }, + { + "name": "secretAccessKey", + "description": "S3 secretAccessKey, if not defined it checks the system property/environment variable for [lucee.s3.secretaccesskey].", + "aliases": "secretkey,awsSecretkey,awsSecretAccessKey", + "type": "string", + "required": false + }, + { + "name": "host", + "description": "the provider to connect, if not set Amazon AWS is used.", + "aliases": "provider,server", + "type": "string", + "required": false + }, + { + "name": "timeout", + "description": "timeout for this execution", + "default": "10000", + "type": "number", + "required": false + } + ] +} \ No newline at end of file diff --git a/data/en/s3download.json b/data/en/s3download.json new file mode 100644 index 000000000..a4a4381d5 --- /dev/null +++ b/data/en/s3download.json @@ -0,0 +1,69 @@ +{ + "engines": {"lucee": { + "docs": "https://docs.lucee.org/reference/functions/S3Download.html", + "minimum_version": "" + }}, + "name": "S3Download", + "description": "Downloads an object from an S3 bucket. \nIt can save the object to a specified path, return its content directly, or process the content in parts through a provided closure or UDF (User-Defined Function).", + "syntax": "S3Download( bucketName, objectName )", + "returns": "any", + "type": "function", + "params": [ + { + "name": "bucketName", + "description": "Name of the bucket to download.", + "aliases": "bucket", + "type": "string", + "required": true + }, + { + "name": "objectName", + "description": "Name of the object to download.", + "aliases": "object", + "type": "string", + "required": true + }, + { + "name": "target", + "description": "Optional. Defines the target where the downloaded data will be directed.\n\nIf a file path is provided, the data is saved to that path, the file path must be provided with help of the function \"fileOpen\" like this [fileOpen(path,\"write\")].\n\nIf a closure or function is given, it will be invoked with parts of the downloaded data as its argument.\nThe function should accept a single argument named 'line' for line-by-line processing,\n'string{Number}' for string blocks of a specified size,\nor 'binary{Number}' for binary blocks of a specified size.\n\nThe function should return a boolean value: returning false will stop further reading from S3,\nwhile true will continue the process.\n\nIf this argument is omitted, the function returns the downloaded data directly.", + "aliases": "closure,udf,function,path,file", + "type": "any", + "required": false + }, + { + "name": "charset", + "description": "charset to use to store the content.", + "default": "", + "type": "string", + "required": false + }, + { + "name": "accessKeyId", + "description": "S3 `accessKeyId`, if not defined it checks the system property/environment variable for [lucee.s3.accesskeyid].", + "aliases": "accessKey,awsAccessKeyId,awsAccessKey", + "type": "string", + "required": false + }, + { + "name": "secretAccessKey", + "description": "S3 secretAccessKey, if not defined it checks the system property/environment variable for [lucee.s3.secretaccesskey].", + "aliases": "secretkey,awsSecretkey,awsSecretAccessKey", + "type": "string", + "required": false + }, + { + "name": "host", + "description": "The provider to connect, if not set Amazon AWS is used.", + "aliases": "provider,server", + "type": "string", + "required": false + }, + { + "name": "timeout", + "description": "timeout for this execution", + "default": "10000", + "type": "number", + "required": false + } + ] +} \ No newline at end of file diff --git a/data/en/s3exists.json b/data/en/s3exists.json new file mode 100644 index 000000000..554a3a77f --- /dev/null +++ b/data/en/s3exists.json @@ -0,0 +1,55 @@ +{ + "engines": {"lucee": { + "docs": "https://docs.lucee.org/reference/functions/S3Exists.html", + "minimum_version": "" + }}, + "name": "S3Exists", + "description": "Checks if given object exists in", + "syntax": "S3Exists( bucketName )", + "returns": "boolean", + "type": "function", + "params": [ + { + "name": "bucketName", + "description": "Name of the bucket of your object to check", + "aliases": "bucket", + "type": "string", + "required": true + }, + { + "name": "objectName", + "description": "Name of the object (path) within the bucket of your object to check", + "aliases": "object,path", + "type": "string", + "required": false + }, + { + "name": "accessKeyId", + "description": "S3 accessKeyId, if not defined it checks the system property/environment variable for [lucee.s3.accesskeyid].", + "aliases": "accessKey,awsAccessKeyId,awsAccessKey", + "type": "string", + "required": false + }, + { + "name": "secretAccessKey", + "description": "S3 secretAccessKey, if not defined it checks the system property/environment variable for [lucee.s3.secretaccesskey].", + "aliases": "secretkey,awsSecretkey,awsSecretAccessKey", + "type": "string", + "required": false + }, + { + "name": "host", + "description": "the provider to connect, if not set Amazon AWS is used.", + "aliases": "provider,server", + "type": "string", + "required": false + }, + { + "name": "timeout", + "description": "timeout for this execution", + "default": "10000", + "type": "number", + "required": false + } + ] +} \ No newline at end of file diff --git a/data/en/s3generatepresignedurl.json b/data/en/s3generatepresignedurl.json new file mode 100644 index 000000000..da77bb49f --- /dev/null +++ b/data/en/s3generatepresignedurl.json @@ -0,0 +1,132 @@ +{ + "engines": {"lucee": { + "docs": "https://docs.lucee.org/reference/functions/S3GeneratePresignedURL.html", + "minimum_version": "" + }}, + "name": "S3GeneratePresignedURL", + "description": "Generates a presigned URL pointing to the object given. You can provide the endpoint as a bucket/object definition (S3AddACL(bucket:\"mybucket\",object:\"myobject.txt\") ) or as a virtual filesystem path (S3AddACL(path:\"s3://mybucket/myobject.txt\") ).", + "syntax": "S3GeneratePresignedURL( bucketNameOrPath )", + "returns": "string", + "type": "function", + "params": [ + { + "name": "bucketNameOrPath", + "description": "This can be the bucketname or simple the virtual filesystem point for the file (if object name is no defined)", + "aliases": "bucket,bucketName,path", + "type": "string", + "required": true + }, + { + "name": "objectName", + "description": "Name of the object (path) within the bucket of your object to read", + "aliases": "object,path", + "type": "string", + "required": false + }, + { + "name": "expireDate", + "description": "Date time when the URL should expire.", + "aliases": "expire", + "type": "datetime", + "required": false + }, + { + "name": "httpMethod", + "description": "The desired HTTP method (e.g., GET, PUT). Defaults to GET.", + "aliases": "method", + "type": "string", + "required": false + }, + { + "name": "sseAlgorithm", + "description": "The desired server-side encryption algorithm, valid values are AES256 or KMS.", + "aliases": "algorithm", + "type": "string", + "required": false + }, + { + "name": "sseCustomerKey", + "description": "The server-side encryption customer-provided key.", + "aliases": "customerKey", + "type": "string", + "required": false + }, + { + "name": "checksum", + "description": "The base64 encoded MD5 checksum of the object's content.", + "aliases": "contentMd5", + "type": "string", + "required": false + }, + { + "name": "type", + "description": "The MIME type of the object (e.g., \"text/plain\").", + "aliases": "contentType", + "type": "string", + "required": false + }, + { + "name": "disposition", + "description": "Specifies presentational information for the object, like \"attachment; filename=\\\"filename.pdf\\\"\".", + "aliases": "contentDisposition", + "type": "string", + "required": false + }, + { + "name": "encoding", + "description": "Specifies content encodings applied to the object, like gzip.", + "aliases": "contentEncoding", + "type": "string", + "required": false + }, + { + "name": "version", + "description": "The version ID of the object if versioning is enabled.", + "aliases": "versionId", + "type": "string", + "required": false + }, + { + "name": "zeroByte", + "description": "A flag to specify if the object has zero-byte content.", + "aliases": "zeroByteContent", + "type": "boolean", + "required": false + }, + { + "name": "responseHeaders", + "description": "Struct of custom response headers for custom metadata prefixed with \"x-amz-meta-\" (prefix is optional, function will add it if missed).", + "aliases": "customResponseHeaders", + "type": "struct", + "required": false + }, + { + "name": "accessKeyId", + "description": "S3 accessKeyId, if not defined it checks the system property/environment variable for [lucee.s3.accesskeyid].", + "aliases": "accessKey,awsAccessKeyId,awsAccessKey", + "type": "string", + "required": false + }, + { + "name": "secretAccessKey", + "description": "S3 secretAccessKey, if not defined it checks the system property/environment variable for [lucee.s3.secretaccesskey].", + "aliases": "secretkey,awsSecretkey,awsSecretAccessKey", + "type": "string", + "required": false + }, + { + "name": "host", + "description": "the provider to connect, if not set Amazon AWS is used.", + "aliases": "provider,server", + "type": "string", + "required": false + }, + { + "name": "timeout", + "description": "timeout for this execution", + "default": "10000", + "type": "number", + "required": false + } + ] +} \ No newline at end of file diff --git a/data/en/s3generateuri.json b/data/en/s3generateuri.json new file mode 100644 index 000000000..95f764f4e --- /dev/null +++ b/data/en/s3generateuri.json @@ -0,0 +1,71 @@ +{ + "engines": {"lucee": { + "docs": "https://docs.lucee.org/reference/functions/S3GenerateURI.html", + "minimum_version": "" + }}, + "name": "S3GenerateURI", + "description": "Generates a URI endpoint pointing to the object given. You can provide the endpoint as a bucket/object definition (S3AddACL(bucket:\"mybucket\",object:\"myobject.txt\") ) or as a virtual filesystem path (S3AddACL(path:\"s3://mybucket/myobject.txt\") ).", + "syntax": "S3GenerateURI( bucketNameOrPath )", + "returns": "string", + "type": "function", + "params": [ + { + "name": "bucketNameOrPath", + "description": "This can be the bucketname or simple the virtual filesystem point for the file (if object name is no defined)", + "aliases": "bucket,bucketName,path", + "type": "string", + "required": true + }, + { + "name": "objectName", + "description": "Name of the object (path) within the bucket of your object to read", + "aliases": "object,path", + "type": "string", + "required": false + }, + { + "name": "type", + "description": "Defines the style/type created, possible values are:\n\n- virtualhost\n- path\n- arn\n- s3\n\nFor more details, please see:\n\n[Methods for accessing a bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-bucket-intro.html)\n[Amazon Resource Names (ARNs)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)", + "default": "virtualhost", + "aliases": "style", + "type": "string", + "required": false + }, + { + "name": "secure", + "description": "Should a secure URL (https) be created or not. Only applies to type virtualhost and path.", + "default": "true", + "aliases": "secured", + "type": "boolean", + "required": false + }, + { + "name": "accessKeyId", + "description": "S3 accessKeyId, if not defined it checks the system property/environment variable for [lucee.s3.accesskeyid].", + "aliases": "accessKey,awsAccessKeyId,awsAccessKey", + "type": "string", + "required": false + }, + { + "name": "secretAccessKey", + "description": "S3 secretAccessKey, if not defined it checks the system property/environment variable for [lucee.s3.secretaccesskey].", + "aliases": "secretkey,awsSecretkey,awsSecretAccessKey", + "type": "string", + "required": false + }, + { + "name": "host", + "description": "the provider to connect, if not set Amazon AWS is used.", + "aliases": "provider,server", + "type": "string", + "required": false + }, + { + "name": "timeout", + "description": "timeout for this execution", + "default": "10000", + "type": "number", + "required": false + } + ] +} \ No newline at end of file diff --git a/data/en/s3getacl.json b/data/en/s3getacl.json new file mode 100644 index 000000000..cda454cf8 --- /dev/null +++ b/data/en/s3getacl.json @@ -0,0 +1,56 @@ +{ + "engines": {"lucee": { + "docs": "https://docs.lucee.org/reference/functions/S3GetACL.html", + "minimum_version": "" + }}, + "name": "S3GetACL", + "description": "Returns an array of structures, with each structure representing an ACL (Access Control List) grant. You can provide the endpoint as a bucket/object definition (S3GetACL(bucket:\"mybucket\",object:\"myobject.txt\") ) or as a virtual filesystem path (S3GetACL(path:\"s3://mybucket/myobject.txt\") ).", + "syntax": "S3GetACL( bucketNameOrPath )", + "returns": "object", + "type": "function", + "params": [ + { + "name": "bucketNameOrPath", + "description": "This can be the bucketname or a virtual filesystem path for a file/directory (example \"s3://mybucket/myobject.txt\").", + "aliases": "bucket,bucketName,path", + "type": "string", + "required": true + }, + { + "name": "objectName", + "description": "Name of the object (path) within the bucket of your object to read. In case you have defined a bucket with the first argument.", + "default": "", + "aliases": "object,path", + "type": "string", + "required": false + }, + { + "name": "accessKeyId", + "description": "S3 accessKeyId, if not defined it checks the system property/environment variable for [lucee.s3.accesskeyid].", + "aliases": "accessKey,awsAccessKeyId,awsAccessKey", + "type": "string", + "required": false + }, + { + "name": "secretAccessKey", + "description": "S3 secretAccessKey, if not defined it checks the system property/environment variable for [lucee.s3.secretaccesskey].", + "aliases": "secretkey,awsSecretkey,awsSecretAccessKey", + "type": "string", + "required": false + }, + { + "name": "host", + "description": "the provider to connect, if not set Amazon AWS is used.", + "aliases": "provider,server", + "type": "string", + "required": false + }, + { + "name": "timeout", + "description": "timeout for this execution", + "default": "10000", + "type": "number", + "required": false + } + ] +} \ No newline at end of file diff --git a/data/en/s3getmetadata.json b/data/en/s3getmetadata.json new file mode 100644 index 000000000..bd727bd12 --- /dev/null +++ b/data/en/s3getmetadata.json @@ -0,0 +1,56 @@ +{ + "engines": {"lucee": { + "docs": "https://docs.lucee.org/reference/functions/S3GetMetaData.html", + "minimum_version": "" + }}, + "name": "S3GetMetaData", + "description": "Returns the metadata related to the object or bucket. You can provide the endpoint as a bucket/object definition (S3GetMetaData(bucket:\"mybucket\",object:\"myobject.txt\") ) or as a virtual filesystem path (S3GetMetaData(path:\"s3://mybucket/myobject.txt\") ).", + "syntax": "S3GetMetaData( bucketNameOrPath )", + "returns": "struct", + "type": "function", + "params": [ + { + "name": "bucketNameOrPath", + "description": "This can be the bucketname or a virtual filesystem path for a file/directory (example \"s3://mybucket/myobject.txt\").", + "aliases": "bucket,bucketName,path", + "type": "string", + "required": true + }, + { + "name": "objectName", + "description": "Name of the object (path) within the bucket of your object to read. In case you have defined a bucket with the first argument.", + "default": "", + "aliases": "object,path", + "type": "string", + "required": false + }, + { + "name": "accessKeyId", + "description": "S3 accessKeyId, if not defined it checks the system property/environment variable for [lucee.s3.accesskeyid].", + "aliases": "accessKey,awsAccessKeyId,awsAccessKey", + "type": "string", + "required": false + }, + { + "name": "secretAccessKey", + "description": "S3 secretAccessKey, if not defined it checks the system property/environment variable for [lucee.s3.secretaccesskey].", + "aliases": "secretkey,awsSecretkey,awsSecretAccessKey", + "type": "string", + "required": false + }, + { + "name": "host", + "description": "the provider to connect, if not set Amazon AWS is used.", + "aliases": "provider,server", + "type": "string", + "required": false + }, + { + "name": "timeout", + "description": "timeout for this execution", + "default": "10000", + "type": "number", + "required": false + } + ] +} \ No newline at end of file diff --git a/data/en/s3getversioninfo.json b/data/en/s3getversioninfo.json new file mode 100644 index 000000000..e2712918b --- /dev/null +++ b/data/en/s3getversioninfo.json @@ -0,0 +1,55 @@ +{ + "engines": {"lucee": { + "docs": "https://docs.lucee.org/reference/functions/S3GetVersionInfo.html", + "minimum_version": "" + }}, + "name": "S3GetVersionInfo", + "description": "Returns version information as a query for a specific object or bucket.", + "syntax": "S3GetVersionInfo( bucketName )", + "returns": "query", + "type": "function", + "params": [ + { + "name": "bucketName", + "description": "Name of the bucket to get info for.", + "aliases": "bucket", + "type": "string", + "required": true + }, + { + "name": "objectName", + "description": "Name of the object (path) within the bucket to get info for. If not defined, info of the bucket is returned.", + "aliases": "object,path", + "type": "string", + "required": false + }, + { + "name": "accessKeyId", + "description": "S3 accessKeyId. If not defined, checks the system property/environment variable for [lucee.s3.accesskeyid].", + "aliases": "accessKey,awsAccessKeyId,awsAccessKey", + "type": "string", + "required": false + }, + { + "name": "secretAccessKey", + "description": "S3 secretAccessKey. If not defined, checks the system property/environment variable for [lucee.s3.secretaccesskey].", + "aliases": "secretKey,awsSecretKey,awsSecretAccessKey", + "type": "string", + "required": false + }, + { + "name": "host", + "description": "The provider to connect to. If not set, Amazon AWS is used.", + "aliases": "provider,server", + "type": "string", + "required": false + }, + { + "name": "timeout", + "description": "Timeout for this execution (in milliseconds).", + "default": "10000", + "type": "number", + "required": false + } + ] +} \ No newline at end of file diff --git a/data/en/s3listbucket.json b/data/en/s3listbucket.json new file mode 100644 index 000000000..be050b6a0 --- /dev/null +++ b/data/en/s3listbucket.json @@ -0,0 +1,63 @@ +{ + "engines": {"lucee": { + "docs": "https://docs.lucee.org/reference/functions/S3ListBucket.html", + "minimum_version": "" + }}, + "name": "S3ListBucket", + "description": "List all objects in a bucket", + "syntax": "S3ListBucket( bucketName )", + "returns": "query", + "type": "function", + "params": [ + { + "name": "bucketName", + "description": "Name of the bucket to list objects from.", + "aliases": "bucket", + "type": "string", + "required": true + }, + { + "name": "listener", + "description": "Optional. Defines the target where the downloaded data will be directed. \nIf a file path is provided, the data is saved to that path, the file path must be provided with help of the function \"fileOpen\" like this [fileOpen(path,\"write\")]. \nIf a closure or function is given, it will be invoked with parts of the downloaded data as its argument. \nThe function should accept a single argument named 'line' for line-by-line processing, \n'string{Number}' for string blocks of a specified size, \nor 'binary{Number}' for binary blocks of a specified size. \nThe function should return a boolean value: returning false will stop further reading from S3, \nwhile true will continue the process. \nIf this argument is omitted, the function returns the downloaded data directly.", + "aliases": "closure,udf,function,component", + "type": "any", + "required": false + }, + { + "name": "blockfactor", + "description": "", + "default": "1000", + "aliases": "maxKeys,blockSize", + "type": "numeric", + "required": false + }, + { + "name": "accessKeyId", + "description": "S3 accessKeyId, if not defined it checks the system property/environment variable for [lucee.s3.accesskeyid].\n", + "aliases": "accessKey,awsAccessKeyId,awsAccessKey", + "type": "string", + "required": false + }, + { + "name": "secretAccessKey", + "description": "S3 secretAccessKey, if not defined it checks the system property/environment variable for [lucee.s3.secretaccesskey].\n", + "aliases": "secretkey,awsSecretkey,awsSecretAccessKey", + "type": "string", + "required": false + }, + { + "name": "host", + "description": "the provider to connect, if not set Amazon AWS is used.", + "aliases": "provider,server", + "type": "string", + "required": false + }, + { + "name": "timeout", + "description": "timeout for this execution", + "default": "10000", + "type": "number", + "required": false + } + ] +} \ No newline at end of file diff --git a/data/en/s3listbuckets.json b/data/en/s3listbuckets.json new file mode 100644 index 000000000..1823e1b36 --- /dev/null +++ b/data/en/s3listbuckets.json @@ -0,0 +1,41 @@ +{ + "engines": {"lucee": { + "docs": "https://docs.lucee.org/reference/functions/S3ListBuckets.html", + "minimum_version": "" + }}, + "name": "S3ListBuckets", + "description": "List all buckets", + "syntax": "S3ListBuckets()", + "returns": "query", + "type": "function", + "params": [ + { + "name": "accessKeyId", + "description": "S3 accessKeyId, if not defined it checks the system property/environment variable for [lucee.s3.accesskeyid].", + "aliases": "accessKey,awsAccessKeyId,awsAccessKey", + "type": "string", + "required": false + }, + { + "name": "secretAccessKey", + "description": "S3 secretAccessKey, if not defined it checks the system property/environment variable for [lucee.s3.secretaccesskey].", + "aliases": "secretkey,awsSecretkey,awsSecretAccessKey", + "type": "string", + "required": false + }, + { + "name": "host", + "description": "the provider to connect, if not set Amazon AWS is used.", + "aliases": "provider,server", + "type": "string", + "required": false + }, + { + "name": "timeout", + "description": "timeout for this execution", + "default": "10000", + "type": "number", + "required": false + } + ] +} \ No newline at end of file diff --git a/data/en/s3move.json b/data/en/s3move.json new file mode 100644 index 000000000..75751a894 --- /dev/null +++ b/data/en/s3move.json @@ -0,0 +1,83 @@ +{ + "engines": {"lucee": { + "docs": "https://docs.lucee.org/reference/functions/S3Move.html", + "minimum_version": "" + }}, + "name": "S3Move", + "description": "Moves an object in S3 from one bucket to an other.", + "syntax": "S3Move( srcBucketName, srcObjectName, trgBucketName )", + "returns": "void", + "type": "function", + "params": [ + { + "name": "srcBucketName", + "description": "Name of the source bucket of your object to move.", + "aliases": "srcBucket,sourceBucketName,sourceBucket", + "type": "string", + "required": true + }, + { + "name": "srcObjectName", + "description": "Name of the source object (path) within the bucket of your object to move.", + "aliases": "sourceObjectName,srcObject,sourceObject", + "type": "string", + "required": true + }, + { + "name": "trgBucketName", + "description": "Name of the target bucket of your object to move", + "aliases": "trgBucket,targetBucketName,targetBucket", + "type": "string", + "required": true + }, + { + "name": "trgObjectName", + "description": "Name of the target object (path)for the target bucket. If not defined the source object name is used.", + "aliases": "targetObjectName,trgObject,targetObject", + "type": "string", + "required": false + }, + { + "name": "acl", + "description": "an array of struct where each struct represents an ACL grant", + "aliases": "aclObject", + "type": "object", + "required": false + }, + { + "name": "location", + "description": "location of the S3 storage.", + "aliases": "region", + "type": "string", + "required": false + }, + { + "name": "accessKeyId", + "description": "S3 accessKeyId, if not defined it checks the system property/environment variable for [lucee.s3.accesskeyid].", + "aliases": "accessKey,awsAccessKeyId,awsAccessKey", + "type": "string", + "required": false + }, + { + "name": "secretAccessKey", + "description": "S3 secretAccessKey, if not defined it checks the system property/environment variable for [lucee.s3.secretaccesskey].", + "aliases": "secretkey,awsSecretkey,awsSecretAccessKey", + "type": "string", + "required": false + }, + { + "name": "host", + "description": "the provider to connect, if not set Amazon AWS is used.", + "aliases": "provider,server", + "type": "string", + "required": false + }, + { + "name": "timeout", + "description": "timeout for this execution", + "default": "10000", + "type": "number", + "required": false + } + ] +} \ No newline at end of file diff --git a/data/en/s3read.json b/data/en/s3read.json new file mode 100644 index 000000000..48eeb49cf --- /dev/null +++ b/data/en/s3read.json @@ -0,0 +1,62 @@ +{ + "engines": {"lucee": { + "docs": "https://docs.lucee.org/reference/functions/S3Read.html", + "minimum_version": "" + }}, + "name": "S3Read", + "description": "Reads an object from S3 as a string.", + "syntax": "S3Read( bucketName, objectName )", + "returns": "string", + "type": "function", + "params": [ + { + "name": "bucketName", + "description": "Name of the bucket of your object to read", + "aliases": "bucket", + "type": "string", + "required": true + }, + { + "name": "objectName", + "description": "Name of the object (path) within the bucket of your object to read", + "aliases": "object,path", + "type": "string", + "required": true + }, + { + "name": "charset", + "description": "charset to use to store the content.", + "default": "UTF-8", + "type": "string", + "required": false + }, + { + "name": "accessKeyId", + "description": "S3 accessKeyId, if not defined it checks the system property/environment variable for [lucee.s3.accesskeyid].\n", + "aliases": "accessKey,awsAccessKeyId,awsAccessKey", + "type": "string", + "required": false + }, + { + "name": "secretAccessKey", + "description": "S3 secretAccessKey, if not defined it checks the system property/environment variable for [lucee.s3.secretaccesskey].\n", + "aliases": "secretkey,awsSecretkey,awsSecretAccessKey", + "type": "string", + "required": false + }, + { + "name": "host", + "description": "the provider to connect, if not set Amazon AWS is used.", + "aliases": "provider,server", + "type": "string", + "required": false + }, + { + "name": "timeout", + "description": "timeout for this execution", + "default": "10000", + "type": "number", + "required": false + } + ] +} \ No newline at end of file diff --git a/data/en/s3readbinary.json b/data/en/s3readbinary.json new file mode 100644 index 000000000..44202698e --- /dev/null +++ b/data/en/s3readbinary.json @@ -0,0 +1,55 @@ +{ + "engines": {"lucee": { + "docs": "https://docs.lucee.org/reference/functions/S3ReadBinary.html", + "minimum_version": "" + }}, + "name": "S3ReadBinary", + "description": "Reads an object from S3 as a binary.", + "syntax": "S3ReadBinary( bucketName, objectName )", + "returns": "binary", + "type": "function", + "params": [ + { + "name": "bucketName", + "description": "Name of the bucket of your object to read", + "aliases": "bucket", + "type": "string", + "required": true + }, + { + "name": "objectName", + "description": "Name of the object (path) within the bucket of your object to read", + "aliases": "object,path", + "type": "string", + "required": true + }, + { + "name": "accessKeyId", + "description": "S3 accessKeyId, if not defined it checks the system property/environment variable for [lucee.s3.accesskeyid].\n", + "aliases": "accessKey,awsAccessKeyId,awsAccessKey", + "type": "string", + "required": false + }, + { + "name": "secretAccessKey", + "description": "S3 secretAccessKey, if not defined it checks the system property/environment variable for [lucee.s3.secretaccesskey].\n", + "aliases": "secretkey,awsSecretkey,awsSecretAccessKey", + "type": "string", + "required": false + }, + { + "name": "host", + "description": "the provider to connect, if not set Amazon AWS is used.", + "aliases": "provider,server", + "type": "string", + "required": false + }, + { + "name": "timeout", + "description": "timeout for this execution", + "default": "10000", + "type": "number", + "required": false + } + ] +} \ No newline at end of file diff --git a/data/en/s3setacl.json b/data/en/s3setacl.json new file mode 100644 index 000000000..016c5bf0f --- /dev/null +++ b/data/en/s3setacl.json @@ -0,0 +1,63 @@ +{ + "engines": {"lucee": { + "docs": "https://docs.lucee.org/reference/functions/S3SetACL.html", + "minimum_version": "" + }}, + "name": "S3SetACL", + "description": "Sets ACL to existing ACL for object or bucket. You can provide the endpoint as a bucket/object definition (S3SetACL(bucket:\"mybucket\",object:\"myobject.txt\",acl:data) ) or as a virtual filesystem path (S3SetACL(path:\"s3://mybucket/myobject.txt\",acl:data) ).", + "syntax": "S3SetACL( bucketNameOrPath, aclObject )", + "returns": "void", + "type": "function", + "params": [ + { + "name": "bucketNameOrPath", + "description": "This can be the bucketname or a virtual filesystem path for a file/directory (example \"s3://mybucket/myobject.txt\").", + "aliases": "bucket,bucketName,path", + "type": "string", + "required": true + }, + { + "name": "objectName", + "description": "Name of the object (path) within the bucket of your object to read. In case you have defined a bucket with the first argument.", + "default": "", + "aliases": "object,path", + "type": "string", + "required": false + }, + { + "name": "aclObject", + "description": "an array of struct where each struct represents an ACL grant", + "aliases": "acl", + "type": "object", + "required": true + }, + { + "name": "accessKeyId", + "description": "S3 accessKeyId, if not defined it checks the system property/environment variable for [lucee.s3.accesskeyid].", + "aliases": "accessKey,awsAccessKeyId,awsAccessKey", + "type": "string", + "required": false + }, + { + "name": "secretAccessKey", + "description": "S3 secretAccessKey, if not defined it checks the system property/environment variable for [lucee.s3.secretaccesskey].", + "aliases": "secretkey,awsSecretkey,awsSecretAccessKey", + "type": "string", + "required": false + }, + { + "name": "host", + "description": "the provider to connect, if not set Amazon AWS is used.", + "aliases": "provider,server", + "type": "string", + "required": false + }, + { + "name": "timeout", + "description": "timeout for this execution", + "default": "10000", + "type": "number", + "required": false + } + ] +} \ No newline at end of file diff --git a/data/en/s3setmetadata.json b/data/en/s3setmetadata.json new file mode 100644 index 000000000..b99b2473f --- /dev/null +++ b/data/en/s3setmetadata.json @@ -0,0 +1,62 @@ +{ + "engines": {"lucee": { + "docs": "https://docs.lucee.org/reference/functions/S3SetMetaData.html", + "minimum_version": "" + }}, + "name": "S3SetMetaData", + "description": "Sets the metadata on bucket or object. You can provide the endpoint as a bucket/object definition (S3SetMetaData(bucket:\"mybucket\",object:\"myobject.txt\",metadata:data) ) or as a virtual filesystem path (S3SetMetaData(path:\"s3://mybucket/myobject.txt\",metadata:data) ).", + "syntax": "S3SetMetaData( bucketNameOrPath, metadata )", + "returns": "void", + "type": "function", + "params": [ + { + "name": "bucketNameOrPath", + "description": "This can be the bucketname or a virtual filesystem path for a file/directory (example \"s3://mybucket/myobject.txt\").", + "aliases": "bucket,bucketName,path", + "type": "string", + "required": true + }, + { + "name": "objectName", + "description": "Name of the object (path) within the bucket of your object to read. In case you have defined a bucket with the first argument.", + "default": "", + "aliases": "object,path", + "type": "string", + "required": false + }, + { + "name": "metadata", + "description": "", + "type": "struct", + "required": true + }, + { + "name": "accessKeyId", + "description": "S3 accessKeyId, if not defined it checks the system property/environment variable for [lucee.s3.accesskeyid].", + "aliases": "accessKey,awsAccessKeyId,awsAccessKey", + "type": "string", + "required": false + }, + { + "name": "secretAccessKey", + "description": "S3 secretAccessKey, if not defined it checks the system property/environment variable for [lucee.s3.secretaccesskey].", + "aliases": "secretkey,awsSecretkey,awsSecretAccessKey", + "type": "string", + "required": false + }, + { + "name": "host", + "description": "the provider to connect, if not set Amazon AWS is used.", + "aliases": "provider,server", + "type": "string", + "required": false + }, + { + "name": "timeout", + "description": "timeout for this execution", + "default": "10000", + "type": "number", + "required": false + } + ] +} \ No newline at end of file diff --git a/data/en/s3upload.json b/data/en/s3upload.json new file mode 100644 index 000000000..7fb1568e4 --- /dev/null +++ b/data/en/s3upload.json @@ -0,0 +1,75 @@ +{ + "engines": {"lucee": { + "docs": "https://docs.lucee.org/reference/functions/S3Upload.html", + "minimum_version": "" + }}, + "name": "S3Upload", + "description": "Uploads a file to S3.", + "syntax": "S3Upload( bucketName, objectName, source )", + "returns": "void", + "type": "function", + "params": [ + { + "name": "bucketName", + "description": "Name of the bucket of your object to write", + "aliases": "bucket", + "type": "string", + "required": true + }, + { + "name": "objectName", + "description": "Name of the object (path) within the bucket of your object to write", + "aliases": "object", + "type": "string", + "required": true + }, + { + "name": "source", + "description": "Source file to write to S3. A string path to a file or a object created with the function \"fileOpen\".", + "type": "object", + "required": true + }, + { + "name": "acl", + "description": "an array of struct where each struct represents an ACL grant", + "aliases": "aclObject", + "type": "object", + "required": false + }, + { + "name": "location", + "description": "location of the S3 storage.", + "aliases": "region", + "type": "string", + "required": false + }, + { + "name": "accessKeyId", + "description": "S3 accessKeyId, if not defined it checks the system property/environment variable for [lucee.s3.accesskeyid].", + "aliases": "accessKey,awsAccessKeyId,awsAccessKey", + "type": "string", + "required": false + }, + { + "name": "secretAccessKey", + "description": "S3 secretAccessKey, if not defined it checks the system property/environment variable for [lucee.s3.secretaccesskey].", + "aliases": "secretkey,awsSecretkey,awsSecretAccessKey", + "type": "string", + "required": false + }, + { + "name": "host", + "description": "the provider to connect, if not set Amazon AWS is used.", + "aliases": "provider,server", + "type": "string", + "required": false + }, + { + "name": "timeout", + "description": "timeout for this execution", + "default": "10000", + "type": "number", + "required": false + } + ] +} \ No newline at end of file diff --git a/data/en/s3write.json b/data/en/s3write.json new file mode 100644 index 000000000..509abe412 --- /dev/null +++ b/data/en/s3write.json @@ -0,0 +1,90 @@ +{ + "engines": {"lucee": { + "docs": "https://docs.lucee.org/reference/functions/S3Write.html", + "minimum_version": "" + }}, + "name": "S3Write", + "description": "Writes a value to S3.", + "syntax": "S3Write( bucketName, objectName, value )", + "returns": "void", + "type": "function", + "params": [ + { + "name": "bucketName", + "description": "Name of the bucket of your object to read", + "aliases": "bucket", + "type": "string", + "required": true + }, + { + "name": "objectName", + "description": "Name of the object (path) within the bucket of your object to read", + "aliases": "object,path", + "type": "string", + "required": true + }, + { + "name": "value", + "description": "value to store on S3.", + "aliases": "content", + "type": "object", + "required": true + }, + { + "name": "charset", + "description": "charset to use to store the content.", + "default": "UTF-8", + "type": "string", + "required": false + }, + { + "name": "mimeType", + "description": "MimeType of the value you are storing.", + "default": "UTF-8", + "type": "string", + "required": false + }, + { + "name": "acl", + "description": "an array of struct where each struct represents an ACL grant", + "aliases": "aclObject", + "type": "object", + "required": false + }, + { + "name": "location", + "description": "location of the S3 storage.", + "aliases": "region", + "type": "string", + "required": false + }, + { + "name": "accessKeyId", + "description": "S3 accessKeyId, if not defined it checks the system property/environment variable for [lucee.s3.accesskeyid].\n", + "aliases": "accessKey,awsAccessKeyId,awsAccessKey", + "type": "string", + "required": false + }, + { + "name": "secretAccessKey", + "description": "S3 secretAccessKey, if not defined it checks the system property/environment variable for [lucee.s3.secretaccesskey].\n", + "aliases": "secretkey,awsSecretkey,awsSecretAccessKey", + "type": "string", + "required": false + }, + { + "name": "host", + "description": "the provider to connect, if not set Amazon AWS is used.", + "aliases": "provider,server", + "type": "string", + "required": false + }, + { + "name": "timeout", + "description": "timeout for this execution", + "default": "10000", + "type": "number", + "required": false + } + ] +} \ No newline at end of file diff --git a/data/en/sanitize.json b/data/en/sanitize.json new file mode 100644 index 000000000..85ff84839 --- /dev/null +++ b/data/en/sanitize.json @@ -0,0 +1,28 @@ +{ + "engines": {"lucee": { + "docs": "https://docs.lucee.org/reference/functions/sanitize.html", + "minimum_version": "" + }}, + "name": "sanitize", + "description": "Detects and masks sensitive information (such as passwords, API keys, tokens, etc.) from a given string. \nThe function identifies patterns commonly used for sensitive data and replaces them with a mask.", + "syntax": "sanitize( text )", + "returns": "string", + "type": "function", + "params": [ + { + "name": "text", + "description": "The input string to be sanitized.", + "aliases": "string", + "type": "string", + "required": true + }, + { + "name": "replacement", + "description": "The replacement string to use as a mask for sensitive data. If not specified, defaults to \"****\".", + "default": "****", + "aliases": "mask", + "type": "string", + "required": false + } + ] +} \ No newline at end of file diff --git a/data/en/serializeaisession.json b/data/en/serializeaisession.json new file mode 100644 index 000000000..06e49293f --- /dev/null +++ b/data/en/serializeaisession.json @@ -0,0 +1,34 @@ +{ + "engines": {"lucee": { + "docs": "https://docs.lucee.org/reference/functions/SerializeAISession.html", + "minimum_version": "" + }}, + "name": "SerializeAISession", + "description": "Serializes an AI session to a JSON string that includes its configuration and conversation history. The serialized content includes:\n- Configuration settings (temperature, limits, timeouts, system message)\n- Complete conversation history with questions and answers\nThis function is useful for:\n- Persisting AI sessions\n- Debugging AI conversations\n- Sharing or transferring AI session data\n- Storing AI conversation history\nUse `LoadAISession()` to restore a serialized session.", + "syntax": "SerializeAISession( session )", + "returns": "string", + "type": "function", + "params": [ + { + "name": "session", + "description": "The AI session object returned by LuceeCreateAISession(). This session maintains the conversation history and configuration settings like temperature and system message.", + "aliases": "aiSession", + "type": "any", + "required": true + }, + { + "name": "maxlength", + "description": "Specifies the maximum number of conversation exchanges to retain in the serialized output. \nWhen specified, the function preserves the most recent exchanges up to this limit, truncating older exchanges while maintaining the session configuration. \nThis helps control memory usage and storage requirements for long-running conversations without losing recent context. \nWhen used with condense=true, maxlength is applied before condensation. If not specified, all conversation history is retained.", + "aliases": "length", + "type": "numeric", + "required": false + }, + { + "name": "condense", + "description": "Controls whether the conversation history should be condensed before serialization. When set to true, the function will intelligently summarize older parts of the conversation while preserving essential context. This reduces the overall token count and storage requirements while maintaining the important elements of the conversation history. Default is false, which preserves the complete conversation history.", + "aliases": "summarize", + "type": "boolean", + "required": false + } + ] +} \ No newline at end of file diff --git a/data/en/sessioncommit.json b/data/en/sessioncommit.json new file mode 100644 index 000000000..74972cc9d --- /dev/null +++ b/data/en/sessioncommit.json @@ -0,0 +1,12 @@ +{ + "engines": {"lucee": { + "docs": "https://docs.lucee.org/reference/functions/SessionCommit.html", + "minimum_version": "6.2" + }}, + "name": "SessionCommit", + "description": "Force saving the session to storage, useful when sessionCluster is enabled.", + "syntax": "SessionCommit()", + "returns": "void", + "type": "function", + "params": [] +} \ No newline at end of file diff --git a/data/en/sessionexists.json b/data/en/sessionexists.json new file mode 100644 index 000000000..b0b008c3f --- /dev/null +++ b/data/en/sessionexists.json @@ -0,0 +1,12 @@ +{ + "engines": {"lucee": { + "docs": "https://docs.lucee.org/reference/functions/SessionExists.html", + "minimum_version": "6.2" + }}, + "name": "SessionExists", + "description": "Returns a boolean indicating if a session has been already created / exists.", + "syntax": "SessionExists()", + "returns": "boolean", + "type": "function", + "params": [] +} \ No newline at end of file diff --git a/data/en/setpropertystring.json b/data/en/setpropertystring.json new file mode 100644 index 000000000..7634b4e72 --- /dev/null +++ b/data/en/setpropertystring.json @@ -0,0 +1,38 @@ +{ + "engines": {"lucee": { + "docs": "https://docs.lucee.org/reference/functions/setPropertyString.html", + "minimum_version": "7.0" + }}, + "name": "setPropertyString", + "description": "Sets the value of a property entry in a properties file.", + "syntax": "setPropertyString( filePath, key, value )", + "returns": "string", + "type": "function", + "params": [ + { + "name": "filePath", + "description": "Path of the properties initialization file", + "type": "string", + "required": true + }, + { + "name": "key", + "description": "Name of the key to set", + "type": "string", + "required": true + }, + { + "name": "value", + "description": "Value to which to set the property", + "type": "string", + "required": true + }, + { + "name": "encoding", + "description": "Encoding for the properties file, default UTF-8", + "default": "UTF-8", + "type": "string", + "required": false + } + ] +} \ No newline at end of file diff --git a/data/en/threaddata.json b/data/en/threaddata.json new file mode 100644 index 000000000..538975fe2 --- /dev/null +++ b/data/en/threaddata.json @@ -0,0 +1,12 @@ +{ + "engines": {"lucee": { + "docs": "https://docs.lucee.org/reference/functions/ThreadData.html", + "minimum_version": "5.3" + }}, + "name": "ThreadData", + "description": "returns the root cfthread scope.", + "syntax": "ThreadData()", + "returns": "struct", + "type": "function", + "params": [] +} \ No newline at end of file diff --git a/data/en/threadinterrupt.json b/data/en/threadinterrupt.json new file mode 100644 index 000000000..c7e43483b --- /dev/null +++ b/data/en/threadinterrupt.json @@ -0,0 +1,17 @@ +{ + "engines": {"lucee": { + "docs": "https://docs.lucee.org/reference/functions/threadInterrupt.html", + "minimum_version": "" + }}, + "name": "threadInterrupt", + "description": "Interrupts a specified thread by setting its interrupt status flag.\r\nThis function sets the interrupt status flag on a CFThread. The behavior depends on the thread's current state:\r\n- If the thread is blocked in a ThreadJoin or sleep method call: its interrupt status will be cleared and it will \r\nreceive an InterruptedException\r\n- If the thread is executing a long-running operation with interrupt checks: the operation may terminate early\r\n- If the thread is not alive: the interrupt request may have no effect", + "syntax": "threadInterrupt()", + "returns": "any", + "type": "function", + "params": [{ + "name": "name", + "description": "The name of the thread to interrupt. If omitted or empty, the current thread will be interrupted.", + "type": "string", + "required": false + }] +} \ No newline at end of file diff --git a/data/en/trimwhitespace.json b/data/en/trimwhitespace.json new file mode 100644 index 000000000..eec50462e --- /dev/null +++ b/data/en/trimwhitespace.json @@ -0,0 +1,17 @@ +{ + "engines": {"lucee": { + "docs": "https://docs.lucee.org/reference/functions/TrimWhiteSpace.html", + "minimum_version": "" + }}, + "name": "TrimWhiteSpace", + "description": "clean white space of the given string", + "syntax": "TrimWhiteSpace( input )", + "returns": "string", + "type": "function", + "params": [{ + "name": "input", + "description": "string to clean up.", + "type": "string", + "required": true + }] +} \ No newline at end of file diff --git a/data/en/valueref.json b/data/en/valueref.json new file mode 100644 index 000000000..244bee3c1 --- /dev/null +++ b/data/en/valueref.json @@ -0,0 +1,18 @@ +{ + "engines": {"lucee": { + "docs": "https://docs.lucee.org/reference/functions/ValueRef.html", + "minimum_version": "6.1" + }}, + "name": "ValueRef", + "description": "creates a reference to a UDF that acts like a simple value.", + "syntax": "ValueRef( ref )", + "returns": "any", + "type": "function", + "params": [{ + "name": "ref", + "description": "udf returning the value", + "aliases": "function,udf", + "type": "function", + "required": true + }] +} \ No newline at end of file