# Models

## The AddCorrelationPairResponse object

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"AddCorrelationPairResponse":{"type":"object","properties":{"correlationPairID":{"type":"string","description":"Correlation Pair object ID.","nullable":true},"requestID":{"type":"integer","description":"Progressive number of the request (since the Server started).\r\nUse this number, together with the RequestDateTime property,\r\nto report an anomalous response.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous response.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is equivalent to the HTTP\r\nstatus code.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response of an Add Correlation Pair request."}}}}
````

## The AddCorrelationPairSpecs object

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"AddCorrelationPairSpecs":{"type":"object","properties":{"pairID":{"type":"string","description":"Correlation Pair object ID.","nullable":true},"text1":{"type":"string","description":"First text of the Correlation Pair, typically a question coming from a Receiver.","nullable":true},"text2":{"type":"string","description":"Second text of the Correlation Pair, typically the original question introduced by the Giver.","nullable":true},"correlated":{"type":"boolean","description":"```True``` if the texts must be considered correlated."},"occurrences":{"type":"integer","description":"Number of times these the first text has been correlated to the second.","format":"int32"},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false}}}}
````

## The AddCustomWordResponse object

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"AddCustomWordResponse":{"type":"object","properties":{"customWordID":{"type":"string","description":"Custom Word object ID.","nullable":true},"requestID":{"type":"integer","description":"Progressive number of the request (since the Server started).\r\nUse this number, together with the RequestDateTime property,\r\nto report an anomalous response.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous response.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is equivalent to the HTTP\r\nstatus code.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response of an Add Custom Word request."}}}}
````

## The AddCustomWordSpecs object

```json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"AddCustomWordSpecs":{"type":"object","properties":{"customWordID":{"type":"string","description":"Custom Word object ID.","nullable":true},"word":{"type":"string","description":"Custom Word.","nullable":true},"definition":{"type":"string","description":"Definition of the Custom Word, in terms of sums and subtractions of existing words or custom words. <br> The syntax for a Custom Word definition is as follows: <code>word1 [+-] word2 [+-] word3...</code> If the operator is omitted it is assumed to be the last specified from the left, and if no operator has been specified it is assumed to be the sum. E.g.:<ul> <li><code>alpha beta gamma</code> is equivalent to <code>alpha + beta + gamma</code></li> <li><code>alpha beta - gamma delta</code> is equivalent to <code>alpha + beta - gamma - delta</code></li> </ul>","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false}}}}
```

## The AddExpertReferenceResponse object

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"AddExpertReferenceResponse":{"type":"object","properties":{"expertID":{"type":"string","description":"Expert Reference object ID.","nullable":true},"requestID":{"type":"integer","description":"Progressive number of the request (since the Server started).\r\nUse this number, together with the RequestDateTime property,\r\nto report an anomalous response.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous response.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is equivalent to the HTTP\r\nstatus code.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response of an Add Expert Reference request."}}}}
````

## The AddExpertReferenceSpecs object

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"AddExpertReferenceSpecs":{"type":"object","properties":{"expertID":{"type":"string","description":"Expert Reference object ID.\r\nReturned during Get operations.\r\nIgnored in other cases.","nullable":true},"name":{"type":"string","description":"Name of the expert.\r\nReturned during Get operations.\r\nRequired during Add operations.\r\nOptional during Update operations.","nullable":true},"description":{"type":"string","description":"Description of the expert, i.e. a list of the expert's skills and knowledge.\r\nReturned during Get operations.\r\nRequired during Add operations.\r\nOptional during Update operations.","nullable":true},"default":{"type":"boolean","description":"If ```True```, this expert is used when no other expert\r\nis competent for the current question.\r\nReturned during Get operations.\r\nOptional during Add operations.\r\nOptional during Update operations.","nullable":true},"expertMemoriID":{"type":"string","description":"ID of the expert Memori.\r\nReturned during Get operations.\r\nRequired during Add operations.\r\nOptional during Update operations.","nullable":true},"expertPassword":{"type":"string","description":"Password of the expert Memori. Required if the chained Memori is private or secret.\r\nOptional during Add operations and Update operations.\r\nIgnore in other cases.","nullable":true},"expertBaseURL":{"type":"string","description":"Base URL of a chained Memori, typically ```https://engine.memori.ai/```.\r\nReturned during Get operations.\r\nRequired during Add operations.\r\nOptional during Update operations.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false,"description":"Specifications for an Add Expert Reference request."}}}}
````

## The AddFunctionResponse object

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"AddFunctionResponse":{"type":"object","properties":{"functionID":{"type":"string","description":"Function object ID.","nullable":true},"requestID":{"type":"integer","description":"Progressive number of the request (since the Server started).\r\nUse this number, together with the RequestDateTime property,\r\nto report an anomalous response.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous response.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is equivalent to the HTTP\r\nstatus code.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response of an Add Function request."}}}}
````

## The AddFunctionSpecs object

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"AddFunctionSpecs":{"type":"object","properties":{"functionID":{"type":"string","description":"Function object ID.","nullable":true},"functionType":{"type":"string","description":"Function type, e.g. ```Internal``` or ```WebHook```.\r\nInternal functions are a limited subset implemented internally,\r\nwhile WebHook intents perform an external HTTP call to the\r\nspecified web hook, using the specified templates.\r\nRequired during Add operations.\r\nIgnored during Update operations.","nullable":true},"name":{"type":"string","description":"Name of the Function object.\r\nRequired during Add operations.","nullable":true},"description":{"type":"string","description":"Description of the Function object. The description is provided to the\r\ngenerative AI to help it understand the purpose of the function.\r\nRequired during Add operations.","nullable":true},"parameters":{"type":"array","items":{"$ref":"#/components/schemas/FunctionParameterSpecs"},"description":"List of its Function Parameter objects.\r\nMay be empty.","nullable":true},"webHook":{"type":"string","description":"HTTP URL of the web hook to be called when the function is invoked,\r\nup to the path part. The query string part is specified separately.\r\nIt may include the value of function parameters using the syntax ```{parameter}```,\r\nwhere \"parameter\" is the parameter name. E.g.: ```http://example.com/{param}/something```.\r\nIf the function is of Internal type, it is ignored.","nullable":true},"httpMethod":{"type":"string","description":"HTTP method to be used when calling the web hook, e.g. \"GET\", \"POST\" etc.\r\nIf the function is of Internal type, it is ignored.","nullable":true},"httpHeaders":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"Optional set of HTTP headers to be passed to the web hook.\r\nIf the function is of Internal type, it is ignored.","nullable":true},"httpQueryStringTemplate":{"type":"string","description":"Template of the HTTP query string to be passed to the web hook.\r\nIt may include the value of function parameters using the syntax ```{parameter}```,\r\nwhere \"parameter\" is the parameter name. E.g.: ```param1={param1}&param2={param2}```.\r\nIf the function is of Internal type, it is ignored.","nullable":true},"httpBodyTemplate":{"type":"string","description":"Template of the HTTP request body to be passed to the web hook.\r\nIt may be in any format (JSON, XML etc.), and may include the value of function \r\nparameters using the syntax ```{parameter}```, where \"parameter\"\r\nis the parameter name. E.g.: ```{ \"param1\": \"{param1}\", \"param2\": \"{param2}\" }```,\r\nor: ```<request><param1>{param1}</param1><param2>{param2}</param2></request>```.\r\nIf the function is of Internal type, it is ignored.","nullable":true},"httpBodyContentType":{"type":"string","description":"MIME type of the HTTP request body to be passed to the web hook.\r\nIf not specified \"text/plain\" is assumed.\r\nIf the function is of Internal type, it is ignored.","nullable":true},"sendExtensionHeaders":{"type":"array","items":{"type":"string"},"description":"List of extension headers to be sent to the web hook. Extension headers let the web hook receive internal information on the current state of the conversation, such as the session ID, current date and place, context variables etc. If the function is of Internal type, it is ignored. <br> Currently supported extension headers are:<ul> <li><code>SESSION-ID</code>: the current session ID, sent with header X-Memori-Session-ID</li> <li><code>CURRENT-TAG</code>: the current tag, sent with headers X-Memori-Current-Tag and X-Memori-Current-Tag-Authenticated</li> <li><code>CURRENT-DATE</code>: the current date in UTC, sent with header X-Memori-Current-Date</li> <li><code>CURRENT-PLACE</code>: the current place, sent with headers X-Memori-Current-Place-Name, X-Memori-Current-Place-Latitude, X-Memori-Current-Place-Longitude and X-Memori-Current-Place-UncertaintyKm</li> <li><code>CONTEXT-VARS</code>: the current context variables, sent with header X-Memori-Context-Vars, with the format NAME1:VALUE1,NAME2:VALUE2,...,NAMEn:VALUEn</li> <li><code>USER-EMAIL</code>: the current user email, sent with header X-Memori-User-Email</li> </ul>","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false,"description":"Specifications for an Add Function request."},"FunctionParameterSpecs":{"type":"object","properties":{"parameterID":{"type":"string","description":"Function Parameter object ID.","nullable":true},"name":{"type":"string","description":"Name of the Function Parameter object.\r\nRequired during Add operations.","nullable":true},"description":{"type":"string","description":"Description of the Function Parameter object. The description is provided to the\r\ngenerative AI to help it understand the purpose of the parameter.\r\nRequired during Add operations.","nullable":true},"parameterType":{"type":"string","description":"Parameter type, e.g. \"string\", \"number\", \"integer\", \"boolean\". Required during Add operations. <br> Currently supported types are:<ul> <li><code>string</code>: string value</li> <li><code>number</code>: floating point value</li> <li><code>integer</code>: integer value</li> <li><code>boolean</code>: boolean value</li> </ul>","nullable":true},"possibleValues":{"type":"array","items":{"type":"string"},"description":"Optional list of possible values of the parameter.\r\nIf empty or null, the parameter accepts any value of the specified type.","nullable":true},"required":{"type":"boolean","description":"Whether the parameter is required or not.\r\nDefault is not required.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false,"description":"Specifications of an Function Parameter object."}}}}
````

## The AddIntentResponse object

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"AddIntentResponse":{"type":"object","properties":{"intentID":{"type":"string","description":"Intent object ID.","nullable":true},"requestID":{"type":"integer","description":"Progressive number of the request (since the Server started).\r\nUse this number, together with the RequestDateTime property,\r\nto report an anomalous response.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous response.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is equivalent to the HTTP\r\nstatus code.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response of an Add Intent request."}}}}
````

## The AddIntentSlotResponse object

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"AddIntentSlotResponse":{"type":"object","properties":{"intentSlotID":{"type":"string","description":"Intent Slot object ID.","nullable":true},"requestID":{"type":"integer","description":"Progressive number of the request (since the Server started).\r\nUse this number, together with the RequestDateTime property,\r\nto report an anomalous response.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous response.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is equivalent to the HTTP\r\nstatus code.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response of an Add Intent Slot request."}}}}
````

## The AddIntentSlotSpecs object

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"AddIntentSlotSpecs":{"type":"object","properties":{"intentSlotID":{"type":"string","description":"Intent Slot object ID.","nullable":true},"name":{"type":"string","description":"Name of the Intent Slot object. It is part of the ```SlotWebHookRequest```\r\nrequest passed to the web hook.\r\nRequired during Add operations.","nullable":true},"values":{"type":"array","items":{"type":"string"},"description":"List of possible values of the slot.\r\nA slot may be composed of fixed values in this property,\r\ndynamic values fetched from the web hook, or a combination of both.\r\nEach value is considered only once (duplicate values are ignored).","nullable":true},"webHook":{"type":"string","description":"HTTP URL of the web hook to be called when the slot values must be fetched.\r\nMay be null if the slot is composed only of fixed values in\r\nthe ```Values``` property.\r\nIf specified, the web hook is called periodically with an HTTP POST call,\r\npassing a ```SlotWebHookRequest``` and expecting a ```SlotWebHookResponse```\r\nin response. Periodicity is determined by the ```ValidityMinutes``` property,\r\nwith a minimum of 0.5 (30 seconds).","nullable":true},"validityMinutes":{"type":"number","description":"Time to cache the slot values, expressed in minutes. May be\r\nfractional. A cached slot response is used only when the a subsequent slot request\r\nmatches exactly the original request.\r\nSee also ```RequestValidityMinutes``` in ```WebHookRequest```.","format":"double","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false,"description":"Specifications for an Add Intent Slot request."}}}}
````

## The AddIntentSpecs object

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"AddIntentSpecs":{"type":"object","properties":{"intentID":{"type":"string","description":"Intent object ID.","nullable":true},"intentType":{"type":"string","description":"Function type, e.g. ```Internal``` or ```WebHook```.\r\nInternal intents are a limited subset implemented internally,\r\nwhile WebHook intents perform an external HTTP POST call to the\r\nspecified web hook, passing an ```IntentWebHookRequest```\r\nand expecting an ```IntentWebHookResponse``` in response.\r\nRequired during Add operations.\r\nIgnored during Update operations.","nullable":true},"name":{"type":"string","description":"Name of the Intent object. It is part of the ```IntentWebHookRequest```\r\nrequest passed to the web hook.\r\nRequired during Add operations.","nullable":true},"utterances":{"type":"array","items":{"$ref":"#/components/schemas/UtteranceSpecs"},"description":"List of accepted Utterance objects for this Intent, i.e. the\r\nlist of text sentences that can be used to express the intent.\r\nUtterances may include variable parts in the sentence by the use of\r\none or more slots. Slots are specified using the syntax ```{slot}```,\r\nwhere \"slot\" is the slot name. If present, their value is part of the\r\n```IntentWebHookRequest``` passed to the web hook. Each slot\r\ncan be present only once in the sentence, and must have been previously\r\ndefined with a Intent Slot object.\r\nA special slot is the ```{date}``` slot, which represents a\r\nperiod of time such as \"today\", \"yesterday\", \"last week\", \"next month\" etc.\r\nIts values is passed in the ```IntentWebHookRequest``` as the\r\n```BeginUTC``` and ```EndUTC``` properties.\r\nRequired during Add operations.","nullable":true},"timeoutIntent":{"type":"boolean","description":"If ```True``` this Intent may be executed to serve a Timeout event\r\nin R1 state. In this case the utterance is null.\r\nIn case more than one Intent have this flag set, a random one is picked.","nullable":true},"webHook":{"type":"string","description":"HTTP URL of the web hook to be called when the intent is recognized.\r\nIf the intent is of Internal type, it is ignored.","nullable":true},"validityMinutes":{"type":"number","description":"Time to cache the intent response, expressed in minutes. May be\r\nfractional. A cached intent response is used only when the a subsequent intent request\r\nmatches exactly the original request.\r\nSee also ```RequestValidityMinutes``` in ```WebHookRequest```.","format":"double","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false,"description":"Specifications for an Add Intent request."},"UtteranceSpecs":{"type":"object","properties":{"utteranceID":{"type":"string","description":"Utterance object ID.","nullable":true},"text":{"type":"string","description":"Accepted Utterance object for its corresponding intent, i.e. the\r\ntext sentence that can be used to express the intent.\r\nAn Utterance may include variable parts in the sentence by the use of\r\none or more slots. Slots are specified using the syntax ```{slot}```,\r\nwhere \"slot\" is the slot name. If present, their value is part of the\r\n```IntentWebHookRequest``` passed to the web hook. Each slot\r\ncan be present only once in the sentence, and must have been previously\r\ndefined with a Intent Slot object.\r\nA special slot is the ```{date}``` slot, which represents a\r\nperiod of time such as \"today\", \"yesterday\", \"last week\", \"next month\" etc.\r\nIts values is passed in the ```IntentWebHookRequest``` as the\r\n```BeginUTC``` and ```EndUTC``` properties.\r\nRequired during Add operations.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false,"description":"Specifications of an Utterance object."}}}}
````

## The AddLocalizationKeyResponse object

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"AddLocalizationKeyResponse":{"type":"object","properties":{"localizationKey":{"$ref":"#/components/schemas/LocalizationKeySpecs"},"requestID":{"type":"integer","description":"Progressive number of the request (since the Server started).\r\nUse this number, together with the RequestDateTime property,\r\nto report an anomalous response.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous response.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is equivalent to the HTTP\r\nstatus code.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response of an Add Localization Key request."},"LocalizationKeySpecs":{"type":"object","properties":{"key":{"type":"string","description":"Localization Key.\r\nRequired during Add operations.\r\nIgnored during Update operations.","nullable":true},"value":{"type":"string","description":"Value of the Localization Key.\r\nRequired during Add and Update operations.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false,"description":"Specifications of a Localization Key."}}}}
````

## The AddLocalizationKeySpecs object

```json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"AddLocalizationKeySpecs":{"type":"object","properties":{"key":{"type":"string","description":"Localization Key.\r\nRequired during Add operations.\r\nIgnored during Update operations.","nullable":true},"value":{"type":"string","description":"Value of the Localization Key.\r\nRequired during Add and Update operations.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false}}}}
```

## The AddMediumResponse object

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"AddMediumResponse":{"type":"object","properties":{"mediumID":{"type":"string","description":"Medium object ID.","nullable":true},"requestID":{"type":"integer","description":"Progressive number of the request (since the Server started).\r\nUse this number, together with the RequestDateTime property,\r\nto report an anomalous response.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous response.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is equivalent to the HTTP\r\nstatus code.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response of an Add Medium request."}}}}
````

## The AddMemoryResponse object

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"AddMemoryResponse":{"type":"object","properties":{"memoryID":{"type":"string","description":"Memory object ID.","nullable":true},"requestID":{"type":"integer","description":"Progressive number of the request (since the Server started).\r\nUse this number, together with the RequestDateTime property,\r\nto report an anomalous response.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous response.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is equivalent to the HTTP\r\nstatus code.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response of an Add Memory request."}}}}
````

## The AddMemorySpecs object

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"AddMemorySpecs":{"type":"object","properties":{"memoryID":{"type":"string","description":"Memory object ID.","nullable":true},"memoryType":{"type":"string","description":"Memory type, e.g. <code>Question</code>, <code>Story</code> or <code>Default</code>. Required during Add operations. <br> Currently possible values are:<ul> <li><code>Question</code>: this Memory is a question, hence its title is expected in interrogative form</li> <li><code>Story</code>: this Memory is a story, hence its title is expected in affirmative form</li> <li><code>Default</code>: this Memory is a default answer, hence its title is ignored (empty or null)</li> <li><code>CompletionDraft</code>: this Memory is draft from a completion, obtained via a generative AI.</li> <li><code>ExpertReference</code>: this Memory is the results of a question asked to a Board of Experts, and the answer is the name of the Expert that replied to the question.</li> </ul>","nullable":true},"lastRead":{"type":"string","description":"Timestamp of the last time this Memory has been shown to a Receiver.\r\nThis value is also used when picking random memories to avoid showing\r\nmemories that have already been shown recently.\r\n```Null``` if the Memory has not been shown yet.","format":"date-time","nullable":true},"readOccurrences":{"type":"integer","description":"Number of times this Memory has been shown to a Receiver.\r\n```Null``` if the Memory has not been shown yet.","format":"int32","nullable":true},"receiverID":{"type":"string","description":"ID of the Person object to whom this Memory belongs.\r\n```Null``` if the Memory is public. When updating,\r\nset it to a single dash character (```-```) to remove a\r\npreviously set association with a Person.","nullable":true},"receiverTag":{"type":"string","description":"Tag of the Person object to whom this Memory belongs.\r\n```Null``` if the Memory is public.","nullable":true},"receiverName":{"type":"string","description":"Name of the Person object to whom this Memory belongs.\r\n```Null``` if the Memory is public.","nullable":true},"media":{"type":"array","items":{"$ref":"#/components/schemas/MediumSpecs"},"description":"List of Medium objects associated with this Memory.\r\nMay be empty.","nullable":true},"title":{"type":"string","description":"Title of the Question or Story.\r\nNull if this Memory is a Default.","nullable":true},"titleVariants":{"type":"array","items":{"type":"string"},"description":"Title variants of this Question or Story.\r\nEmpty if this Memory is a Default.","nullable":true},"answers":{"type":"array","items":{"$ref":"#/components/schemas/AnswerSpecs"},"description":"List of its Answer objects.\r\nAt least one answer must be present.","nullable":true},"date":{"type":"string","description":"Approximate date associated with this Memory.\r\nWhen updating, set it to midnight Jan. 1st 1 A.D.\r\n(```01/01/01 00:00:00```) to clear any previously set\r\nDate and DateUncertaintyDays.","format":"date-time","nullable":true},"dateUncertaintyDays":{"type":"number","description":"Uncertainty in the date associated with this Memory,\r\nexpressed in days.","format":"double","nullable":true},"placeName":{"type":"string","description":"Name of the place associated with this Memory.\r\nWhen updating, set it to a single dash character\r\n(```-```) to clear any previously set Place (by name or\r\ncoordinates) and PlaceUncertaintyKm.","nullable":true},"placeLatitude":{"type":"number","description":"Latitude of the place associated with this Memory.","format":"double","nullable":true},"placeLongitude":{"type":"number","description":"Longitude of the place associated with this Memory.","format":"double","nullable":true},"placeUncertaintyKm":{"type":"number","description":"Uncertainty of the place associated with this Memory,\r\nexpressed in kilometers.","format":"double","nullable":true},"conclusive":{"type":"boolean","description":"If ```True```, when this Memory is emitted it is NOT followed by a continuation prompt,\r\nsuch as \"Is there anything else you want to know?\".","nullable":true},"notPickable":{"type":"boolean","description":"If ```True```, this Memory can't be randomly picked with a Timeout Event, or\r\nexplicitly searching for random Memory objects.\r\nIgnored for Memory of type Default.","nullable":true},"help":{"type":"boolean","description":"If ```True```, this Memory's content can be emitted if the user fails\r\nto find a question with an answer at the beginning of a session.\r\nIgnored for Memory of type Default.","nullable":true},"hints":{"type":"array","items":{"type":"string"},"description":"Hints for this Memory.","nullable":true},"minTimeout":{"type":"number","description":"Minimum idle timeout, in seconds. If not specified, by default it is set to 20 seconds. <br> The idle timeout is the time after which the client sends a Timeout event and, typically, a random question or story is picked up and proposed to the user. The actual idle timeout is computed as a random number between <code>MinTimeout</code> and <code>MaxTimeout</code> plus the reading time, where the reading time is in turn computed as the time it would take to read the answer at 150 words per minute.","format":"double","nullable":true},"maxTimeout":{"type":"number","description":"Maximum idle timeout, in seconds. If not specified, by default it is set to 40 seconds. <br> The idle timeout is the time after which the client sends a Timeout event and, typically, a random question or story is picked up and proposed to the user. The actual idle timeout is computed as a random number between <code>MinTimeout</code> and <code>MaxTimeout</code> plus the reading time, where the reading time is in turn computed as the time it would take to read the answer at 150 words per minute.","format":"double","nullable":true},"contextVarsToSet":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"List of variable-value pairs to be used to alter the context when this Memory is matched.\r\nUse the special value ```-``` (a single dash character) to clear a context variable.","nullable":true},"contextVarsToMatch":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"List of variable-value pairs to be used to match this Memory with the context. If the context\r\ncontains a variable listed here, the value must match for the Memory to match.","nullable":true},"dcmOutcomeType":{"type":"string","description":"Optional type of the outcome to be sent to the DCM platform when this Memory is emitted.","nullable":true},"dcmOutcomeCode":{"type":"string","description":"Optional code of the outcome to be sent to the DCM platform when this Memory is emitted.","nullable":true},"tags":{"type":"array","items":{"type":"string"},"description":"Tags for this Memory.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false,"description":"Specifications for an Add Memory request."},"MediumSpecs":{"type":"object","properties":{"mediumID":{"type":"string","description":"Medium object ID.","nullable":true},"url":{"type":"string","description":"URL of the Medium. If specified, the Content property must be ```Null```.\r\nUse this property to link large amounts of data stored externally.\r\nIf the amount of data is modest the Content property may be used as an alternative.","nullable":true},"content":{"type":"string","description":"Content of the Medium. If specified, the URL property must be ```Null```.\r\nDon't use this property to store large amounts of data. Can be used to store limited \r\ntext for a maximum of 10 KiB. For larger amounts store the data externally and link it\r\nvia the URL property.","nullable":true},"mimeType":{"type":"string","description":"MIME type of the Medium.\r\nRequired during Add operations.","nullable":true},"title":{"type":"string","description":"Title of the Medium.","nullable":true},"properties":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"Key-value pairs for additional structured content storage.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false,"description":"Specifications of a Medium object."},"AnswerSpecs":{"type":"object","properties":{"text":{"type":"string","description":"Text of the Answer.\r\nRequired during Add operations.","nullable":true},"preformatted":{"type":"boolean","description":"If ```True```, when this Answer is emitted no reformatting is applied.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false,"description":"Specifications of an Answer object."}}}}
````

## The AddPersonResponse object

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"AddPersonResponse":{"type":"object","properties":{"personID":{"type":"string","description":"Person object ID.","nullable":true},"requestID":{"type":"integer","description":"Progressive number of the request (since the Server started).\r\nUse this number, together with the RequestDateTime property,\r\nto report an anomalous response.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous response.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is equivalent to the HTTP\r\nstatus code.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response of an Add Person request."}}}}
````

## The AddPersonSpecs object

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"AddPersonSpecs":{"type":"object","properties":{"personID":{"type":"string","description":"Person object ID.","nullable":true},"personType":{"type":"string","description":"Person type, e.g. ```Giver``` or ```Receiver```.\r\nRequired during Add operations.","nullable":true},"name":{"type":"string","description":"Person name.\r\nMay be ```Null``` only when the Person object is created by\r\nthe Dialog State Machine and the name has not been set yet.","nullable":true},"information":{"type":"string","description":"Person information.\r\nCurrently this is a free (unprocessed) text.","nullable":true},"pin":{"type":"string","description":"Person PIN. Must be a code between ```000000``` and ```999999```.\r\nMay be ```Null``` only when the Person object is created by\r\nthe Dialog State Machine and the PIN has not been set yet.\r\nRequired during Add operations.","nullable":true},"tag":{"type":"string","description":"Person tag.\r\nCan be any publicly visible string that the person recognizes as distinctive.\r\nTypically it is an emoji symbol, but could also be an RFID code or\r\nsomething else.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false,"description":"Specifications for an Add Person request."}}}}
````

## The AddUnansweredQuestionResponse object

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"AddUnansweredQuestionResponse":{"type":"object","properties":{"unansweredQuestionID":{"type":"string","description":"Unanswered Question object ID.","nullable":true},"requestID":{"type":"integer","description":"Progressive number of the request (since the Server started).\r\nUse this number, together with the RequestDateTime property,\r\nto report an anomalous response.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous response.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is equivalent to the HTTP\r\nstatus code.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response of an Add Unanswered Question request."}}}}
````

## The AddUnansweredQuestionSpecs object

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"AddUnansweredQuestionSpecs":{"type":"object","properties":{"unansweredQuestionID":{"type":"string","description":"Unanswered Question object ID.","nullable":true},"text":{"type":"string","description":"Text of the question.","nullable":true},"contextVars":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"Current context at the time the questions was asked.","nullable":true},"occurrences":{"type":"integer","description":"Number of times the question has been asked.","format":"int32"},"receiverID":{"type":"string","description":"ID of the Person object who initially asked this question.\r\n```Null``` if the question was asked anonymously.","nullable":true},"receiverTag":{"type":"string","description":"Tag of the Person object who initially asked this question.\r\n```Null``` if the question was asked anonymously.","nullable":true},"receiverName":{"type":"string","description":"Name of the Person object who initially asked this question.\r\n```Null``` if the Memory is public.","nullable":true},"suggestions":{"type":"array","items":{"$ref":"#/components/schemas/MatchSpecs"},"description":"Suggested Memory objects for this question, with confidence level.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false},"MatchSpecs":{"type":"object","properties":{"memory":{"$ref":"#/components/schemas/MemorySpecs"},"confidence":{"type":"number","description":"Match confidence, between ```0.0``` (no confidence) and\r\n```1.0``` (full confidence).","format":"double"},"confidenceLevel":{"type":"string","description":"Confidence level, e.g. ```LOW```, ```MEDIUM``` or ```HIGH```.","nullable":true}},"additionalProperties":false,"description":"Specifications of a Match object."},"MemorySpecs":{"type":"object","properties":{"memoryID":{"type":"string","description":"Memory object ID.","nullable":true},"memoryType":{"type":"string","description":"Memory type, e.g. <code>Question</code>, <code>Story</code> or <code>Default</code>. Required during Add operations. <br> Currently possible values are:<ul> <li><code>Question</code>: this Memory is a question, hence its title is expected in interrogative form</li> <li><code>Story</code>: this Memory is a story, hence its title is expected in affirmative form</li> <li><code>Default</code>: this Memory is a default answer, hence its title is ignored (empty or null)</li> <li><code>CompletionDraft</code>: this Memory is draft from a completion, obtained via a generative AI.</li> <li><code>ExpertReference</code>: this Memory is the results of a question asked to a Board of Experts, and the answer is the name of the Expert that replied to the question.</li> </ul>","nullable":true},"lastRead":{"type":"string","description":"Timestamp of the last time this Memory has been shown to a Receiver.\r\nThis value is also used when picking random memories to avoid showing\r\nmemories that have already been shown recently.\r\n```Null``` if the Memory has not been shown yet.","format":"date-time","nullable":true},"readOccurrences":{"type":"integer","description":"Number of times this Memory has been shown to a Receiver.\r\n```Null``` if the Memory has not been shown yet.","format":"int32","nullable":true},"receiverID":{"type":"string","description":"ID of the Person object to whom this Memory belongs.\r\n```Null``` if the Memory is public. When updating,\r\nset it to a single dash character (```-```) to remove a\r\npreviously set association with a Person.","nullable":true},"receiverTag":{"type":"string","description":"Tag of the Person object to whom this Memory belongs.\r\n```Null``` if the Memory is public.","nullable":true},"receiverName":{"type":"string","description":"Name of the Person object to whom this Memory belongs.\r\n```Null``` if the Memory is public.","nullable":true},"media":{"type":"array","items":{"$ref":"#/components/schemas/MediumSpecs"},"description":"List of Medium objects associated with this Memory.\r\nMay be empty.","nullable":true},"title":{"type":"string","description":"Title of the Question or Story.\r\nNull if this Memory is a Default.","nullable":true},"titleVariants":{"type":"array","items":{"type":"string"},"description":"Title variants of this Question or Story.\r\nEmpty if this Memory is a Default.","nullable":true},"answers":{"type":"array","items":{"$ref":"#/components/schemas/AnswerSpecs"},"description":"List of its Answer objects.\r\nAt least one answer must be present.","nullable":true},"date":{"type":"string","description":"Approximate date associated with this Memory.\r\nWhen updating, set it to midnight Jan. 1st 1 A.D.\r\n(```01/01/01 00:00:00```) to clear any previously set\r\nDate and DateUncertaintyDays.","format":"date-time","nullable":true},"dateUncertaintyDays":{"type":"number","description":"Uncertainty in the date associated with this Memory,\r\nexpressed in days.","format":"double","nullable":true},"placeName":{"type":"string","description":"Name of the place associated with this Memory.\r\nWhen updating, set it to a single dash character\r\n(```-```) to clear any previously set Place (by name or\r\ncoordinates) and PlaceUncertaintyKm.","nullable":true},"placeLatitude":{"type":"number","description":"Latitude of the place associated with this Memory.","format":"double","nullable":true},"placeLongitude":{"type":"number","description":"Longitude of the place associated with this Memory.","format":"double","nullable":true},"placeUncertaintyKm":{"type":"number","description":"Uncertainty of the place associated with this Memory,\r\nexpressed in kilometers.","format":"double","nullable":true},"conclusive":{"type":"boolean","description":"If ```True```, when this Memory is emitted it is NOT followed by a continuation prompt,\r\nsuch as \"Is there anything else you want to know?\".","nullable":true},"notPickable":{"type":"boolean","description":"If ```True```, this Memory can't be randomly picked with a Timeout Event, or\r\nexplicitly searching for random Memory objects.\r\nIgnored for Memory of type Default.","nullable":true},"help":{"type":"boolean","description":"If ```True```, this Memory's content can be emitted if the user fails\r\nto find a question with an answer at the beginning of a session.\r\nIgnored for Memory of type Default.","nullable":true},"hints":{"type":"array","items":{"type":"string"},"description":"Hints for this Memory.","nullable":true},"minTimeout":{"type":"number","description":"Minimum idle timeout, in seconds. If not specified, by default it is set to 20 seconds. <br> The idle timeout is the time after which the client sends a Timeout event and, typically, a random question or story is picked up and proposed to the user. The actual idle timeout is computed as a random number between <code>MinTimeout</code> and <code>MaxTimeout</code> plus the reading time, where the reading time is in turn computed as the time it would take to read the answer at 150 words per minute.","format":"double","nullable":true},"maxTimeout":{"type":"number","description":"Maximum idle timeout, in seconds. If not specified, by default it is set to 40 seconds. <br> The idle timeout is the time after which the client sends a Timeout event and, typically, a random question or story is picked up and proposed to the user. The actual idle timeout is computed as a random number between <code>MinTimeout</code> and <code>MaxTimeout</code> plus the reading time, where the reading time is in turn computed as the time it would take to read the answer at 150 words per minute.","format":"double","nullable":true},"contextVarsToSet":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"List of variable-value pairs to be used to alter the context when this Memory is matched.\r\nUse the special value ```-``` (a single dash character) to clear a context variable.","nullable":true},"contextVarsToMatch":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"List of variable-value pairs to be used to match this Memory with the context. If the context\r\ncontains a variable listed here, the value must match for the Memory to match.","nullable":true},"dcmOutcomeType":{"type":"string","description":"Optional type of the outcome to be sent to the DCM platform when this Memory is emitted.","nullable":true},"dcmOutcomeCode":{"type":"string","description":"Optional code of the outcome to be sent to the DCM platform when this Memory is emitted.","nullable":true},"tags":{"type":"array","items":{"type":"string"},"description":"Tags for this Memory.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false,"description":"Specifications of a Memory object."},"MediumSpecs":{"type":"object","properties":{"mediumID":{"type":"string","description":"Medium object ID.","nullable":true},"url":{"type":"string","description":"URL of the Medium. If specified, the Content property must be ```Null```.\r\nUse this property to link large amounts of data stored externally.\r\nIf the amount of data is modest the Content property may be used as an alternative.","nullable":true},"content":{"type":"string","description":"Content of the Medium. If specified, the URL property must be ```Null```.\r\nDon't use this property to store large amounts of data. Can be used to store limited \r\ntext for a maximum of 10 KiB. For larger amounts store the data externally and link it\r\nvia the URL property.","nullable":true},"mimeType":{"type":"string","description":"MIME type of the Medium.\r\nRequired during Add operations.","nullable":true},"title":{"type":"string","description":"Title of the Medium.","nullable":true},"properties":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"Key-value pairs for additional structured content storage.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false,"description":"Specifications of a Medium object."},"AnswerSpecs":{"type":"object","properties":{"text":{"type":"string","description":"Text of the Answer.\r\nRequired during Add operations.","nullable":true},"preformatted":{"type":"boolean","description":"If ```True```, when this Answer is emitted no reformatting is applied.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false,"description":"Specifications of an Answer object."}}}}
````

## The AnswerSpecs object

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"AnswerSpecs":{"type":"object","properties":{"text":{"type":"string","description":"Text of the Answer.\r\nRequired during Add operations.","nullable":true},"preformatted":{"type":"boolean","description":"If ```True```, when this Answer is emitted no reformatting is applied.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false,"description":"Specifications of an Answer object."}}}}
````

## The ChangeDateSpecs object

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"ChangeDateSpecs":{"type":"object","properties":{"date":{"type":"string","description":"New date, in the format ```yyyy/MM/dd HH:mm:ss zzz```,\r\ne.g. ```2020/01/01 09:30:00 +02```.\r\nRequired.","nullable":true}},"additionalProperties":false,"description":"Specifications for a Date Changed event. A Date Changed event changes the Current Date:\r\nthe State Machine will use the new date for subsequent question resolution."}}}}
````

## The ChangePlaceSpecs object

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"ChangePlaceSpecs":{"type":"object","properties":{"placeName":{"type":"string","description":"Name of the new place, e.g. ```London```.\r\nIf it is the only field specified, it is geocoded into latitude, longitude and uncertainty.\r\nOn the other hand, if latitude and longitude are specified, the place name is stored without\r\nchecking it.","nullable":true},"latitude":{"type":"number","description":"Latitude of the new place, if known. E.g. ```51.5285582```.\r\nIf specified, the longitude must also be specified. Otherwise it is ignored.","format":"double","nullable":true},"longitude":{"type":"number","description":"Longitude of the new place, if known. E.g. ```-0.2416791```.\r\nIf specified, the latitude must also be specified. Otherwise it is ignored.","format":"double","nullable":true},"uncertaintyKm":{"type":"number","description":"Radius of uncertainty of the new place, in kilometers. E.g. ```20.0```.","format":"double","nullable":true}},"additionalProperties":false,"description":"Specifications for a Place Changed event. A Place Changed event changes the Current Place:\r\nthe State Machine will use the new place for subsequent question resolution."}}}}
````

## The ChangeTagSpecs object

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"ChangeTagSpecs":{"type":"object","properties":{"tag":{"type":"string","description":"New tag. For the anonymous/null tag use the ```👤``` emoji symbol.\r\nRequired.","nullable":true}},"additionalProperties":false,"description":"Specifications for a Tag Changed event. A Tag Changed event changes the Current Tag and is\r\nconsidered a change of the current user. The State Machine may ask for authentication, and if\r\nsuccessful will use the new tag for subsequent question resolution."}}}}
````

## The ChatLineSpecs object

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"ChatLineSpecs":{"type":"object","properties":{"timestamp":{"type":"string","description":"Timestamp UTC of the line.","format":"date-time"},"inbound":{"type":"boolean","description":"If ```True``` the line is the text from a Text Entered Event.\r\nIf ```False``` the line is Dialog State Machine emission."},"completion":{"type":"boolean","description":"If ```True``` the text is a completion obtained via\r\na generative AI.\r\nCan only be ```True``` for outbound lines."},"acceptsFeedback":{"type":"boolean","description":"If ```True``` the line is the result of a high confidence\r\nMemory object match, and as such can be subject to feedback.\r\nCan only be ```True``` for outbound lines."},"text":{"type":"string","description":"Text of the line.","nullable":true},"emitter":{"type":"string","description":"Name of the Memori that provided the text. Used with Board of Experts model.\r\n```Null``` for inbound lines, if no Board of Experts is configured,\r\nor if the Memori providing the text is the chairman of the Board.","nullable":true},"media":{"type":"array","items":{"$ref":"#/components/schemas/ChatMediumSpecs"},"description":"Media attached with the Dialog State Machine emission, if present.\r\nEmpty if the line is inbound.","nullable":true},"memoryID":{"type":"string","description":"ID of the Memory object referenced in this line.","nullable":true},"contextVars":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"Dialog State Machine context variables after the emission, if present.\r\nEmpty if the line is inbound.","nullable":true},"llmUsage":{"$ref":"#/components/schemas/InteractionLLMUsage"}},"additionalProperties":false,"description":"Specifications of a Chat Line object."},"ChatMediumSpecs":{"type":"object","properties":{"url":{"type":"string","description":"URL of the Medium. If specified, the Content property is ```Null```.","nullable":true},"content":{"type":"string","description":"Content of the Medium. If specified, the URL property is ```Null```.","nullable":true},"mimeType":{"type":"string","description":"MIME type of the Medium.","nullable":true},"title":{"type":"string","description":"Title of the Medium.","nullable":true},"properties":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"Key-value pairs for additional structured content storage.","nullable":true}},"additionalProperties":false,"description":"Specifications of a Chat Medium object."},"InteractionLLMUsage":{"type":"object","properties":{"provider":{"type":"string","nullable":true},"model":{"type":"string","nullable":true},"totalInputTokens":{"type":"integer","format":"int32"},"inputCacheReadTokens":{"type":"integer","format":"int32"},"inputCacheWriteTokens":{"type":"integer","format":"int32"},"outputTokens":{"type":"integer","format":"int32"},"durationMs":{"type":"integer","format":"int32"},"energyImpact":{"$ref":"#/components/schemas/InteractionEnergyImpact"}},"additionalProperties":false},"InteractionEnergyImpact":{"type":"object","properties":{"energy":{"type":"number","format":"double","nullable":true},"energyUnit":{"type":"string","nullable":true},"gwp":{"type":"number","format":"double","nullable":true},"gwpUnit":{"type":"string","nullable":true},"adPe":{"type":"number","format":"double","nullable":true},"adPeUnit":{"type":"string","nullable":true},"pe":{"type":"number","format":"double","nullable":true},"peUnit":{"type":"string","nullable":true},"wcf":{"type":"number","format":"double","nullable":true},"wcfUnit":{"type":"string","nullable":true}},"additionalProperties":false}}}}
````

## The ChatLogSpecs object

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"ChatLogSpecs":{"type":"object","properties":{"chatLogID":{"type":"string","description":"Chat Log object ID.","nullable":true},"timestamp":{"type":"string","description":"Timestamp UTC of the chat log creation.","format":"date-time"},"memoriID":{"type":"string","description":"ID of the related Memori object.","nullable":true},"userID":{"type":"string","description":"ID of the related User object.\r\nMay be null if no User is associated with the session.","nullable":true},"userAgent":{"type":"string","description":"The user agent information associated with the chat session.","nullable":true},"ipAddress":{"type":"string","description":"The IP address associated with a chat log or event.","nullable":true},"eMail":{"type":"string","description":"The email address of the user associated with the chat log.","nullable":true},"sessionID":{"type":"string","description":"ID of the related session.","nullable":true},"boardOfExperts":{"type":"boolean","description":"True if this chat log was performed with the Memori\r\nconfigured as a Board of Experts."},"receiverTag":{"type":"string","description":"Tag of the Person object authenticated in the session.\r\n```Null``` if anonymous performed the chat.","nullable":true},"continuesFrom":{"$ref":"#/components/schemas/ChatLogSpecs"},"continuesTo":{"type":"array","items":{"$ref":"#/components/schemas/ChatLogSpecs"},"description":"If set, this chat log continues in the pointed chat logs. <br> The pointed Chat Log objects are only proxies for listing purposes: they do not contain their Chat Line objects. If they, in turn, have continues, their ContinuesTo property is NOT set.","nullable":true},"lines":{"type":"array","items":{"$ref":"#/components/schemas/ChatLineSpecs"},"description":"List of the current chat's Chat Line objects.","nullable":true}},"additionalProperties":false,"description":"Specifications of a Chat Log object."},"ChatLineSpecs":{"type":"object","properties":{"timestamp":{"type":"string","description":"Timestamp UTC of the line.","format":"date-time"},"inbound":{"type":"boolean","description":"If ```True``` the line is the text from a Text Entered Event.\r\nIf ```False``` the line is Dialog State Machine emission."},"completion":{"type":"boolean","description":"If ```True``` the text is a completion obtained via\r\na generative AI.\r\nCan only be ```True``` for outbound lines."},"acceptsFeedback":{"type":"boolean","description":"If ```True``` the line is the result of a high confidence\r\nMemory object match, and as such can be subject to feedback.\r\nCan only be ```True``` for outbound lines."},"text":{"type":"string","description":"Text of the line.","nullable":true},"emitter":{"type":"string","description":"Name of the Memori that provided the text. Used with Board of Experts model.\r\n```Null``` for inbound lines, if no Board of Experts is configured,\r\nor if the Memori providing the text is the chairman of the Board.","nullable":true},"media":{"type":"array","items":{"$ref":"#/components/schemas/ChatMediumSpecs"},"description":"Media attached with the Dialog State Machine emission, if present.\r\nEmpty if the line is inbound.","nullable":true},"memoryID":{"type":"string","description":"ID of the Memory object referenced in this line.","nullable":true},"contextVars":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"Dialog State Machine context variables after the emission, if present.\r\nEmpty if the line is inbound.","nullable":true},"llmUsage":{"$ref":"#/components/schemas/InteractionLLMUsage"}},"additionalProperties":false,"description":"Specifications of a Chat Line object."},"ChatMediumSpecs":{"type":"object","properties":{"url":{"type":"string","description":"URL of the Medium. If specified, the Content property is ```Null```.","nullable":true},"content":{"type":"string","description":"Content of the Medium. If specified, the URL property is ```Null```.","nullable":true},"mimeType":{"type":"string","description":"MIME type of the Medium.","nullable":true},"title":{"type":"string","description":"Title of the Medium.","nullable":true},"properties":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"Key-value pairs for additional structured content storage.","nullable":true}},"additionalProperties":false,"description":"Specifications of a Chat Medium object."},"InteractionLLMUsage":{"type":"object","properties":{"provider":{"type":"string","nullable":true},"model":{"type":"string","nullable":true},"totalInputTokens":{"type":"integer","format":"int32"},"inputCacheReadTokens":{"type":"integer","format":"int32"},"inputCacheWriteTokens":{"type":"integer","format":"int32"},"outputTokens":{"type":"integer","format":"int32"},"durationMs":{"type":"integer","format":"int32"},"energyImpact":{"$ref":"#/components/schemas/InteractionEnergyImpact"}},"additionalProperties":false},"InteractionEnergyImpact":{"type":"object","properties":{"energy":{"type":"number","format":"double","nullable":true},"energyUnit":{"type":"string","nullable":true},"gwp":{"type":"number","format":"double","nullable":true},"gwpUnit":{"type":"string","nullable":true},"adPe":{"type":"number","format":"double","nullable":true},"adPeUnit":{"type":"string","nullable":true},"pe":{"type":"number","format":"double","nullable":true},"peUnit":{"type":"string","nullable":true},"wcf":{"type":"number","format":"double","nullable":true},"wcfUnit":{"type":"string","nullable":true}},"additionalProperties":false}}}}
````

## The ChatMediumSpecs object

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"ChatMediumSpecs":{"type":"object","properties":{"url":{"type":"string","description":"URL of the Medium. If specified, the Content property is ```Null```.","nullable":true},"content":{"type":"string","description":"Content of the Medium. If specified, the URL property is ```Null```.","nullable":true},"mimeType":{"type":"string","description":"MIME type of the Medium.","nullable":true},"title":{"type":"string","description":"Title of the Medium.","nullable":true},"properties":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"Key-value pairs for additional structured content storage.","nullable":true}},"additionalProperties":false,"description":"Specifications of a Chat Medium object."}}}}
````

## The CheckNSFWResponse object

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"CheckNSFWResponse":{"type":"object","properties":{"nsfw":{"type":"boolean","description":"True if the checked content is considered NSFW."},"requestID":{"type":"integer","description":"Progressive number of the request (since the Server started).\r\nUse this number, together with the RequestDateTime property,\r\nto report an anomalous response.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous response.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is equivalent to the HTTP\r\nstatus code.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response of a Check NSFW request."}}}}
````

## The CheckUndefinedWordsResponse object

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"CheckUndefinedWordsResponse":{"type":"object","properties":{"undefinedWords":{"type":"array","items":{"type":"string"},"description":"List of words missing from the word vector dictionary.","nullable":true},"requestID":{"type":"integer","description":"Progressive number of the request (since the Server started).\r\nUse this number, together with the RequestDateTime property,\r\nto report an anomalous response.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous response.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is equivalent to the HTTP\r\nstatus code.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response of a Check Undefined Words request."}}}}
````

## The ComputeSentencesSimilarityResponse object

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"ComputeSentencesSimilarityResponse":{"type":"object","properties":{"similarity":{"type":"number","description":"Similarity index, between 0.0 (totally different) and 1.0 (identical).","format":"float"},"similarityLevel":{"type":"string","description":"Similarity level, i.e. none, low, medium or high. <br> Currently supported similarity levels are:<ul> <li><code>NONE</code></li> <li><code>LOW</code></li> <li><code>MEDIUM</code></li> <li><code>HIGH</code></li> </ul>","nullable":true},"requestID":{"type":"integer","description":"Progressive number of the request (since the Server started).\r\nUse this number, together with the RequestDateTime property,\r\nto report an anomalous response.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous response.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is equivalent to the HTTP\r\nstatus code.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response of a Compute Sentences Similarity request."}}}}
````

## The CorrelationPairSpecs object

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"CorrelationPairSpecs":{"type":"object","properties":{"pairID":{"type":"string","description":"Correlation Pair object ID.","nullable":true},"text1":{"type":"string","description":"First text of the Correlation Pair, typically a question coming from a Receiver.","nullable":true},"text2":{"type":"string","description":"Second text of the Correlation Pair, typically the original question introduced by the Giver.","nullable":true},"correlated":{"type":"boolean","description":"```True``` if the texts must be considered correlated."},"occurrences":{"type":"integer","description":"Number of times these the first text has been correlated to the second.","format":"int32"},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false,"description":"Specifications of a Correlation Pair object."}}}}
````

## The CurrentStateResponse object

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"CurrentStateResponse":{"type":"object","properties":{"currentState":{"$ref":"#/components/schemas/DialogStateSpecs"},"requestID":{"type":"integer","description":"Progressive number of the request (since the Server started).\r\nUse this number, together with the RequestDateTime property,\r\nto report an anomalous response.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous response.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is equivalent to the HTTP\r\nstatus code.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Base response for requests reporting or affecting the Dialog State Machine's state."},"DialogStateSpecs":{"type":"object","properties":{"state":{"type":"string","description":"Current state of the Dialog State Machine, eg. ```R1```, ```G3``` etc.","nullable":true},"stateName":{"type":"string","description":"Name of the current state of the Dialog State Machine, e.g. ```WaitingForReceiverQuestion``` etc.","nullable":true},"previousState":{"type":"string","description":"Previous state of the Dialog State Machine, eg. ```I0```, ```G2b``` etc.","nullable":true},"confidence":{"type":"number","description":"Confidence of understanding of the entered text, with ```0.0``` no\r\nunderstanding at all and ```1.0``` certain understanding. ```Null``` if\r\nthe state transition did not require any natural language understanding.","format":"float","nullable":true},"confidenceLevel":{"type":"string","description":"Confidence level, e.g. ```NONE```, ```LOW```,\r\n```MEDIUM``` or ```HIGH```. ```Null``` if\r\nthe state transition did not require any natural language\r\nunderstanding.","nullable":true},"emission":{"type":"string","description":"Emission from the Dialog State Machine transition. ```Null``` if\r\nthe previous state transition did not emit any text.","nullable":true},"emittedMedia":{"type":"array","items":{"$ref":"#/components/schemas/MediumSpecs"},"description":"List of Medium objects associated with the emission of the state transition.","nullable":true},"media":{"type":"array","items":{"$ref":"#/components/schemas/MediumSpecs"},"description":"Obsolete. List of Medium objects associated with the emission of the state transition.\r\nUse EmittedMedia instead.","nullable":true,"deprecated":true},"continuationEmitted":{"type":"boolean","description":"```True``` if the emission contains a continuation prompts,\r\n            such as \"Is there anything else you want to ask me?\"."},"emitter":{"type":"string","description":"Name of the Memori that provided this emission. Used with Board of Experts model.\r\n```Null``` if no Board of Experts is configured, or if the Memori\r\nproviding the emission is the chairman of the Board.","nullable":true},"completion":{"type":"boolean","description":"```True``` if the emission has been obtained with a\r\n            completion from a generative AI."},"acceptsTimeout":{"type":"boolean","description":"```True``` if the current state accepts a Timeout event.\r\n            Sending a Timeout event to a state that does not accept it\r\n            causes no transition. The event is simply ignored."},"acceptsAbort":{"type":"boolean","description":"```True``` if the current state can be aborted.\r\n            Trying to abort event a state that does not accept it\r\n            causes no transition. It is simply ignored."},"acceptsMedia":{"type":"boolean","description":"```True``` if the current state accepts a MediumSelected event.\r\n            Trying to send a MediumSelected event to a state that does not accept it\r\n            causes no transition. It is simply ignored."},"acceptsDate":{"type":"boolean","description":"```True``` if the current state accepts a DateSelected event.\r\n            Trying to send a DateSelected event to a state that does not accept it\r\n            causes no transition. It is simply ignored."},"acceptsPlace":{"type":"boolean","description":"```True``` if the current state accepts a PlaceSelected event.\r\n            Trying to send a PlaceSelected event to a state that does not accept it\r\n            causes no transition. It is simply ignored."},"acceptsTag":{"type":"boolean","description":"```True``` if the current state accepts a TagSelected event.\r\n            Trying to send a TagSelected event to a state that does not accept it\r\n            causes no transition. It is simply ignored."},"acceptsFeedback":{"type":"boolean","description":"```True``` if the current state accepts a feedback intent\r\n            (e.g. \"it's not what I asked\") to notify the answer was incorrect.\r\n            Trying to send a feedback intent to a state that does not accept it\r\n            causes no transition. A courtesy answer is replied."},"hints":{"type":"array","items":{"type":"string"},"description":"List of texts suggested or accepted in the current state.\r\nIf empty does not mean the current state accepts no texts, but\r\nrather that there are no suggestions.","nullable":true},"timeout":{"type":"number","description":"Idle timeout, in seconds.\r\nSpecifies the time after which, if the user remains in idle state,\r\na Timeout event should be sent.\r\nMay be ```Null``` if the current state does not accept\r\nTimeout events.","format":"double","nullable":true},"currentTag":{"type":"string","description":"Latest tag set with a Tag Changed event.","nullable":true},"currentTagAuthenticated":{"type":"boolean","description":"True if the latest tag set with a Tag Changed event\r\nhas been successfully authenticated with its PIN."},"currentDate":{"type":"string","description":"Latest date set with a Date Changed event.","format":"date-time","nullable":true},"currentPlaceName":{"type":"string","description":"The name of the latest place set with Place Changed event.","nullable":true},"currentLatitude":{"type":"number","description":"The latitude of the latest place set with Place Changed event.","format":"double","nullable":true},"currentLongitude":{"type":"number","description":"The longitude of the latest place set with Place Changed event.","format":"double","nullable":true},"currentUncertaintyKm":{"type":"number","description":"The uncertainty in kilometers of the latest place set with Place Changed event.","format":"double","nullable":true},"currentMemoryID":{"type":"string","description":"ID of the current Memory object being created or answered.","nullable":true},"lastMatchedMemoryID":{"type":"string","description":"ID of the last Memory object matched and emitted.","nullable":true},"currentMedia":{"type":"array","items":{"$ref":"#/components/schemas/MediumSpecs"},"description":"List of Medium objects temporarily stored in the Dialog State Machine via MediumSelected events.\r\nMedia stored in the Current Media list will be sent to any configured generative AI at the\r\nnext TextEntered event. After a TextEntered event the list is always cleared.","nullable":true},"contextVars":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"Current context, expressed as a set of variable-value paris.","nullable":true},"memoryTags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the current Memory.","nullable":true},"llmUsage":{"$ref":"#/components/schemas/InteractionLLMUsage"}},"additionalProperties":false,"description":"Specifications of a state of the Dialog State Machine."},"MediumSpecs":{"type":"object","properties":{"mediumID":{"type":"string","description":"Medium object ID.","nullable":true},"url":{"type":"string","description":"URL of the Medium. If specified, the Content property must be ```Null```.\r\nUse this property to link large amounts of data stored externally.\r\nIf the amount of data is modest the Content property may be used as an alternative.","nullable":true},"content":{"type":"string","description":"Content of the Medium. If specified, the URL property must be ```Null```.\r\nDon't use this property to store large amounts of data. Can be used to store limited \r\ntext for a maximum of 10 KiB. For larger amounts store the data externally and link it\r\nvia the URL property.","nullable":true},"mimeType":{"type":"string","description":"MIME type of the Medium.\r\nRequired during Add operations.","nullable":true},"title":{"type":"string","description":"Title of the Medium.","nullable":true},"properties":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"Key-value pairs for additional structured content storage.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false,"description":"Specifications of a Medium object."},"InteractionLLMUsage":{"type":"object","properties":{"provider":{"type":"string","nullable":true},"model":{"type":"string","nullable":true},"totalInputTokens":{"type":"integer","format":"int32"},"inputCacheReadTokens":{"type":"integer","format":"int32"},"inputCacheWriteTokens":{"type":"integer","format":"int32"},"outputTokens":{"type":"integer","format":"int32"},"durationMs":{"type":"integer","format":"int32"},"energyImpact":{"$ref":"#/components/schemas/InteractionEnergyImpact"}},"additionalProperties":false},"InteractionEnergyImpact":{"type":"object","properties":{"energy":{"type":"number","format":"double","nullable":true},"energyUnit":{"type":"string","nullable":true},"gwp":{"type":"number","format":"double","nullable":true},"gwpUnit":{"type":"string","nullable":true},"adPe":{"type":"number","format":"double","nullable":true},"adPeUnit":{"type":"string","nullable":true},"pe":{"type":"number","format":"double","nullable":true},"peUnit":{"type":"string","nullable":true},"wcf":{"type":"number","format":"double","nullable":true},"wcfUnit":{"type":"string","nullable":true}},"additionalProperties":false}}}}
````

## The CustomWordSpecs object

```json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"CustomWordSpecs":{"type":"object","properties":{"customWordID":{"type":"string","description":"Custom Word object ID.","nullable":true},"word":{"type":"string","description":"Custom Word.","nullable":true},"definition":{"type":"string","description":"Definition of the Custom Word, in terms of sums and subtractions of existing words or custom words. <br> The syntax for a Custom Word definition is as follows: <code>word1 [+-] word2 [+-] word3...</code> If the operator is omitted it is assumed to be the last specified from the left, and if no operator has been specified it is assumed to be the sum. E.g.:<ul> <li><code>alpha beta gamma</code> is equivalent to <code>alpha + beta + gamma</code></li> <li><code>alpha beta - gamma delta</code> is equivalent to <code>alpha + beta - gamma - delta</code></li> </ul>","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false,"description":"Specifications of a Custom Word object."}}}}
```

## The DeselectMediumSpecs object

```json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"DeselectMediumSpecs":{"type":"object","properties":{"mediumID":{"type":"string","description":"Deselected medium ID.\r\nRequired.","nullable":true}},"additionalProperties":false,"description":"Specifications for a Medium Deselected event. A Medium Deselected event is used for removing\r\nmedia from an associated Memory or from use during dialog (e.g. by an intent or generative AI)."}}}}
```

## The DialogStateSpecs object

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"DialogStateSpecs":{"type":"object","properties":{"state":{"type":"string","description":"Current state of the Dialog State Machine, eg. ```R1```, ```G3``` etc.","nullable":true},"stateName":{"type":"string","description":"Name of the current state of the Dialog State Machine, e.g. ```WaitingForReceiverQuestion``` etc.","nullable":true},"previousState":{"type":"string","description":"Previous state of the Dialog State Machine, eg. ```I0```, ```G2b``` etc.","nullable":true},"confidence":{"type":"number","description":"Confidence of understanding of the entered text, with ```0.0``` no\r\nunderstanding at all and ```1.0``` certain understanding. ```Null``` if\r\nthe state transition did not require any natural language understanding.","format":"float","nullable":true},"confidenceLevel":{"type":"string","description":"Confidence level, e.g. ```NONE```, ```LOW```,\r\n```MEDIUM``` or ```HIGH```. ```Null``` if\r\nthe state transition did not require any natural language\r\nunderstanding.","nullable":true},"emission":{"type":"string","description":"Emission from the Dialog State Machine transition. ```Null``` if\r\nthe previous state transition did not emit any text.","nullable":true},"emittedMedia":{"type":"array","items":{"$ref":"#/components/schemas/MediumSpecs"},"description":"List of Medium objects associated with the emission of the state transition.","nullable":true},"media":{"type":"array","items":{"$ref":"#/components/schemas/MediumSpecs"},"description":"Obsolete. List of Medium objects associated with the emission of the state transition.\r\nUse EmittedMedia instead.","nullable":true,"deprecated":true},"continuationEmitted":{"type":"boolean","description":"```True``` if the emission contains a continuation prompts,\r\n            such as \"Is there anything else you want to ask me?\"."},"emitter":{"type":"string","description":"Name of the Memori that provided this emission. Used with Board of Experts model.\r\n```Null``` if no Board of Experts is configured, or if the Memori\r\nproviding the emission is the chairman of the Board.","nullable":true},"completion":{"type":"boolean","description":"```True``` if the emission has been obtained with a\r\n            completion from a generative AI."},"acceptsTimeout":{"type":"boolean","description":"```True``` if the current state accepts a Timeout event.\r\n            Sending a Timeout event to a state that does not accept it\r\n            causes no transition. The event is simply ignored."},"acceptsAbort":{"type":"boolean","description":"```True``` if the current state can be aborted.\r\n            Trying to abort event a state that does not accept it\r\n            causes no transition. It is simply ignored."},"acceptsMedia":{"type":"boolean","description":"```True``` if the current state accepts a MediumSelected event.\r\n            Trying to send a MediumSelected event to a state that does not accept it\r\n            causes no transition. It is simply ignored."},"acceptsDate":{"type":"boolean","description":"```True``` if the current state accepts a DateSelected event.\r\n            Trying to send a DateSelected event to a state that does not accept it\r\n            causes no transition. It is simply ignored."},"acceptsPlace":{"type":"boolean","description":"```True``` if the current state accepts a PlaceSelected event.\r\n            Trying to send a PlaceSelected event to a state that does not accept it\r\n            causes no transition. It is simply ignored."},"acceptsTag":{"type":"boolean","description":"```True``` if the current state accepts a TagSelected event.\r\n            Trying to send a TagSelected event to a state that does not accept it\r\n            causes no transition. It is simply ignored."},"acceptsFeedback":{"type":"boolean","description":"```True``` if the current state accepts a feedback intent\r\n            (e.g. \"it's not what I asked\") to notify the answer was incorrect.\r\n            Trying to send a feedback intent to a state that does not accept it\r\n            causes no transition. A courtesy answer is replied."},"hints":{"type":"array","items":{"type":"string"},"description":"List of texts suggested or accepted in the current state.\r\nIf empty does not mean the current state accepts no texts, but\r\nrather that there are no suggestions.","nullable":true},"timeout":{"type":"number","description":"Idle timeout, in seconds.\r\nSpecifies the time after which, if the user remains in idle state,\r\na Timeout event should be sent.\r\nMay be ```Null``` if the current state does not accept\r\nTimeout events.","format":"double","nullable":true},"currentTag":{"type":"string","description":"Latest tag set with a Tag Changed event.","nullable":true},"currentTagAuthenticated":{"type":"boolean","description":"True if the latest tag set with a Tag Changed event\r\nhas been successfully authenticated with its PIN."},"currentDate":{"type":"string","description":"Latest date set with a Date Changed event.","format":"date-time","nullable":true},"currentPlaceName":{"type":"string","description":"The name of the latest place set with Place Changed event.","nullable":true},"currentLatitude":{"type":"number","description":"The latitude of the latest place set with Place Changed event.","format":"double","nullable":true},"currentLongitude":{"type":"number","description":"The longitude of the latest place set with Place Changed event.","format":"double","nullable":true},"currentUncertaintyKm":{"type":"number","description":"The uncertainty in kilometers of the latest place set with Place Changed event.","format":"double","nullable":true},"currentMemoryID":{"type":"string","description":"ID of the current Memory object being created or answered.","nullable":true},"lastMatchedMemoryID":{"type":"string","description":"ID of the last Memory object matched and emitted.","nullable":true},"currentMedia":{"type":"array","items":{"$ref":"#/components/schemas/MediumSpecs"},"description":"List of Medium objects temporarily stored in the Dialog State Machine via MediumSelected events.\r\nMedia stored in the Current Media list will be sent to any configured generative AI at the\r\nnext TextEntered event. After a TextEntered event the list is always cleared.","nullable":true},"contextVars":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"Current context, expressed as a set of variable-value paris.","nullable":true},"memoryTags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the current Memory.","nullable":true},"llmUsage":{"$ref":"#/components/schemas/InteractionLLMUsage"}},"additionalProperties":false,"description":"Specifications of a state of the Dialog State Machine."},"MediumSpecs":{"type":"object","properties":{"mediumID":{"type":"string","description":"Medium object ID.","nullable":true},"url":{"type":"string","description":"URL of the Medium. If specified, the Content property must be ```Null```.\r\nUse this property to link large amounts of data stored externally.\r\nIf the amount of data is modest the Content property may be used as an alternative.","nullable":true},"content":{"type":"string","description":"Content of the Medium. If specified, the URL property must be ```Null```.\r\nDon't use this property to store large amounts of data. Can be used to store limited \r\ntext for a maximum of 10 KiB. For larger amounts store the data externally and link it\r\nvia the URL property.","nullable":true},"mimeType":{"type":"string","description":"MIME type of the Medium.\r\nRequired during Add operations.","nullable":true},"title":{"type":"string","description":"Title of the Medium.","nullable":true},"properties":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"Key-value pairs for additional structured content storage.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false,"description":"Specifications of a Medium object."},"InteractionLLMUsage":{"type":"object","properties":{"provider":{"type":"string","nullable":true},"model":{"type":"string","nullable":true},"totalInputTokens":{"type":"integer","format":"int32"},"inputCacheReadTokens":{"type":"integer","format":"int32"},"inputCacheWriteTokens":{"type":"integer","format":"int32"},"outputTokens":{"type":"integer","format":"int32"},"durationMs":{"type":"integer","format":"int32"},"energyImpact":{"$ref":"#/components/schemas/InteractionEnergyImpact"}},"additionalProperties":false},"InteractionEnergyImpact":{"type":"object","properties":{"energy":{"type":"number","format":"double","nullable":true},"energyUnit":{"type":"string","nullable":true},"gwp":{"type":"number","format":"double","nullable":true},"gwpUnit":{"type":"string","nullable":true},"adPe":{"type":"number","format":"double","nullable":true},"adPeUnit":{"type":"string","nullable":true},"pe":{"type":"number","format":"double","nullable":true},"peUnit":{"type":"string","nullable":true},"wcf":{"type":"number","format":"double","nullable":true},"wcfUnit":{"type":"string","nullable":true}},"additionalProperties":false}}}}
````

## The EnterTextSpecs object

```json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"EnterTextSpecs":{"type":"object","properties":{"text":{"type":"string","description":"Entered text.\r\nRequired.","nullable":true},"dateUTC":{"type":"string","description":"Current date and time in UTC (ISO 8601), e.g. `2026-03-13T17:30:00Z`.\r\nIf provided, updates the session's current date before processing the text.\r\nOptional.","nullable":true},"place":{"$ref":"#/components/schemas/PlaceSpecs"}},"additionalProperties":false,"description":"Specifications for a Text Entered event."},"PlaceSpecs":{"type":"object","properties":{"placeName":{"type":"string","description":"Name of the place, e.g. `London`.\r\nIf latitude and longitude are not provided, the name is geocoded automatically.","nullable":true},"latitude":{"type":"number","description":"Latitude of the place, e.g. `51.5285582`.\r\nMust be provided together with Memori.WebApi.Model.PlaceSpecs.Longitude.","format":"double","nullable":true},"longitude":{"type":"number","description":"Longitude of the place, e.g. `-0.2416791`.\r\nMust be provided together with Memori.WebApi.Model.PlaceSpecs.Latitude.","format":"double","nullable":true},"uncertaintyKm":{"type":"number","description":"Radius of uncertainty in kilometers, e.g. `20.0`.","format":"double","nullable":true}},"additionalProperties":false,"description":"Geographical coordinates and optional place name."}}}}
```

## The EventLogSpecs object

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"EventLogSpecs":{"type":"object","properties":{"eventLogID":{"type":"string","description":"Event Log object ID.","nullable":true},"timestamp":{"type":"string","description":"Timestamp UTC of the event.","format":"date-time"},"eventType":{"type":"string","description":"Type of the event (Memori opened, Memori close, question answered correctly, question answered incorrectly, question not answered, intent matched etc.). <br> It may be one of the following:<ul> <li><code>MemoriOpened</code></li> <li><code>MemoriClosed</code></li> <li><code>QuestionAnsweredCorrectly</code></li> <li><code>QuestionAnsweredIncorrectly</code></li> <li><code>QuestionNotAnswered</code></li> <li><code>IntentMatched</code></li> <li><code>DCMOutcomeSent</code></li> </ul>","nullable":true},"memoriID":{"type":"string","description":"ID of the related Memori object.","nullable":true},"userID":{"type":"string","description":"ID of the related User object.\r\nMay be null if no User is associated with the session.","nullable":true},"sessionID":{"type":"string","description":"ID of the session where the event happened.","nullable":true},"maintenanceType":{"type":"string","description":"Type of maintenance associated with this event. It may be present only for <code>MemoriOpened</code> event types. For internal use only. <br> It may be one of the following:<ul> <li><code>None</code></li> <li><code>ConsumptionJob</code></li> <li><code>ChatLogExtractionJob</code></li> <li><code>ContentQualityJob</code></li> </ul>","nullable":true},"deepThoughtEnabled":{"type":"boolean","description":"True if the session where the event happened had Deep Thought enabled.\r\nIt may be present only for ```MemoriOpened``` event types."},"userAgent":{"type":"string","description":"When the event type is a Memori opened event, it reports the\r\nuser agent of the counterpart, if available.\r\nNull in other cases.","nullable":true},"ipAddress":{"type":"string","description":"When the event type is ```MemoriOpened```, it reports the\r\nIP address of the counterpart, if available.\r\nNull in other cases.","nullable":true},"additionalInfo":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"When the event type is ```MemoriOpened```, it contains\r\nadditional key-value pairs for the session specified during\r\nsession opening.\r\nNull in other cases.","nullable":true},"memoryID":{"type":"string","description":"When the event type is ```QuestionAnsweredCorrectly``` or\r\n```QuestionAnsweredIncorrectly```, it is the ID of the related Memory\r\nobject. Null in other cases.","nullable":true},"intentID":{"type":"string","description":"When the event type is ```IntentMatched```, it is the ID of the related\r\nIntent object. Null in other cases.","nullable":true},"enteredText":{"type":"string","description":"When the event type is ```QuestionAnsweredCorrectly```,\r\n```QuestionAnsweredIncorrectly```, ```QuestionNotAnswered```\r\nor ```IntentMatched```, it is the original text entered by\r\nthe user. Null in other cases.","nullable":true},"receiverTag":{"type":"string","description":"When the event type is ```QuestionAnsweredCorrectly```,\r\n```QuestionAnsweredIncorrectly```, ```QuestionNotAnswered```\r\nor ```IntentMatched```, it is the current Receiver tag, if\r\npresent. Null in other cases.","nullable":true},"dcmOutcomeRefID":{"type":"string","description":"When the event type is ```DCMOutcomeSent```, reports the ID\r\nassociated with the outcome sent to the DCM platform.\r\nNull in other cases.","nullable":true},"dcmOutcomeType":{"type":"string","description":"When the event type is ```DCMOutcomeSent```, reports the type\r\nof outcome sent to the DCM platform.\r\nNull in other cases.","nullable":true},"dcmOutcomeCode":{"type":"string","description":"When the event type is ```DCMOutcomeSent```, reports the code\r\nof outcome sent to the DCM platform.\r\nNull in other cases.","nullable":true}},"additionalProperties":false,"description":"Specifications of an Event Log object."}}}}
````

## The ExpertReferenceSpecs object

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"ExpertReferenceSpecs":{"type":"object","properties":{"expertID":{"type":"string","description":"Expert Reference object ID.\r\nReturned during Get operations.\r\nIgnored in other cases.","nullable":true},"name":{"type":"string","description":"Name of the expert.\r\nReturned during Get operations.\r\nRequired during Add operations.\r\nOptional during Update operations.","nullable":true},"description":{"type":"string","description":"Description of the expert, i.e. a list of the expert's skills and knowledge.\r\nReturned during Get operations.\r\nRequired during Add operations.\r\nOptional during Update operations.","nullable":true},"default":{"type":"boolean","description":"If ```True```, this expert is used when no other expert\r\nis competent for the current question.\r\nReturned during Get operations.\r\nOptional during Add operations.\r\nOptional during Update operations.","nullable":true},"expertMemoriID":{"type":"string","description":"ID of the expert Memori.\r\nReturned during Get operations.\r\nRequired during Add operations.\r\nOptional during Update operations.","nullable":true},"expertPassword":{"type":"string","description":"Password of the expert Memori. Required if the chained Memori is private or secret.\r\nOptional during Add operations and Update operations.\r\nIgnore in other cases.","nullable":true},"expertBaseURL":{"type":"string","description":"Base URL of a chained Memori, typically ```https://engine.memori.ai/```.\r\nReturned during Get operations.\r\nRequired during Add operations.\r\nOptional during Update operations.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false}}}}
````

## The FunctionParameterSpecs object

```json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"FunctionParameterSpecs":{"type":"object","properties":{"parameterID":{"type":"string","description":"Function Parameter object ID.","nullable":true},"name":{"type":"string","description":"Name of the Function Parameter object.\r\nRequired during Add operations.","nullable":true},"description":{"type":"string","description":"Description of the Function Parameter object. The description is provided to the\r\ngenerative AI to help it understand the purpose of the parameter.\r\nRequired during Add operations.","nullable":true},"parameterType":{"type":"string","description":"Parameter type, e.g. \"string\", \"number\", \"integer\", \"boolean\". Required during Add operations. <br> Currently supported types are:<ul> <li><code>string</code>: string value</li> <li><code>number</code>: floating point value</li> <li><code>integer</code>: integer value</li> <li><code>boolean</code>: boolean value</li> </ul>","nullable":true},"possibleValues":{"type":"array","items":{"type":"string"},"description":"Optional list of possible values of the parameter.\r\nIf empty or null, the parameter accepts any value of the specified type.","nullable":true},"required":{"type":"boolean","description":"Whether the parameter is required or not.\r\nDefault is not required.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false,"description":"Specifications of an Function Parameter object."}}}}
```

## The FunctionSpecs object

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"FunctionSpecs":{"type":"object","properties":{"functionID":{"type":"string","description":"Function object ID.","nullable":true},"functionType":{"type":"string","description":"Function type, e.g. ```Internal``` or ```WebHook```.\r\nInternal functions are a limited subset implemented internally,\r\nwhile WebHook intents perform an external HTTP call to the\r\nspecified web hook, using the specified templates.\r\nRequired during Add operations.\r\nIgnored during Update operations.","nullable":true},"name":{"type":"string","description":"Name of the Function object.\r\nRequired during Add operations.","nullable":true},"description":{"type":"string","description":"Description of the Function object. The description is provided to the\r\ngenerative AI to help it understand the purpose of the function.\r\nRequired during Add operations.","nullable":true},"parameters":{"type":"array","items":{"$ref":"#/components/schemas/FunctionParameterSpecs"},"description":"List of its Function Parameter objects.\r\nMay be empty.","nullable":true},"webHook":{"type":"string","description":"HTTP URL of the web hook to be called when the function is invoked,\r\nup to the path part. The query string part is specified separately.\r\nIt may include the value of function parameters using the syntax ```{parameter}```,\r\nwhere \"parameter\" is the parameter name. E.g.: ```http://example.com/{param}/something```.\r\nIf the function is of Internal type, it is ignored.","nullable":true},"httpMethod":{"type":"string","description":"HTTP method to be used when calling the web hook, e.g. \"GET\", \"POST\" etc.\r\nIf the function is of Internal type, it is ignored.","nullable":true},"httpHeaders":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"Optional set of HTTP headers to be passed to the web hook.\r\nIf the function is of Internal type, it is ignored.","nullable":true},"httpQueryStringTemplate":{"type":"string","description":"Template of the HTTP query string to be passed to the web hook.\r\nIt may include the value of function parameters using the syntax ```{parameter}```,\r\nwhere \"parameter\" is the parameter name. E.g.: ```param1={param1}&param2={param2}```.\r\nIf the function is of Internal type, it is ignored.","nullable":true},"httpBodyTemplate":{"type":"string","description":"Template of the HTTP request body to be passed to the web hook.\r\nIt may be in any format (JSON, XML etc.), and may include the value of function \r\nparameters using the syntax ```{parameter}```, where \"parameter\"\r\nis the parameter name. E.g.: ```{ \"param1\": \"{param1}\", \"param2\": \"{param2}\" }```,\r\nor: ```<request><param1>{param1}</param1><param2>{param2}</param2></request>```.\r\nIf the function is of Internal type, it is ignored.","nullable":true},"httpBodyContentType":{"type":"string","description":"MIME type of the HTTP request body to be passed to the web hook.\r\nIf not specified \"text/plain\" is assumed.\r\nIf the function is of Internal type, it is ignored.","nullable":true},"sendExtensionHeaders":{"type":"array","items":{"type":"string"},"description":"List of extension headers to be sent to the web hook. Extension headers let the web hook receive internal information on the current state of the conversation, such as the session ID, current date and place, context variables etc. If the function is of Internal type, it is ignored. <br> Currently supported extension headers are:<ul> <li><code>SESSION-ID</code>: the current session ID, sent with header X-Memori-Session-ID</li> <li><code>CURRENT-TAG</code>: the current tag, sent with headers X-Memori-Current-Tag and X-Memori-Current-Tag-Authenticated</li> <li><code>CURRENT-DATE</code>: the current date in UTC, sent with header X-Memori-Current-Date</li> <li><code>CURRENT-PLACE</code>: the current place, sent with headers X-Memori-Current-Place-Name, X-Memori-Current-Place-Latitude, X-Memori-Current-Place-Longitude and X-Memori-Current-Place-UncertaintyKm</li> <li><code>CONTEXT-VARS</code>: the current context variables, sent with header X-Memori-Context-Vars, with the format NAME1:VALUE1,NAME2:VALUE2,...,NAMEn:VALUEn</li> <li><code>USER-EMAIL</code>: the current user email, sent with header X-Memori-User-Email</li> </ul>","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false,"description":"Specifications of an Function object."},"FunctionParameterSpecs":{"type":"object","properties":{"parameterID":{"type":"string","description":"Function Parameter object ID.","nullable":true},"name":{"type":"string","description":"Name of the Function Parameter object.\r\nRequired during Add operations.","nullable":true},"description":{"type":"string","description":"Description of the Function Parameter object. The description is provided to the\r\ngenerative AI to help it understand the purpose of the parameter.\r\nRequired during Add operations.","nullable":true},"parameterType":{"type":"string","description":"Parameter type, e.g. \"string\", \"number\", \"integer\", \"boolean\". Required during Add operations. <br> Currently supported types are:<ul> <li><code>string</code>: string value</li> <li><code>number</code>: floating point value</li> <li><code>integer</code>: integer value</li> <li><code>boolean</code>: boolean value</li> </ul>","nullable":true},"possibleValues":{"type":"array","items":{"type":"string"},"description":"Optional list of possible values of the parameter.\r\nIf empty or null, the parameter accepts any value of the specified type.","nullable":true},"required":{"type":"boolean","description":"Whether the parameter is required or not.\r\nDefault is not required.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false,"description":"Specifications of an Function Parameter object."}}}}
````

## The GetContextVarNamesResponse object

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"GetContextVarNamesResponse":{"type":"object","properties":{"contextVarNames":{"type":"array","items":{"type":"string"},"description":"The list of currently known context variable names.","nullable":true},"requestID":{"type":"integer","description":"Progressive number of the request (since the Server started).\r\nUse this number, together with the RequestDateTime property,\r\nto report an anomalous response.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous response.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is equivalent to the HTTP\r\nstatus code.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response of a Get Context Var Names request."}}}}
````

## The GetContextVarValuesResponse object

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"GetContextVarValuesResponse":{"type":"object","properties":{"contextVarName":{"type":"string","description":"The name of the context variable.","nullable":true},"contextVarValues":{"type":"array","items":{"type":"string"},"description":"The list of currently known values for the named context variable.","nullable":true},"requestID":{"type":"integer","description":"Progressive number of the request (since the Server started).\r\nUse this number, together with the RequestDateTime property,\r\nto report an anomalous response.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous response.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is equivalent to the HTTP\r\nstatus code.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response of a Get Context Var Values request."}}}}
````

## The GetContextVarsResponse object

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"GetContextVarsResponse":{"type":"object","properties":{"contextVars":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"},"nullable":true},"description":"The dictionary of all known values of known context variables.","nullable":true},"requestID":{"type":"integer","description":"Progressive number of the request (since the Server started).\r\nUse this number, together with the RequestDateTime property,\r\nto report an anomalous response.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous response.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is equivalent to the HTTP\r\nstatus code.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response of a Get Context Vars request."}}}}
````

## The GetCustomWordResponse object

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"GetCustomWordResponse":{"type":"object","properties":{"customWord":{"$ref":"#/components/schemas/CustomWordSpecs"},"requestID":{"type":"integer","description":"Progressive number of the request (since the Server started).\r\nUse this number, together with the RequestDateTime property,\r\nto report an anomalous response.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous response.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is equivalent to the HTTP\r\nstatus code.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response of a Get Custom Word request."},"CustomWordSpecs":{"type":"object","properties":{"customWordID":{"type":"string","description":"Custom Word object ID.","nullable":true},"word":{"type":"string","description":"Custom Word.","nullable":true},"definition":{"type":"string","description":"Definition of the Custom Word, in terms of sums and subtractions of existing words or custom words. <br> The syntax for a Custom Word definition is as follows: <code>word1 [+-] word2 [+-] word3...</code> If the operator is omitted it is assumed to be the last specified from the left, and if no operator has been specified it is assumed to be the sum. E.g.:<ul> <li><code>alpha beta gamma</code> is equivalent to <code>alpha + beta + gamma</code></li> <li><code>alpha beta - gamma delta</code> is equivalent to <code>alpha + beta - gamma - delta</code></li> </ul>","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false,"description":"Specifications of a Custom Word object."}}}}
````

## The GetExpertReferenceResponse object

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"GetExpertReferenceResponse":{"type":"object","properties":{"expert":{"$ref":"#/components/schemas/ExpertReferenceSpecs"},"requestID":{"type":"integer","description":"Progressive number of the request (since the Server started).\r\nUse this number, together with the RequestDateTime property,\r\nto report an anomalous response.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous response.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is equivalent to the HTTP\r\nstatus code.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response of a Get Expert Reference request."},"ExpertReferenceSpecs":{"type":"object","properties":{"expertID":{"type":"string","description":"Expert Reference object ID.\r\nReturned during Get operations.\r\nIgnored in other cases.","nullable":true},"name":{"type":"string","description":"Name of the expert.\r\nReturned during Get operations.\r\nRequired during Add operations.\r\nOptional during Update operations.","nullable":true},"description":{"type":"string","description":"Description of the expert, i.e. a list of the expert's skills and knowledge.\r\nReturned during Get operations.\r\nRequired during Add operations.\r\nOptional during Update operations.","nullable":true},"default":{"type":"boolean","description":"If ```True```, this expert is used when no other expert\r\nis competent for the current question.\r\nReturned during Get operations.\r\nOptional during Add operations.\r\nOptional during Update operations.","nullable":true},"expertMemoriID":{"type":"string","description":"ID of the expert Memori.\r\nReturned during Get operations.\r\nRequired during Add operations.\r\nOptional during Update operations.","nullable":true},"expertPassword":{"type":"string","description":"Password of the expert Memori. Required if the chained Memori is private or secret.\r\nOptional during Add operations and Update operations.\r\nIgnore in other cases.","nullable":true},"expertBaseURL":{"type":"string","description":"Base URL of a chained Memori, typically ```https://engine.memori.ai/```.\r\nReturned during Get operations.\r\nRequired during Add operations.\r\nOptional during Update operations.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false}}}}
````

## The GetFunctionResponse object

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"GetFunctionResponse":{"type":"object","properties":{"function":{"$ref":"#/components/schemas/FunctionSpecs"},"requestID":{"type":"integer","description":"Progressive number of the request (since the Server started).\r\nUse this number, together with the RequestDateTime property,\r\nto report an anomalous response.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous response.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is equivalent to the HTTP\r\nstatus code.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response of a Get Function request."},"FunctionSpecs":{"type":"object","properties":{"functionID":{"type":"string","description":"Function object ID.","nullable":true},"functionType":{"type":"string","description":"Function type, e.g. ```Internal``` or ```WebHook```.\r\nInternal functions are a limited subset implemented internally,\r\nwhile WebHook intents perform an external HTTP call to the\r\nspecified web hook, using the specified templates.\r\nRequired during Add operations.\r\nIgnored during Update operations.","nullable":true},"name":{"type":"string","description":"Name of the Function object.\r\nRequired during Add operations.","nullable":true},"description":{"type":"string","description":"Description of the Function object. The description is provided to the\r\ngenerative AI to help it understand the purpose of the function.\r\nRequired during Add operations.","nullable":true},"parameters":{"type":"array","items":{"$ref":"#/components/schemas/FunctionParameterSpecs"},"description":"List of its Function Parameter objects.\r\nMay be empty.","nullable":true},"webHook":{"type":"string","description":"HTTP URL of the web hook to be called when the function is invoked,\r\nup to the path part. The query string part is specified separately.\r\nIt may include the value of function parameters using the syntax ```{parameter}```,\r\nwhere \"parameter\" is the parameter name. E.g.: ```http://example.com/{param}/something```.\r\nIf the function is of Internal type, it is ignored.","nullable":true},"httpMethod":{"type":"string","description":"HTTP method to be used when calling the web hook, e.g. \"GET\", \"POST\" etc.\r\nIf the function is of Internal type, it is ignored.","nullable":true},"httpHeaders":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"Optional set of HTTP headers to be passed to the web hook.\r\nIf the function is of Internal type, it is ignored.","nullable":true},"httpQueryStringTemplate":{"type":"string","description":"Template of the HTTP query string to be passed to the web hook.\r\nIt may include the value of function parameters using the syntax ```{parameter}```,\r\nwhere \"parameter\" is the parameter name. E.g.: ```param1={param1}&param2={param2}```.\r\nIf the function is of Internal type, it is ignored.","nullable":true},"httpBodyTemplate":{"type":"string","description":"Template of the HTTP request body to be passed to the web hook.\r\nIt may be in any format (JSON, XML etc.), and may include the value of function \r\nparameters using the syntax ```{parameter}```, where \"parameter\"\r\nis the parameter name. E.g.: ```{ \"param1\": \"{param1}\", \"param2\": \"{param2}\" }```,\r\nor: ```<request><param1>{param1}</param1><param2>{param2}</param2></request>```.\r\nIf the function is of Internal type, it is ignored.","nullable":true},"httpBodyContentType":{"type":"string","description":"MIME type of the HTTP request body to be passed to the web hook.\r\nIf not specified \"text/plain\" is assumed.\r\nIf the function is of Internal type, it is ignored.","nullable":true},"sendExtensionHeaders":{"type":"array","items":{"type":"string"},"description":"List of extension headers to be sent to the web hook. Extension headers let the web hook receive internal information on the current state of the conversation, such as the session ID, current date and place, context variables etc. If the function is of Internal type, it is ignored. <br> Currently supported extension headers are:<ul> <li><code>SESSION-ID</code>: the current session ID, sent with header X-Memori-Session-ID</li> <li><code>CURRENT-TAG</code>: the current tag, sent with headers X-Memori-Current-Tag and X-Memori-Current-Tag-Authenticated</li> <li><code>CURRENT-DATE</code>: the current date in UTC, sent with header X-Memori-Current-Date</li> <li><code>CURRENT-PLACE</code>: the current place, sent with headers X-Memori-Current-Place-Name, X-Memori-Current-Place-Latitude, X-Memori-Current-Place-Longitude and X-Memori-Current-Place-UncertaintyKm</li> <li><code>CONTEXT-VARS</code>: the current context variables, sent with header X-Memori-Context-Vars, with the format NAME1:VALUE1,NAME2:VALUE2,...,NAMEn:VALUEn</li> <li><code>USER-EMAIL</code>: the current user email, sent with header X-Memori-User-Email</li> </ul>","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false,"description":"Specifications of an Function object."},"FunctionParameterSpecs":{"type":"object","properties":{"parameterID":{"type":"string","description":"Function Parameter object ID.","nullable":true},"name":{"type":"string","description":"Name of the Function Parameter object.\r\nRequired during Add operations.","nullable":true},"description":{"type":"string","description":"Description of the Function Parameter object. The description is provided to the\r\ngenerative AI to help it understand the purpose of the parameter.\r\nRequired during Add operations.","nullable":true},"parameterType":{"type":"string","description":"Parameter type, e.g. \"string\", \"number\", \"integer\", \"boolean\". Required during Add operations. <br> Currently supported types are:<ul> <li><code>string</code>: string value</li> <li><code>number</code>: floating point value</li> <li><code>integer</code>: integer value</li> <li><code>boolean</code>: boolean value</li> </ul>","nullable":true},"possibleValues":{"type":"array","items":{"type":"string"},"description":"Optional list of possible values of the parameter.\r\nIf empty or null, the parameter accepts any value of the specified type.","nullable":true},"required":{"type":"boolean","description":"Whether the parameter is required or not.\r\nDefault is not required.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false,"description":"Specifications of an Function Parameter object."}}}}
````

## The GetIntentResponse object

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"GetIntentResponse":{"type":"object","properties":{"intent":{"$ref":"#/components/schemas/IntentSpecs"},"requestID":{"type":"integer","description":"Progressive number of the request (since the Server started).\r\nUse this number, together with the RequestDateTime property,\r\nto report an anomalous response.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous response.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is equivalent to the HTTP\r\nstatus code.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response of a Get Intent request."},"IntentSpecs":{"type":"object","properties":{"intentID":{"type":"string","description":"Intent object ID.","nullable":true},"intentType":{"type":"string","description":"Function type, e.g. ```Internal``` or ```WebHook```.\r\nInternal intents are a limited subset implemented internally,\r\nwhile WebHook intents perform an external HTTP POST call to the\r\nspecified web hook, passing an ```IntentWebHookRequest```\r\nand expecting an ```IntentWebHookResponse``` in response.\r\nRequired during Add operations.\r\nIgnored during Update operations.","nullable":true},"name":{"type":"string","description":"Name of the Intent object. It is part of the ```IntentWebHookRequest```\r\nrequest passed to the web hook.\r\nRequired during Add operations.","nullable":true},"utterances":{"type":"array","items":{"$ref":"#/components/schemas/UtteranceSpecs"},"description":"List of accepted Utterance objects for this Intent, i.e. the\r\nlist of text sentences that can be used to express the intent.\r\nUtterances may include variable parts in the sentence by the use of\r\none or more slots. Slots are specified using the syntax ```{slot}```,\r\nwhere \"slot\" is the slot name. If present, their value is part of the\r\n```IntentWebHookRequest``` passed to the web hook. Each slot\r\ncan be present only once in the sentence, and must have been previously\r\ndefined with a Intent Slot object.\r\nA special slot is the ```{date}``` slot, which represents a\r\nperiod of time such as \"today\", \"yesterday\", \"last week\", \"next month\" etc.\r\nIts values is passed in the ```IntentWebHookRequest``` as the\r\n```BeginUTC``` and ```EndUTC``` properties.\r\nRequired during Add operations.","nullable":true},"timeoutIntent":{"type":"boolean","description":"If ```True``` this Intent may be executed to serve a Timeout event\r\nin R1 state. In this case the utterance is null.\r\nIn case more than one Intent have this flag set, a random one is picked.","nullable":true},"webHook":{"type":"string","description":"HTTP URL of the web hook to be called when the intent is recognized.\r\nIf the intent is of Internal type, it is ignored.","nullable":true},"validityMinutes":{"type":"number","description":"Time to cache the intent response, expressed in minutes. May be\r\nfractional. A cached intent response is used only when the a subsequent intent request\r\nmatches exactly the original request.\r\nSee also ```RequestValidityMinutes``` in ```WebHookRequest```.","format":"double","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false,"description":"Specifications of an Intent object."},"UtteranceSpecs":{"type":"object","properties":{"utteranceID":{"type":"string","description":"Utterance object ID.","nullable":true},"text":{"type":"string","description":"Accepted Utterance object for its corresponding intent, i.e. the\r\ntext sentence that can be used to express the intent.\r\nAn Utterance may include variable parts in the sentence by the use of\r\none or more slots. Slots are specified using the syntax ```{slot}```,\r\nwhere \"slot\" is the slot name. If present, their value is part of the\r\n```IntentWebHookRequest``` passed to the web hook. Each slot\r\ncan be present only once in the sentence, and must have been previously\r\ndefined with a Intent Slot object.\r\nA special slot is the ```{date}``` slot, which represents a\r\nperiod of time such as \"today\", \"yesterday\", \"last week\", \"next month\" etc.\r\nIts values is passed in the ```IntentWebHookRequest``` as the\r\n```BeginUTC``` and ```EndUTC``` properties.\r\nRequired during Add operations.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false,"description":"Specifications of an Utterance object."}}}}
````

## The GetIntentSlotResponse object

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"GetIntentSlotResponse":{"type":"object","properties":{"intentSlot":{"$ref":"#/components/schemas/IntentSlotSpecs"},"requestID":{"type":"integer","description":"Progressive number of the request (since the Server started).\r\nUse this number, together with the RequestDateTime property,\r\nto report an anomalous response.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous response.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is equivalent to the HTTP\r\nstatus code.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response of a Get Intent Slot request."},"IntentSlotSpecs":{"type":"object","properties":{"intentSlotID":{"type":"string","description":"Intent Slot object ID.","nullable":true},"name":{"type":"string","description":"Name of the Intent Slot object. It is part of the ```SlotWebHookRequest```\r\nrequest passed to the web hook.\r\nRequired during Add operations.","nullable":true},"values":{"type":"array","items":{"type":"string"},"description":"List of possible values of the slot.\r\nA slot may be composed of fixed values in this property,\r\ndynamic values fetched from the web hook, or a combination of both.\r\nEach value is considered only once (duplicate values are ignored).","nullable":true},"webHook":{"type":"string","description":"HTTP URL of the web hook to be called when the slot values must be fetched.\r\nMay be null if the slot is composed only of fixed values in\r\nthe ```Values``` property.\r\nIf specified, the web hook is called periodically with an HTTP POST call,\r\npassing a ```SlotWebHookRequest``` and expecting a ```SlotWebHookResponse```\r\nin response. Periodicity is determined by the ```ValidityMinutes``` property,\r\nwith a minimum of 0.5 (30 seconds).","nullable":true},"validityMinutes":{"type":"number","description":"Time to cache the slot values, expressed in minutes. May be\r\nfractional. A cached slot response is used only when the a subsequent slot request\r\nmatches exactly the original request.\r\nSee also ```RequestValidityMinutes``` in ```WebHookRequest```.","format":"double","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false,"description":"Specifications of an Intent Slot object."}}}}
````

## The GetKnownFactResponse object

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"GetKnownFactResponse":{"type":"object","properties":{"knownFact":{"$ref":"#/components/schemas/KnownFactSpecs"},"requestID":{"type":"integer","description":"Progressive number of the request (since the Server started).\r\nUse this number, together with the RequestDateTime property,\r\nto report an anomalous response.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous response.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is equivalent to the HTTP\r\nstatus code.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response of a Get Known Fact request."},"KnownFactSpecs":{"type":"object","properties":{"knownFactID":{"type":"string","description":"Known Fact object ID.","nullable":true},"knownFactType":{"type":"string","description":"Known Fact type, e.g. <code>ShortTerm</code> or <code>LongTerm</code>. <br> Currently possible values are:<ul> <li><code>ShortTerm</code>: this Known Fact is always used during conversations</li> <li><code>LongTerm</code>: this Known Fact is used during conversations only if relevant to the current question</li> </ul>","nullable":true},"text":{"type":"string","description":"Text of the Known Fact.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false,"description":"Specifications of a Known Fact object."}}}}
````

## The GetLocalizationKeyResponse object

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"GetLocalizationKeyResponse":{"type":"object","properties":{"localizationKey":{"$ref":"#/components/schemas/LocalizationKeySpecs"},"requestID":{"type":"integer","description":"Progressive number of the request (since the Server started).\r\nUse this number, together with the RequestDateTime property,\r\nto report an anomalous response.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous response.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is equivalent to the HTTP\r\nstatus code.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response of a Get Localization Key request."},"LocalizationKeySpecs":{"type":"object","properties":{"key":{"type":"string","description":"Localization Key.\r\nRequired during Add operations.\r\nIgnored during Update operations.","nullable":true},"value":{"type":"string","description":"Value of the Localization Key.\r\nRequired during Add and Update operations.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false,"description":"Specifications of a Localization Key."}}}}
````

## The GetMediumResponse object

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"GetMediumResponse":{"type":"object","properties":{"medium":{"$ref":"#/components/schemas/MediumSpecs"},"requestID":{"type":"integer","description":"Progressive number of the request (since the Server started).\r\nUse this number, together with the RequestDateTime property,\r\nto report an anomalous response.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous response.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is equivalent to the HTTP\r\nstatus code.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response of a Get Medium request."},"MediumSpecs":{"type":"object","properties":{"mediumID":{"type":"string","description":"Medium object ID.","nullable":true},"url":{"type":"string","description":"URL of the Medium. If specified, the Content property must be ```Null```.\r\nUse this property to link large amounts of data stored externally.\r\nIf the amount of data is modest the Content property may be used as an alternative.","nullable":true},"content":{"type":"string","description":"Content of the Medium. If specified, the URL property must be ```Null```.\r\nDon't use this property to store large amounts of data. Can be used to store limited \r\ntext for a maximum of 10 KiB. For larger amounts store the data externally and link it\r\nvia the URL property.","nullable":true},"mimeType":{"type":"string","description":"MIME type of the Medium.\r\nRequired during Add operations.","nullable":true},"title":{"type":"string","description":"Title of the Medium.","nullable":true},"properties":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"Key-value pairs for additional structured content storage.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false,"description":"Specifications of a Medium object."}}}}
````

## The GetMemoryHintsResponse object

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"GetMemoryHintsResponse":{"type":"object","properties":{"count":{"type":"integer","description":"Total number of Memory Hint objects.","format":"int32"},"memoryHints":{"type":"array","items":{"$ref":"#/components/schemas/MemoryHintSpecs"},"description":"List of Memory Hint objects.\r\nMay be empty.","nullable":true},"requestID":{"type":"integer","description":"Progressive number of the request (since the Server started).\r\nUse this number, together with the RequestDateTime property,\r\nto report an anomalous response.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous response.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is equivalent to the HTTP\r\nstatus code.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response of a Get Memory Hints request."},"MemoryHintSpecs":{"type":"object","properties":{"date":{"type":"string","description":"Approximate date associated with one or more Story objects.\r\n```Null``` if this Memory Hint is a place hint.","format":"date-time","nullable":true},"dateUncertaintyDays":{"type":"number","description":"Uncertainty, expressed in days, of the date associated with one or more Story objects.\r\n```Null``` if this Memory Hint is a place hint.","format":"double","nullable":true},"placeLatitude":{"type":"number","description":"Approximate latitude of the place associated with one or more Story objects.\r\n```Null``` if this Memory Hint is a date hint.","format":"double","nullable":true},"placeLongitude":{"type":"number","description":"Approximate longitude of the place associated with one or more Story objects.\r\n```Null``` if this Memory Hint is a date hint.","format":"double","nullable":true},"placeUncertaintyKm":{"type":"number","description":"Uncertainty, expressed in Km, of the latitude and longitude of the place\r\nassociated with one or more Story objects.\r\n```Null``` if this Memory Hint is a date hint.","format":"double","nullable":true}},"additionalProperties":false,"description":"Specifications of a Memory Hint object."}}}}
````

## The GetMemoryResponse object

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"GetMemoryResponse":{"type":"object","properties":{"memory":{"$ref":"#/components/schemas/MemorySpecs"},"requestID":{"type":"integer","description":"Progressive number of the request (since the Server started).\r\nUse this number, together with the RequestDateTime property,\r\nto report an anomalous response.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous response.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is equivalent to the HTTP\r\nstatus code.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response of a Get Memory request."},"MemorySpecs":{"type":"object","properties":{"memoryID":{"type":"string","description":"Memory object ID.","nullable":true},"memoryType":{"type":"string","description":"Memory type, e.g. <code>Question</code>, <code>Story</code> or <code>Default</code>. Required during Add operations. <br> Currently possible values are:<ul> <li><code>Question</code>: this Memory is a question, hence its title is expected in interrogative form</li> <li><code>Story</code>: this Memory is a story, hence its title is expected in affirmative form</li> <li><code>Default</code>: this Memory is a default answer, hence its title is ignored (empty or null)</li> <li><code>CompletionDraft</code>: this Memory is draft from a completion, obtained via a generative AI.</li> <li><code>ExpertReference</code>: this Memory is the results of a question asked to a Board of Experts, and the answer is the name of the Expert that replied to the question.</li> </ul>","nullable":true},"lastRead":{"type":"string","description":"Timestamp of the last time this Memory has been shown to a Receiver.\r\nThis value is also used when picking random memories to avoid showing\r\nmemories that have already been shown recently.\r\n```Null``` if the Memory has not been shown yet.","format":"date-time","nullable":true},"readOccurrences":{"type":"integer","description":"Number of times this Memory has been shown to a Receiver.\r\n```Null``` if the Memory has not been shown yet.","format":"int32","nullable":true},"receiverID":{"type":"string","description":"ID of the Person object to whom this Memory belongs.\r\n```Null``` if the Memory is public. When updating,\r\nset it to a single dash character (```-```) to remove a\r\npreviously set association with a Person.","nullable":true},"receiverTag":{"type":"string","description":"Tag of the Person object to whom this Memory belongs.\r\n```Null``` if the Memory is public.","nullable":true},"receiverName":{"type":"string","description":"Name of the Person object to whom this Memory belongs.\r\n```Null``` if the Memory is public.","nullable":true},"media":{"type":"array","items":{"$ref":"#/components/schemas/MediumSpecs"},"description":"List of Medium objects associated with this Memory.\r\nMay be empty.","nullable":true},"title":{"type":"string","description":"Title of the Question or Story.\r\nNull if this Memory is a Default.","nullable":true},"titleVariants":{"type":"array","items":{"type":"string"},"description":"Title variants of this Question or Story.\r\nEmpty if this Memory is a Default.","nullable":true},"answers":{"type":"array","items":{"$ref":"#/components/schemas/AnswerSpecs"},"description":"List of its Answer objects.\r\nAt least one answer must be present.","nullable":true},"date":{"type":"string","description":"Approximate date associated with this Memory.\r\nWhen updating, set it to midnight Jan. 1st 1 A.D.\r\n(```01/01/01 00:00:00```) to clear any previously set\r\nDate and DateUncertaintyDays.","format":"date-time","nullable":true},"dateUncertaintyDays":{"type":"number","description":"Uncertainty in the date associated with this Memory,\r\nexpressed in days.","format":"double","nullable":true},"placeName":{"type":"string","description":"Name of the place associated with this Memory.\r\nWhen updating, set it to a single dash character\r\n(```-```) to clear any previously set Place (by name or\r\ncoordinates) and PlaceUncertaintyKm.","nullable":true},"placeLatitude":{"type":"number","description":"Latitude of the place associated with this Memory.","format":"double","nullable":true},"placeLongitude":{"type":"number","description":"Longitude of the place associated with this Memory.","format":"double","nullable":true},"placeUncertaintyKm":{"type":"number","description":"Uncertainty of the place associated with this Memory,\r\nexpressed in kilometers.","format":"double","nullable":true},"conclusive":{"type":"boolean","description":"If ```True```, when this Memory is emitted it is NOT followed by a continuation prompt,\r\nsuch as \"Is there anything else you want to know?\".","nullable":true},"notPickable":{"type":"boolean","description":"If ```True```, this Memory can't be randomly picked with a Timeout Event, or\r\nexplicitly searching for random Memory objects.\r\nIgnored for Memory of type Default.","nullable":true},"help":{"type":"boolean","description":"If ```True```, this Memory's content can be emitted if the user fails\r\nto find a question with an answer at the beginning of a session.\r\nIgnored for Memory of type Default.","nullable":true},"hints":{"type":"array","items":{"type":"string"},"description":"Hints for this Memory.","nullable":true},"minTimeout":{"type":"number","description":"Minimum idle timeout, in seconds. If not specified, by default it is set to 20 seconds. <br> The idle timeout is the time after which the client sends a Timeout event and, typically, a random question or story is picked up and proposed to the user. The actual idle timeout is computed as a random number between <code>MinTimeout</code> and <code>MaxTimeout</code> plus the reading time, where the reading time is in turn computed as the time it would take to read the answer at 150 words per minute.","format":"double","nullable":true},"maxTimeout":{"type":"number","description":"Maximum idle timeout, in seconds. If not specified, by default it is set to 40 seconds. <br> The idle timeout is the time after which the client sends a Timeout event and, typically, a random question or story is picked up and proposed to the user. The actual idle timeout is computed as a random number between <code>MinTimeout</code> and <code>MaxTimeout</code> plus the reading time, where the reading time is in turn computed as the time it would take to read the answer at 150 words per minute.","format":"double","nullable":true},"contextVarsToSet":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"List of variable-value pairs to be used to alter the context when this Memory is matched.\r\nUse the special value ```-``` (a single dash character) to clear a context variable.","nullable":true},"contextVarsToMatch":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"List of variable-value pairs to be used to match this Memory with the context. If the context\r\ncontains a variable listed here, the value must match for the Memory to match.","nullable":true},"dcmOutcomeType":{"type":"string","description":"Optional type of the outcome to be sent to the DCM platform when this Memory is emitted.","nullable":true},"dcmOutcomeCode":{"type":"string","description":"Optional code of the outcome to be sent to the DCM platform when this Memory is emitted.","nullable":true},"tags":{"type":"array","items":{"type":"string"},"description":"Tags for this Memory.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false,"description":"Specifications of a Memory object."},"MediumSpecs":{"type":"object","properties":{"mediumID":{"type":"string","description":"Medium object ID.","nullable":true},"url":{"type":"string","description":"URL of the Medium. If specified, the Content property must be ```Null```.\r\nUse this property to link large amounts of data stored externally.\r\nIf the amount of data is modest the Content property may be used as an alternative.","nullable":true},"content":{"type":"string","description":"Content of the Medium. If specified, the URL property must be ```Null```.\r\nDon't use this property to store large amounts of data. Can be used to store limited \r\ntext for a maximum of 10 KiB. For larger amounts store the data externally and link it\r\nvia the URL property.","nullable":true},"mimeType":{"type":"string","description":"MIME type of the Medium.\r\nRequired during Add operations.","nullable":true},"title":{"type":"string","description":"Title of the Medium.","nullable":true},"properties":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"Key-value pairs for additional structured content storage.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false,"description":"Specifications of a Medium object."},"AnswerSpecs":{"type":"object","properties":{"text":{"type":"string","description":"Text of the Answer.\r\nRequired during Add operations.","nullable":true},"preformatted":{"type":"boolean","description":"If ```True```, when this Answer is emitted no reformatting is applied.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false,"description":"Specifications of an Answer object."}}}}
````

## The GetMemoryTagsResponse object

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"GetMemoryTagsResponse":{"type":"object","properties":{"memoryTags":{"type":"array","items":{"type":"string"},"description":"The list of currently known Tags for the Memory object.","nullable":true},"requestID":{"type":"integer","description":"Progressive number of the request (since the Server started).\r\nUse this number, together with the RequestDateTime property,\r\nto report an anomalous response.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous response.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is equivalent to the HTTP\r\nstatus code.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response of a Get Memory Tags request"}}}}
````

## The GetPersonResponse object

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"GetPersonResponse":{"type":"object","properties":{"person":{"$ref":"#/components/schemas/PersonSpecs"},"requestID":{"type":"integer","description":"Progressive number of the request (since the Server started).\r\nUse this number, together with the RequestDateTime property,\r\nto report an anomalous response.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous response.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is equivalent to the HTTP\r\nstatus code.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response of a Get Person request."},"PersonSpecs":{"type":"object","properties":{"personID":{"type":"string","description":"Person object ID.","nullable":true},"personType":{"type":"string","description":"Person type, e.g. ```Giver``` or ```Receiver```.\r\nRequired during Add operations.","nullable":true},"name":{"type":"string","description":"Person name.\r\nMay be ```Null``` only when the Person object is created by\r\nthe Dialog State Machine and the name has not been set yet.","nullable":true},"information":{"type":"string","description":"Person information.\r\nCurrently this is a free (unprocessed) text.","nullable":true},"pin":{"type":"string","description":"Person PIN. Must be a code between ```000000``` and ```999999```.\r\nMay be ```Null``` only when the Person object is created by\r\nthe Dialog State Machine and the PIN has not been set yet.\r\nRequired during Add operations.","nullable":true},"tag":{"type":"string","description":"Person tag.\r\nCan be any publicly visible string that the person recognizes as distinctive.\r\nTypically it is an emoji symbol, but could also be an RFID code or\r\nsomething else.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false,"description":"Specifications of a Person object."}}}}
````

## The GetRandomMemoriesResponse object

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"GetRandomMemoriesResponse":{"type":"object","properties":{"memories":{"type":"array","items":{"$ref":"#/components/schemas/MemorySpecs"},"description":"List of Memory objects.\r\nMay be empty.","nullable":true},"requestID":{"type":"integer","description":"Progressive number of the request (since the Server started).\r\nUse this number, together with the RequestDateTime property,\r\nto report an anomalous response.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous response.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is equivalent to the HTTP\r\nstatus code.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response of a Get Random Memories request."},"MemorySpecs":{"type":"object","properties":{"memoryID":{"type":"string","description":"Memory object ID.","nullable":true},"memoryType":{"type":"string","description":"Memory type, e.g. <code>Question</code>, <code>Story</code> or <code>Default</code>. Required during Add operations. <br> Currently possible values are:<ul> <li><code>Question</code>: this Memory is a question, hence its title is expected in interrogative form</li> <li><code>Story</code>: this Memory is a story, hence its title is expected in affirmative form</li> <li><code>Default</code>: this Memory is a default answer, hence its title is ignored (empty or null)</li> <li><code>CompletionDraft</code>: this Memory is draft from a completion, obtained via a generative AI.</li> <li><code>ExpertReference</code>: this Memory is the results of a question asked to a Board of Experts, and the answer is the name of the Expert that replied to the question.</li> </ul>","nullable":true},"lastRead":{"type":"string","description":"Timestamp of the last time this Memory has been shown to a Receiver.\r\nThis value is also used when picking random memories to avoid showing\r\nmemories that have already been shown recently.\r\n```Null``` if the Memory has not been shown yet.","format":"date-time","nullable":true},"readOccurrences":{"type":"integer","description":"Number of times this Memory has been shown to a Receiver.\r\n```Null``` if the Memory has not been shown yet.","format":"int32","nullable":true},"receiverID":{"type":"string","description":"ID of the Person object to whom this Memory belongs.\r\n```Null``` if the Memory is public. When updating,\r\nset it to a single dash character (```-```) to remove a\r\npreviously set association with a Person.","nullable":true},"receiverTag":{"type":"string","description":"Tag of the Person object to whom this Memory belongs.\r\n```Null``` if the Memory is public.","nullable":true},"receiverName":{"type":"string","description":"Name of the Person object to whom this Memory belongs.\r\n```Null``` if the Memory is public.","nullable":true},"media":{"type":"array","items":{"$ref":"#/components/schemas/MediumSpecs"},"description":"List of Medium objects associated with this Memory.\r\nMay be empty.","nullable":true},"title":{"type":"string","description":"Title of the Question or Story.\r\nNull if this Memory is a Default.","nullable":true},"titleVariants":{"type":"array","items":{"type":"string"},"description":"Title variants of this Question or Story.\r\nEmpty if this Memory is a Default.","nullable":true},"answers":{"type":"array","items":{"$ref":"#/components/schemas/AnswerSpecs"},"description":"List of its Answer objects.\r\nAt least one answer must be present.","nullable":true},"date":{"type":"string","description":"Approximate date associated with this Memory.\r\nWhen updating, set it to midnight Jan. 1st 1 A.D.\r\n(```01/01/01 00:00:00```) to clear any previously set\r\nDate and DateUncertaintyDays.","format":"date-time","nullable":true},"dateUncertaintyDays":{"type":"number","description":"Uncertainty in the date associated with this Memory,\r\nexpressed in days.","format":"double","nullable":true},"placeName":{"type":"string","description":"Name of the place associated with this Memory.\r\nWhen updating, set it to a single dash character\r\n(```-```) to clear any previously set Place (by name or\r\ncoordinates) and PlaceUncertaintyKm.","nullable":true},"placeLatitude":{"type":"number","description":"Latitude of the place associated with this Memory.","format":"double","nullable":true},"placeLongitude":{"type":"number","description":"Longitude of the place associated with this Memory.","format":"double","nullable":true},"placeUncertaintyKm":{"type":"number","description":"Uncertainty of the place associated with this Memory,\r\nexpressed in kilometers.","format":"double","nullable":true},"conclusive":{"type":"boolean","description":"If ```True```, when this Memory is emitted it is NOT followed by a continuation prompt,\r\nsuch as \"Is there anything else you want to know?\".","nullable":true},"notPickable":{"type":"boolean","description":"If ```True```, this Memory can't be randomly picked with a Timeout Event, or\r\nexplicitly searching for random Memory objects.\r\nIgnored for Memory of type Default.","nullable":true},"help":{"type":"boolean","description":"If ```True```, this Memory's content can be emitted if the user fails\r\nto find a question with an answer at the beginning of a session.\r\nIgnored for Memory of type Default.","nullable":true},"hints":{"type":"array","items":{"type":"string"},"description":"Hints for this Memory.","nullable":true},"minTimeout":{"type":"number","description":"Minimum idle timeout, in seconds. If not specified, by default it is set to 20 seconds. <br> The idle timeout is the time after which the client sends a Timeout event and, typically, a random question or story is picked up and proposed to the user. The actual idle timeout is computed as a random number between <code>MinTimeout</code> and <code>MaxTimeout</code> plus the reading time, where the reading time is in turn computed as the time it would take to read the answer at 150 words per minute.","format":"double","nullable":true},"maxTimeout":{"type":"number","description":"Maximum idle timeout, in seconds. If not specified, by default it is set to 40 seconds. <br> The idle timeout is the time after which the client sends a Timeout event and, typically, a random question or story is picked up and proposed to the user. The actual idle timeout is computed as a random number between <code>MinTimeout</code> and <code>MaxTimeout</code> plus the reading time, where the reading time is in turn computed as the time it would take to read the answer at 150 words per minute.","format":"double","nullable":true},"contextVarsToSet":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"List of variable-value pairs to be used to alter the context when this Memory is matched.\r\nUse the special value ```-``` (a single dash character) to clear a context variable.","nullable":true},"contextVarsToMatch":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"List of variable-value pairs to be used to match this Memory with the context. If the context\r\ncontains a variable listed here, the value must match for the Memory to match.","nullable":true},"dcmOutcomeType":{"type":"string","description":"Optional type of the outcome to be sent to the DCM platform when this Memory is emitted.","nullable":true},"dcmOutcomeCode":{"type":"string","description":"Optional code of the outcome to be sent to the DCM platform when this Memory is emitted.","nullable":true},"tags":{"type":"array","items":{"type":"string"},"description":"Tags for this Memory.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false,"description":"Specifications of a Memory object."},"MediumSpecs":{"type":"object","properties":{"mediumID":{"type":"string","description":"Medium object ID.","nullable":true},"url":{"type":"string","description":"URL of the Medium. If specified, the Content property must be ```Null```.\r\nUse this property to link large amounts of data stored externally.\r\nIf the amount of data is modest the Content property may be used as an alternative.","nullable":true},"content":{"type":"string","description":"Content of the Medium. If specified, the URL property must be ```Null```.\r\nDon't use this property to store large amounts of data. Can be used to store limited \r\ntext for a maximum of 10 KiB. For larger amounts store the data externally and link it\r\nvia the URL property.","nullable":true},"mimeType":{"type":"string","description":"MIME type of the Medium.\r\nRequired during Add operations.","nullable":true},"title":{"type":"string","description":"Title of the Medium.","nullable":true},"properties":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"Key-value pairs for additional structured content storage.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false,"description":"Specifications of a Medium object."},"AnswerSpecs":{"type":"object","properties":{"text":{"type":"string","description":"Text of the Answer.\r\nRequired during Add operations.","nullable":true},"preformatted":{"type":"boolean","description":"If ```True```, when this Answer is emitted no reformatting is applied.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false,"description":"Specifications of an Answer object."}}}}
````

## The GetSimilarWordsResponse object

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"GetSimilarWordsResponse":{"type":"object","properties":{"similarWords":{"type":"array","items":{"type":"string"},"description":"List of similar words.","nullable":true},"requestID":{"type":"integer","description":"Progressive number of the request (since the Server started).\r\nUse this number, together with the RequestDateTime property,\r\nto report an anomalous response.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous response.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is equivalent to the HTTP\r\nstatus code.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response of a Get Similar Words request."}}}}
````

## The GetTextQualityIndexesResponse object

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"GetTextQualityIndexesResponse":{"type":"object","properties":{"textQualityIndex":{"type":"number","description":"An index of text quality of this Memori. It is the ratio of\r\ndefined words vs. the total of unique words used in questions\r\nand stories. A value of 1.0 means that no words are undefined,\r\na value of 0.0 means that all words are undefined.\r\nIf ```Null``` it means the index has not changed since\r\nthe last time it was updated.","format":"double","nullable":true},"undefinedWords":{"type":"array","items":{"type":"string"},"description":"List of undefined words found in questions and stories.\r\nUndefined words may have a profound negative impact on the ability\r\nto match content with user input.\r\nIf ```Null``` it means the list has not changed since\r\nthe last time it was updated.","nullable":true},"contentTextQualityIndex":{"type":"number","description":"An index of text quality of the content of this Memori. It is the\r\nratio of correct questions and stories vs. the total number\r\nof questions and stories. A question or story is defined as\r\n\"correct\" if it contains no undefined words, while it is defined\r\nas \"faulty\" if it contains at least one undefined word.\r\nA value of 1.0 means that all questions and stories have no\r\nundefined words, a value of 0.0 means that all questions and\r\nstories contain at least an undefined word.\r\nIf ```Null``` it means the index has not changed since\r\nthe last time it was updated.","format":"double","nullable":true},"faultyMemories":{"type":"array","items":{"$ref":"#/components/schemas/MemorySpecs"},"description":"List of faulty Memory objects (questions and stories). A question\r\nor story is defined as \"faulty\" if it contains at least one\r\nundefined word.\r\nIf ```Null``` it means the list has not changed since\r\nthe last time it was updated.","nullable":true},"requestID":{"type":"integer","description":"Progressive number of the request (since the Server started).\r\nUse this number, together with the RequestDateTime property,\r\nto report an anomalous response.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous response.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is equivalent to the HTTP\r\nstatus code.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response of a Get Text Quality Indexes request."},"MemorySpecs":{"type":"object","properties":{"memoryID":{"type":"string","description":"Memory object ID.","nullable":true},"memoryType":{"type":"string","description":"Memory type, e.g. <code>Question</code>, <code>Story</code> or <code>Default</code>. Required during Add operations. <br> Currently possible values are:<ul> <li><code>Question</code>: this Memory is a question, hence its title is expected in interrogative form</li> <li><code>Story</code>: this Memory is a story, hence its title is expected in affirmative form</li> <li><code>Default</code>: this Memory is a default answer, hence its title is ignored (empty or null)</li> <li><code>CompletionDraft</code>: this Memory is draft from a completion, obtained via a generative AI.</li> <li><code>ExpertReference</code>: this Memory is the results of a question asked to a Board of Experts, and the answer is the name of the Expert that replied to the question.</li> </ul>","nullable":true},"lastRead":{"type":"string","description":"Timestamp of the last time this Memory has been shown to a Receiver.\r\nThis value is also used when picking random memories to avoid showing\r\nmemories that have already been shown recently.\r\n```Null``` if the Memory has not been shown yet.","format":"date-time","nullable":true},"readOccurrences":{"type":"integer","description":"Number of times this Memory has been shown to a Receiver.\r\n```Null``` if the Memory has not been shown yet.","format":"int32","nullable":true},"receiverID":{"type":"string","description":"ID of the Person object to whom this Memory belongs.\r\n```Null``` if the Memory is public. When updating,\r\nset it to a single dash character (```-```) to remove a\r\npreviously set association with a Person.","nullable":true},"receiverTag":{"type":"string","description":"Tag of the Person object to whom this Memory belongs.\r\n```Null``` if the Memory is public.","nullable":true},"receiverName":{"type":"string","description":"Name of the Person object to whom this Memory belongs.\r\n```Null``` if the Memory is public.","nullable":true},"media":{"type":"array","items":{"$ref":"#/components/schemas/MediumSpecs"},"description":"List of Medium objects associated with this Memory.\r\nMay be empty.","nullable":true},"title":{"type":"string","description":"Title of the Question or Story.\r\nNull if this Memory is a Default.","nullable":true},"titleVariants":{"type":"array","items":{"type":"string"},"description":"Title variants of this Question or Story.\r\nEmpty if this Memory is a Default.","nullable":true},"answers":{"type":"array","items":{"$ref":"#/components/schemas/AnswerSpecs"},"description":"List of its Answer objects.\r\nAt least one answer must be present.","nullable":true},"date":{"type":"string","description":"Approximate date associated with this Memory.\r\nWhen updating, set it to midnight Jan. 1st 1 A.D.\r\n(```01/01/01 00:00:00```) to clear any previously set\r\nDate and DateUncertaintyDays.","format":"date-time","nullable":true},"dateUncertaintyDays":{"type":"number","description":"Uncertainty in the date associated with this Memory,\r\nexpressed in days.","format":"double","nullable":true},"placeName":{"type":"string","description":"Name of the place associated with this Memory.\r\nWhen updating, set it to a single dash character\r\n(```-```) to clear any previously set Place (by name or\r\ncoordinates) and PlaceUncertaintyKm.","nullable":true},"placeLatitude":{"type":"number","description":"Latitude of the place associated with this Memory.","format":"double","nullable":true},"placeLongitude":{"type":"number","description":"Longitude of the place associated with this Memory.","format":"double","nullable":true},"placeUncertaintyKm":{"type":"number","description":"Uncertainty of the place associated with this Memory,\r\nexpressed in kilometers.","format":"double","nullable":true},"conclusive":{"type":"boolean","description":"If ```True```, when this Memory is emitted it is NOT followed by a continuation prompt,\r\nsuch as \"Is there anything else you want to know?\".","nullable":true},"notPickable":{"type":"boolean","description":"If ```True```, this Memory can't be randomly picked with a Timeout Event, or\r\nexplicitly searching for random Memory objects.\r\nIgnored for Memory of type Default.","nullable":true},"help":{"type":"boolean","description":"If ```True```, this Memory's content can be emitted if the user fails\r\nto find a question with an answer at the beginning of a session.\r\nIgnored for Memory of type Default.","nullable":true},"hints":{"type":"array","items":{"type":"string"},"description":"Hints for this Memory.","nullable":true},"minTimeout":{"type":"number","description":"Minimum idle timeout, in seconds. If not specified, by default it is set to 20 seconds. <br> The idle timeout is the time after which the client sends a Timeout event and, typically, a random question or story is picked up and proposed to the user. The actual idle timeout is computed as a random number between <code>MinTimeout</code> and <code>MaxTimeout</code> plus the reading time, where the reading time is in turn computed as the time it would take to read the answer at 150 words per minute.","format":"double","nullable":true},"maxTimeout":{"type":"number","description":"Maximum idle timeout, in seconds. If not specified, by default it is set to 40 seconds. <br> The idle timeout is the time after which the client sends a Timeout event and, typically, a random question or story is picked up and proposed to the user. The actual idle timeout is computed as a random number between <code>MinTimeout</code> and <code>MaxTimeout</code> plus the reading time, where the reading time is in turn computed as the time it would take to read the answer at 150 words per minute.","format":"double","nullable":true},"contextVarsToSet":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"List of variable-value pairs to be used to alter the context when this Memory is matched.\r\nUse the special value ```-``` (a single dash character) to clear a context variable.","nullable":true},"contextVarsToMatch":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"List of variable-value pairs to be used to match this Memory with the context. If the context\r\ncontains a variable listed here, the value must match for the Memory to match.","nullable":true},"dcmOutcomeType":{"type":"string","description":"Optional type of the outcome to be sent to the DCM platform when this Memory is emitted.","nullable":true},"dcmOutcomeCode":{"type":"string","description":"Optional code of the outcome to be sent to the DCM platform when this Memory is emitted.","nullable":true},"tags":{"type":"array","items":{"type":"string"},"description":"Tags for this Memory.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false,"description":"Specifications of a Memory object."},"MediumSpecs":{"type":"object","properties":{"mediumID":{"type":"string","description":"Medium object ID.","nullable":true},"url":{"type":"string","description":"URL of the Medium. If specified, the Content property must be ```Null```.\r\nUse this property to link large amounts of data stored externally.\r\nIf the amount of data is modest the Content property may be used as an alternative.","nullable":true},"content":{"type":"string","description":"Content of the Medium. If specified, the URL property must be ```Null```.\r\nDon't use this property to store large amounts of data. Can be used to store limited \r\ntext for a maximum of 10 KiB. For larger amounts store the data externally and link it\r\nvia the URL property.","nullable":true},"mimeType":{"type":"string","description":"MIME type of the Medium.\r\nRequired during Add operations.","nullable":true},"title":{"type":"string","description":"Title of the Medium.","nullable":true},"properties":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"Key-value pairs for additional structured content storage.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false,"description":"Specifications of a Medium object."},"AnswerSpecs":{"type":"object","properties":{"text":{"type":"string","description":"Text of the Answer.\r\nRequired during Add operations.","nullable":true},"preformatted":{"type":"boolean","description":"If ```True```, when this Answer is emitted no reformatting is applied.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false,"description":"Specifications of an Answer object."}}}}
````

## The GetTopicResponse object

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"GetTopicResponse":{"type":"object","properties":{"topic":{"$ref":"#/components/schemas/TopicSpecs"},"requestID":{"type":"integer","description":"Progressive number of the request (since the Server started).\r\nUse this number, together with the RequestDateTime property,\r\nto report an anomalous response.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous response.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is equivalent to the HTTP\r\nstatus code.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response of a Get Topic request."},"TopicSpecs":{"type":"object","properties":{"topicID":{"type":"string","description":"Topic object ID.","nullable":true},"name":{"type":"string","description":"Topic name.","nullable":true},"weight":{"type":"number","description":"Topic weight, i.e. the ratio between the number of times this\r\ntopic has been referenced versus to total number of references.","format":"double"},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false,"description":"Specifications of a Topic object."}}}}
````

## The GetUserResponse object

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"GetUserResponse":{"type":"object","properties":{"user":{"$ref":"#/components/schemas/UserSpecs"},"requestID":{"type":"integer","description":"Progressive number of the request (since the Server started).\r\nUse this number, together with the RequestDateTime property,\r\nto report an anomalous response.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous response.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is equivalent to the HTTP\r\nstatus code.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response of a Get User request."},"UserSpecs":{"type":"object","properties":{"userID":{"type":"string","description":"User object ID.","nullable":true},"externalUserID":{"type":"string","description":"External User ID obtained during session opening.","nullable":true},"userName":{"type":"string","description":"User name.","nullable":true},"tenantName":{"type":"string","description":"Name of the Tenant the User belongs to.","nullable":true},"email":{"type":"string","description":"User e-mail address.","nullable":true},"disableDeepThought":{"type":"boolean","description":"Deep Thought disable flag for the User."},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false,"description":"Specifications of a User object."}}}}
````

## The GuessLanguageResponse object

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"GuessLanguageResponse":{"type":"object","properties":{"languageGuesses":{"type":"object","additionalProperties":{"type":"number","format":"float","nullable":true},"description":"List of languages and their scores.","nullable":true},"requestID":{"type":"integer","description":"Progressive number of the request (since the Server started).\r\nUse this number, together with the RequestDateTime property,\r\nto report an anomalous response.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous response.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is equivalent to the HTTP\r\nstatus code.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response of a Guess Language request."}}}}
````

## The IntentSlotSpecs object

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"IntentSlotSpecs":{"type":"object","properties":{"intentSlotID":{"type":"string","description":"Intent Slot object ID.","nullable":true},"name":{"type":"string","description":"Name of the Intent Slot object. It is part of the ```SlotWebHookRequest```\r\nrequest passed to the web hook.\r\nRequired during Add operations.","nullable":true},"values":{"type":"array","items":{"type":"string"},"description":"List of possible values of the slot.\r\nA slot may be composed of fixed values in this property,\r\ndynamic values fetched from the web hook, or a combination of both.\r\nEach value is considered only once (duplicate values are ignored).","nullable":true},"webHook":{"type":"string","description":"HTTP URL of the web hook to be called when the slot values must be fetched.\r\nMay be null if the slot is composed only of fixed values in\r\nthe ```Values``` property.\r\nIf specified, the web hook is called periodically with an HTTP POST call,\r\npassing a ```SlotWebHookRequest``` and expecting a ```SlotWebHookResponse```\r\nin response. Periodicity is determined by the ```ValidityMinutes``` property,\r\nwith a minimum of 0.5 (30 seconds).","nullable":true},"validityMinutes":{"type":"number","description":"Time to cache the slot values, expressed in minutes. May be\r\nfractional. A cached slot response is used only when the a subsequent slot request\r\nmatches exactly the original request.\r\nSee also ```RequestValidityMinutes``` in ```WebHookRequest```.","format":"double","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false,"description":"Specifications of an Intent Slot object."}}}}
````

## The IntentSpecs object

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"IntentSpecs":{"type":"object","properties":{"intentID":{"type":"string","description":"Intent object ID.","nullable":true},"intentType":{"type":"string","description":"Function type, e.g. ```Internal``` or ```WebHook```.\r\nInternal intents are a limited subset implemented internally,\r\nwhile WebHook intents perform an external HTTP POST call to the\r\nspecified web hook, passing an ```IntentWebHookRequest```\r\nand expecting an ```IntentWebHookResponse``` in response.\r\nRequired during Add operations.\r\nIgnored during Update operations.","nullable":true},"name":{"type":"string","description":"Name of the Intent object. It is part of the ```IntentWebHookRequest```\r\nrequest passed to the web hook.\r\nRequired during Add operations.","nullable":true},"utterances":{"type":"array","items":{"$ref":"#/components/schemas/UtteranceSpecs"},"description":"List of accepted Utterance objects for this Intent, i.e. the\r\nlist of text sentences that can be used to express the intent.\r\nUtterances may include variable parts in the sentence by the use of\r\none or more slots. Slots are specified using the syntax ```{slot}```,\r\nwhere \"slot\" is the slot name. If present, their value is part of the\r\n```IntentWebHookRequest``` passed to the web hook. Each slot\r\ncan be present only once in the sentence, and must have been previously\r\ndefined with a Intent Slot object.\r\nA special slot is the ```{date}``` slot, which represents a\r\nperiod of time such as \"today\", \"yesterday\", \"last week\", \"next month\" etc.\r\nIts values is passed in the ```IntentWebHookRequest``` as the\r\n```BeginUTC``` and ```EndUTC``` properties.\r\nRequired during Add operations.","nullable":true},"timeoutIntent":{"type":"boolean","description":"If ```True``` this Intent may be executed to serve a Timeout event\r\nin R1 state. In this case the utterance is null.\r\nIn case more than one Intent have this flag set, a random one is picked.","nullable":true},"webHook":{"type":"string","description":"HTTP URL of the web hook to be called when the intent is recognized.\r\nIf the intent is of Internal type, it is ignored.","nullable":true},"validityMinutes":{"type":"number","description":"Time to cache the intent response, expressed in minutes. May be\r\nfractional. A cached intent response is used only when the a subsequent intent request\r\nmatches exactly the original request.\r\nSee also ```RequestValidityMinutes``` in ```WebHookRequest```.","format":"double","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false,"description":"Specifications of an Intent object."},"UtteranceSpecs":{"type":"object","properties":{"utteranceID":{"type":"string","description":"Utterance object ID.","nullable":true},"text":{"type":"string","description":"Accepted Utterance object for its corresponding intent, i.e. the\r\ntext sentence that can be used to express the intent.\r\nAn Utterance may include variable parts in the sentence by the use of\r\none or more slots. Slots are specified using the syntax ```{slot}```,\r\nwhere \"slot\" is the slot name. If present, their value is part of the\r\n```IntentWebHookRequest``` passed to the web hook. Each slot\r\ncan be present only once in the sentence, and must have been previously\r\ndefined with a Intent Slot object.\r\nA special slot is the ```{date}``` slot, which represents a\r\nperiod of time such as \"today\", \"yesterday\", \"last week\", \"next month\" etc.\r\nIts values is passed in the ```IntentWebHookRequest``` as the\r\n```BeginUTC``` and ```EndUTC``` properties.\r\nRequired during Add operations.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false,"description":"Specifications of an Utterance object."}}}}
````

## The IntentWebHookRequest object

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"IntentWebHookRequest":{"type":"object","properties":{"intentName":{"type":"string","description":"Name of the intent.","nullable":true},"utterance":{"type":"string","description":"Intent utterance as received by the Dialog State Machine.\r\nIf ```Null``` the Intent is being called on a Timeout event.","nullable":true},"slotValues":{"type":"object","additionalProperties":{"type":"string"},"description":"Values of intent slots extracted from the utterance.","nullable":true},"sessionID":{"type":"string","description":"ID of the session where the request is being performed. <br> This property is not used to match a request with cached responses of the same request, i.e.: two requests with identical properties but different <code>SessionID</code> are considered identical.","nullable":true},"media":{"type":"array","items":{"$ref":"#/components/schemas/WebHookMediumSpecs"},"description":"List of Medium objects added with previous Medium Selected events\r\nand to be used in intent execution.","nullable":true},"currentTag":{"type":"string","description":"Latest tag set with a Tag Changed event. May be ```Null```\r\nif the Memori session is currently anonymous.","nullable":true},"currentTagAuthenticated":{"type":"boolean","description":"```True``` if the CurrentTag refers to a person and they have\r\n            been authenticated through their PIN. ```False``` otherwise."},"currentDateUTC":{"type":"string","description":"Latest date/time set with a Date Changed event. May be ```Null```\r\nif the Memori session has no date/time set.","format":"date-time","nullable":true},"currentPlace":{"$ref":"#/components/schemas/WebHookLocationSpecs"},"timeZone":{"type":"string","description":"Time zone of the request, expressed as a TZ database name.\r\nE.g. ```Europe/Rome``` or ```America/Los_Angeles```.\r\nShould be considered when the request depends on a date/time,\r\nsince they are always specified in the UTC time zone.","nullable":true},"beginUTC":{"type":"string","description":"Beginning of the date/time range the request refers to. If the\r\nintent uses the ```date``` slot, this corresponds to the\r\ninitial timestamp of the date range. E.g. for \"today\" it is set\r\nto the instant of midnight of the current day, in the UTC time zone.\r\nIf the intent does not use the ```date``` slot, ```BeginUTC```\r\nand ```EndUTC``` are set by default to the date range of today.","format":"date-time"},"endUTC":{"type":"string","description":"Ending of the date/time range the request refers to. If the\r\nintent uses the ```date``` slot, this corresponds to the\r\nfinal timestamp of the date range. E.g. for \"today\" it is set\r\nto the instant of midnight of the next day, in the UTC time zone.\r\nIf the intent does not use the ```date``` slot, ```BeginUTC```\r\nand ```EndUTC``` are set by default to the date range of today.","format":"date-time"},"contextVars":{"type":"object","additionalProperties":{"type":"string"},"description":"Values of context variables accumulated so far by the Dialog State Machine.","nullable":true},"transitionHistory":{"type":"array","items":{"$ref":"#/components/schemas/WebHookTransitionSpecs"},"description":"List of previous transitions that have been performed by the Dialog State Machine.\r\nMay be empty.","nullable":true},"userEmail":{"type":"string","description":"E-mail address of the current user, if available.","nullable":true},"requestID":{"type":"integer","description":"Progressive number of the request. It is NOT a unique number, since it is reset each time the Server is restarted, but together with <code>RequestDateTime</code> (and optionally <code>MemoriID</code>) they form a reasonably unique identifier. <br> This property is not used to match a request with cached responses of the same request, i.e.: two requests with identical properties but different <code>RequestID</code> are considered identical.","format":"int64","readOnly":true},"requestDateTime":{"type":"string","description":"Timestamp of the request in UTC time zone. <br> This property is not used to match a request with cached responses of the same request, i.e.: two requests with identical properties but different <code>RequestDateTime</code> are considered identical.","format":"date-time","readOnly":true},"requestValidityMinutes":{"type":"number","description":"Validity of the request, expressed in minutes, i.e. the time the response will be cached and considered valid. After this time the response will be automatically discarded. <br> Two requests are considered identical (and the cached response of the first may be used for the second) if ALL of their parameters are identical EXCEPT <code>RequestID</code>, <code>RequestDateTime</code> and <code>RequestValidityMinutes</code>, and additionally <code>SessionID</code> for IntentWebHookRequest.","format":"double","readOnly":true},"memoriID":{"type":"string","description":"ID of the Memori performing the request.","nullable":true},"culture":{"type":"string","description":"Culture of the request, expressed as a combination of\r\nan ISO-639 language code and an ISO-3166 country code.\r\nE.g. ```it-IT``` or ```en-US```.","nullable":true}},"additionalProperties":false,"description":"Specifications for an Intent Web Hook request."},"WebHookMediumSpecs":{"type":"object","properties":{"mediumID":{"type":"string","description":"Medium object ID.\r\nRequired.","nullable":true},"title":{"type":"string","description":"Title of the Medium.","nullable":true},"url":{"type":"string","description":"URL of the Medium. If specified, the Content property must be ```Null```.\r\nUse this property to link large amounts of data stored externally.\r\nIf the amount of data is modest the Content property may be used as an alternative.","nullable":true},"content":{"type":"string","description":"Content of the Medium. If specified, the URL property must be ```Null```.\r\nDon't use this property to store large amounts of data. Can be used to store limited \r\ntext for a maximum of 10 KiB. For larger amounts store the data externally and link it\r\nvia the URL property.","nullable":true},"mimeType":{"type":"string","description":"MIME type of the Medium.\r\nRequired.","nullable":true},"properties":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"Key-value pairs for additional structured content storage.","nullable":true}},"additionalProperties":false,"description":"Specifications of a Web Hook Medium object."},"WebHookLocationSpecs":{"type":"object","properties":{"placeName":{"type":"string","description":"Name of the place. May be ```Null``` if the place has\r\nbeen specified only by coordinates and uncertainty.","nullable":true},"latitude":{"type":"number","description":"Latitude of the place.\r\nRequired.","format":"double"},"longitude":{"type":"number","description":"Longitude of the place.\r\nRequired.","format":"double"},"uncertaintyKm":{"type":"number","description":"Uncertainty of the place, expressed in kilometers.\r\nRequired.","format":"double"}},"additionalProperties":false,"description":"Specifications of a Web Hook Location object."},"WebHookTransitionSpecs":{"type":"object","properties":{"enteredText":{"type":"string","description":"Text value of the TextEntered event that triggered the transition.\r\nMay be ```Null``` if the transition was triggered by a Timeout event.","nullable":true},"enteredMedia":{"type":"array","items":{"$ref":"#/components/schemas/WebHookMediumSpecs"},"description":"List of Medium objects attached to the TextEntered event.\r\nMay be ```Null``` if the transition was triggered by a Timeout event.","nullable":true},"emission":{"type":"string","description":"Text of the emission resulting from the transition.\r\nMay be ```Null``` if the transition event was ignored.","nullable":true},"emittedMedia":{"type":"array","items":{"$ref":"#/components/schemas/WebHookMediumSpecs"},"description":"List of Medium objects emitted with the transition together with the Emission text.","nullable":true}},"additionalProperties":false,"description":"Specifications of a Web Hook Transition object."}}}}
````

## The IntentWebHookResponse object

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"IntentWebHookResponse":{"type":"object","properties":{"emission":{"type":"string","description":"Text to be used as the Emission of the Dialog State Machine.\r\nIf ```Null``` the Dialog State Machine will try to provide an\r\nanswer by other means. This also applies during tunneling in T2 state\r\n(see ```Tunneling```).","nullable":true},"preformatted":{"type":"boolean","description":"If ```True```, when this response is emitted no reformatting is applied."},"conclusive":{"type":"boolean","description":"If ```True```, when this response is emitted it is NOT followed by a continuation prompt,\r\nsuch as \"Is there anything else you want to know?\"."},"media":{"type":"array","items":{"$ref":"#/components/schemas/WebHookMediumSpecs"},"description":"List of Medium objects associated with this response.\r\nMay be empty.","nullable":true},"hints":{"type":"array","items":{"type":"string"},"description":"List of hints to be suggested together with the Emission.","nullable":true},"minTimeout":{"type":"number","description":"Minimum idle timeout, in seconds. If not specified, by default it is set to 20 seconds. <br> The idle timeout is the time after which the client sends a Timeout event and, typically, a random question or story is picked up and proposed to the user, or a timeout intent is invoked. The actual idle timeout is computed as a random number between <code>MinTimeout</code> and <code>MaxTimeout</code> plus the reading time, where the reading time is in turn computed as the time it would take to read the <code>Emission</code> at 150 words per minute.","format":"double","nullable":true},"maxTimeout":{"type":"number","description":"Maximum idle timeout, in seconds. If not specified, by default it is set to 40 seconds. <br> The idle timeout is the time after which the client sends a TimedOut event and, typically, a random question or story is picked up and proposed to the user, or a timeout intent is invoked. The actual idle timeout is computed as a random number between <code>MinTimeout</code> and <code>MaxTimeout</code> plus the reading time, where the reading time is in turn computed as the time it would take to read the <code>Emission</code> at 150 words per minute.","format":"double","nullable":true},"contextVarsToSet":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"List of variable-value pairs to be used to alter the context when this response is emitted.\r\nUse the special value ```-``` (a single dash character) to clear a context variable.","nullable":true},"memoryTags":{"type":"array","items":{"type":"string"},"description":"Optional list of memory tags to be associated with this response.","nullable":true},"tunneling":{"type":"boolean","description":"If ```True``` the Dialog State Machine enters the special T2 state\r\nand will send any subsequent entered text to the Intent Web Hook. When set to\r\n```False``` the Dialog State Machine will return to the R1 state."},"requestID":{"type":"integer","description":"Progressive number of the original request this response refers to.\r\nRequired.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the original request this response refers to, in UTC time zone.\r\nRequired.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code of the request. Must be set to ```0``` if the request\r\nsucceeded. Any other value will be considered a failure, but the value\r\nwill be logged for subsequent diagnosis.\r\nRequired.","format":"int32"},"resultMessage":{"type":"string","description":"Result message of the request. Must be set to ```Ok``` if the request\r\nsucceeded. Any other value will be considered a failure, but the value\r\nwill be logged for subsequent diagnosis.\r\nRequired.","nullable":true}},"additionalProperties":false,"description":"Specifications for an Intent Web Hook response."},"WebHookMediumSpecs":{"type":"object","properties":{"mediumID":{"type":"string","description":"Medium object ID.\r\nRequired.","nullable":true},"title":{"type":"string","description":"Title of the Medium.","nullable":true},"url":{"type":"string","description":"URL of the Medium. If specified, the Content property must be ```Null```.\r\nUse this property to link large amounts of data stored externally.\r\nIf the amount of data is modest the Content property may be used as an alternative.","nullable":true},"content":{"type":"string","description":"Content of the Medium. If specified, the URL property must be ```Null```.\r\nDon't use this property to store large amounts of data. Can be used to store limited \r\ntext for a maximum of 10 KiB. For larger amounts store the data externally and link it\r\nvia the URL property.","nullable":true},"mimeType":{"type":"string","description":"MIME type of the Medium.\r\nRequired.","nullable":true},"properties":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"Key-value pairs for additional structured content storage.","nullable":true}},"additionalProperties":false,"description":"Specifications of a Web Hook Medium object."}}}}
````

## The InteractionEnergyImpact object

```json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"InteractionEnergyImpact":{"type":"object","properties":{"energy":{"type":"number","format":"double","nullable":true},"energyUnit":{"type":"string","nullable":true},"gwp":{"type":"number","format":"double","nullable":true},"gwpUnit":{"type":"string","nullable":true},"adPe":{"type":"number","format":"double","nullable":true},"adPeUnit":{"type":"string","nullable":true},"pe":{"type":"number","format":"double","nullable":true},"peUnit":{"type":"string","nullable":true},"wcf":{"type":"number","format":"double","nullable":true},"wcfUnit":{"type":"string","nullable":true}},"additionalProperties":false}}}}
```

## The InteractionLLMUsage object

```json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"InteractionLLMUsage":{"type":"object","properties":{"provider":{"type":"string","nullable":true},"model":{"type":"string","nullable":true},"totalInputTokens":{"type":"integer","format":"int32"},"inputCacheReadTokens":{"type":"integer","format":"int32"},"inputCacheWriteTokens":{"type":"integer","format":"int32"},"outputTokens":{"type":"integer","format":"int32"},"durationMs":{"type":"integer","format":"int32"},"energyImpact":{"$ref":"#/components/schemas/InteractionEnergyImpact"}},"additionalProperties":false},"InteractionEnergyImpact":{"type":"object","properties":{"energy":{"type":"number","format":"double","nullable":true},"energyUnit":{"type":"string","nullable":true},"gwp":{"type":"number","format":"double","nullable":true},"gwpUnit":{"type":"string","nullable":true},"adPe":{"type":"number","format":"double","nullable":true},"adPeUnit":{"type":"string","nullable":true},"pe":{"type":"number","format":"double","nullable":true},"peUnit":{"type":"string","nullable":true},"wcf":{"type":"number","format":"double","nullable":true},"wcfUnit":{"type":"string","nullable":true}},"additionalProperties":false}}}}
```

## The KnownFactSpecs object

```json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"KnownFactSpecs":{"type":"object","properties":{"knownFactID":{"type":"string","description":"Known Fact object ID.","nullable":true},"knownFactType":{"type":"string","description":"Known Fact type, e.g. <code>ShortTerm</code> or <code>LongTerm</code>. <br> Currently possible values are:<ul> <li><code>ShortTerm</code>: this Known Fact is always used during conversations</li> <li><code>LongTerm</code>: this Known Fact is used during conversations only if relevant to the current question</li> </ul>","nullable":true},"text":{"type":"string","description":"Text of the Known Fact.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false,"description":"Specifications of a Known Fact object."}}}}
```

## The ListChatLogsResponse object

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"ListChatLogsResponse":{"type":"object","properties":{"chatLogs":{"type":"array","items":{"$ref":"#/components/schemas/ChatLogSpecs"},"description":"List of Chat Log objects.\r\nMay be empty.","nullable":true},"count":{"type":"integer","description":"Total number of ChatLog objects","format":"int32"},"requestID":{"type":"integer","description":"Progressive number of the request (since the Server started).\r\nUse this number, together with the RequestDateTime property,\r\nto report an anomalous response.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous response.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is equivalent to the HTTP\r\nstatus code.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response of a List Chat Logs request."},"ChatLogSpecs":{"type":"object","properties":{"chatLogID":{"type":"string","description":"Chat Log object ID.","nullable":true},"timestamp":{"type":"string","description":"Timestamp UTC of the chat log creation.","format":"date-time"},"memoriID":{"type":"string","description":"ID of the related Memori object.","nullable":true},"userID":{"type":"string","description":"ID of the related User object.\r\nMay be null if no User is associated with the session.","nullable":true},"userAgent":{"type":"string","description":"The user agent information associated with the chat session.","nullable":true},"ipAddress":{"type":"string","description":"The IP address associated with a chat log or event.","nullable":true},"eMail":{"type":"string","description":"The email address of the user associated with the chat log.","nullable":true},"sessionID":{"type":"string","description":"ID of the related session.","nullable":true},"boardOfExperts":{"type":"boolean","description":"True if this chat log was performed with the Memori\r\nconfigured as a Board of Experts."},"receiverTag":{"type":"string","description":"Tag of the Person object authenticated in the session.\r\n```Null``` if anonymous performed the chat.","nullable":true},"continuesFrom":{"$ref":"#/components/schemas/ChatLogSpecs"},"continuesTo":{"type":"array","items":{"$ref":"#/components/schemas/ChatLogSpecs"},"description":"If set, this chat log continues in the pointed chat logs. <br> The pointed Chat Log objects are only proxies for listing purposes: they do not contain their Chat Line objects. If they, in turn, have continues, their ContinuesTo property is NOT set.","nullable":true},"lines":{"type":"array","items":{"$ref":"#/components/schemas/ChatLineSpecs"},"description":"List of the current chat's Chat Line objects.","nullable":true}},"additionalProperties":false,"description":"Specifications of a Chat Log object."},"ChatLineSpecs":{"type":"object","properties":{"timestamp":{"type":"string","description":"Timestamp UTC of the line.","format":"date-time"},"inbound":{"type":"boolean","description":"If ```True``` the line is the text from a Text Entered Event.\r\nIf ```False``` the line is Dialog State Machine emission."},"completion":{"type":"boolean","description":"If ```True``` the text is a completion obtained via\r\na generative AI.\r\nCan only be ```True``` for outbound lines."},"acceptsFeedback":{"type":"boolean","description":"If ```True``` the line is the result of a high confidence\r\nMemory object match, and as such can be subject to feedback.\r\nCan only be ```True``` for outbound lines."},"text":{"type":"string","description":"Text of the line.","nullable":true},"emitter":{"type":"string","description":"Name of the Memori that provided the text. Used with Board of Experts model.\r\n```Null``` for inbound lines, if no Board of Experts is configured,\r\nor if the Memori providing the text is the chairman of the Board.","nullable":true},"media":{"type":"array","items":{"$ref":"#/components/schemas/ChatMediumSpecs"},"description":"Media attached with the Dialog State Machine emission, if present.\r\nEmpty if the line is inbound.","nullable":true},"memoryID":{"type":"string","description":"ID of the Memory object referenced in this line.","nullable":true},"contextVars":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"Dialog State Machine context variables after the emission, if present.\r\nEmpty if the line is inbound.","nullable":true},"llmUsage":{"$ref":"#/components/schemas/InteractionLLMUsage"}},"additionalProperties":false,"description":"Specifications of a Chat Line object."},"ChatMediumSpecs":{"type":"object","properties":{"url":{"type":"string","description":"URL of the Medium. If specified, the Content property is ```Null```.","nullable":true},"content":{"type":"string","description":"Content of the Medium. If specified, the URL property is ```Null```.","nullable":true},"mimeType":{"type":"string","description":"MIME type of the Medium.","nullable":true},"title":{"type":"string","description":"Title of the Medium.","nullable":true},"properties":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"Key-value pairs for additional structured content storage.","nullable":true}},"additionalProperties":false,"description":"Specifications of a Chat Medium object."},"InteractionLLMUsage":{"type":"object","properties":{"provider":{"type":"string","nullable":true},"model":{"type":"string","nullable":true},"totalInputTokens":{"type":"integer","format":"int32"},"inputCacheReadTokens":{"type":"integer","format":"int32"},"inputCacheWriteTokens":{"type":"integer","format":"int32"},"outputTokens":{"type":"integer","format":"int32"},"durationMs":{"type":"integer","format":"int32"},"energyImpact":{"$ref":"#/components/schemas/InteractionEnergyImpact"}},"additionalProperties":false},"InteractionEnergyImpact":{"type":"object","properties":{"energy":{"type":"number","format":"double","nullable":true},"energyUnit":{"type":"string","nullable":true},"gwp":{"type":"number","format":"double","nullable":true},"gwpUnit":{"type":"string","nullable":true},"adPe":{"type":"number","format":"double","nullable":true},"adPeUnit":{"type":"string","nullable":true},"pe":{"type":"number","format":"double","nullable":true},"peUnit":{"type":"string","nullable":true},"wcf":{"type":"number","format":"double","nullable":true},"wcfUnit":{"type":"string","nullable":true}},"additionalProperties":false}}}}
````

## The ListCorrelationPairsResponse object

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"ListCorrelationPairsResponse":{"type":"object","properties":{"count":{"type":"integer","description":"Total number of Correlation Pair objects.","format":"int32"},"correlationPairs":{"type":"array","items":{"$ref":"#/components/schemas/CorrelationPairSpecs"},"description":"List of Correlation Pair objects.\r\nMay be empty.","nullable":true},"requestID":{"type":"integer","description":"Progressive number of the request (since the Server started).\r\nUse this number, together with the RequestDateTime property,\r\nto report an anomalous response.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous response.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is equivalent to the HTTP\r\nstatus code.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response of a List Correlation Pairs request."},"CorrelationPairSpecs":{"type":"object","properties":{"pairID":{"type":"string","description":"Correlation Pair object ID.","nullable":true},"text1":{"type":"string","description":"First text of the Correlation Pair, typically a question coming from a Receiver.","nullable":true},"text2":{"type":"string","description":"Second text of the Correlation Pair, typically the original question introduced by the Giver.","nullable":true},"correlated":{"type":"boolean","description":"```True``` if the texts must be considered correlated."},"occurrences":{"type":"integer","description":"Number of times these the first text has been correlated to the second.","format":"int32"},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false,"description":"Specifications of a Correlation Pair object."}}}}
````

## The ListCustomWordsResponse object

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"ListCustomWordsResponse":{"type":"object","properties":{"count":{"type":"integer","description":"Total number of Custom Word objects.","format":"int32"},"customWords":{"type":"array","items":{"$ref":"#/components/schemas/CustomWordSpecs"},"description":"List of Custom Word objects.\r\nMay be empty.","nullable":true},"requestID":{"type":"integer","description":"Progressive number of the request (since the Server started).\r\nUse this number, together with the RequestDateTime property,\r\nto report an anomalous response.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous response.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is equivalent to the HTTP\r\nstatus code.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response of a List Custom Words request."},"CustomWordSpecs":{"type":"object","properties":{"customWordID":{"type":"string","description":"Custom Word object ID.","nullable":true},"word":{"type":"string","description":"Custom Word.","nullable":true},"definition":{"type":"string","description":"Definition of the Custom Word, in terms of sums and subtractions of existing words or custom words. <br> The syntax for a Custom Word definition is as follows: <code>word1 [+-] word2 [+-] word3...</code> If the operator is omitted it is assumed to be the last specified from the left, and if no operator has been specified it is assumed to be the sum. E.g.:<ul> <li><code>alpha beta gamma</code> is equivalent to <code>alpha + beta + gamma</code></li> <li><code>alpha beta - gamma delta</code> is equivalent to <code>alpha + beta - gamma - delta</code></li> </ul>","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false,"description":"Specifications of a Custom Word object."}}}}
````

## The ListEventLogsResponse object

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"ListEventLogsResponse":{"type":"object","properties":{"eventLogs":{"type":"array","items":{"$ref":"#/components/schemas/EventLogSpecs"},"description":"List of Event Log objects.\r\nMay be empty.","nullable":true},"requestID":{"type":"integer","description":"Progressive number of the request (since the Server started).\r\nUse this number, together with the RequestDateTime property,\r\nto report an anomalous response.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous response.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is equivalent to the HTTP\r\nstatus code.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response of a List Event Logs request."},"EventLogSpecs":{"type":"object","properties":{"eventLogID":{"type":"string","description":"Event Log object ID.","nullable":true},"timestamp":{"type":"string","description":"Timestamp UTC of the event.","format":"date-time"},"eventType":{"type":"string","description":"Type of the event (Memori opened, Memori close, question answered correctly, question answered incorrectly, question not answered, intent matched etc.). <br> It may be one of the following:<ul> <li><code>MemoriOpened</code></li> <li><code>MemoriClosed</code></li> <li><code>QuestionAnsweredCorrectly</code></li> <li><code>QuestionAnsweredIncorrectly</code></li> <li><code>QuestionNotAnswered</code></li> <li><code>IntentMatched</code></li> <li><code>DCMOutcomeSent</code></li> </ul>","nullable":true},"memoriID":{"type":"string","description":"ID of the related Memori object.","nullable":true},"userID":{"type":"string","description":"ID of the related User object.\r\nMay be null if no User is associated with the session.","nullable":true},"sessionID":{"type":"string","description":"ID of the session where the event happened.","nullable":true},"maintenanceType":{"type":"string","description":"Type of maintenance associated with this event. It may be present only for <code>MemoriOpened</code> event types. For internal use only. <br> It may be one of the following:<ul> <li><code>None</code></li> <li><code>ConsumptionJob</code></li> <li><code>ChatLogExtractionJob</code></li> <li><code>ContentQualityJob</code></li> </ul>","nullable":true},"deepThoughtEnabled":{"type":"boolean","description":"True if the session where the event happened had Deep Thought enabled.\r\nIt may be present only for ```MemoriOpened``` event types."},"userAgent":{"type":"string","description":"When the event type is a Memori opened event, it reports the\r\nuser agent of the counterpart, if available.\r\nNull in other cases.","nullable":true},"ipAddress":{"type":"string","description":"When the event type is ```MemoriOpened```, it reports the\r\nIP address of the counterpart, if available.\r\nNull in other cases.","nullable":true},"additionalInfo":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"When the event type is ```MemoriOpened```, it contains\r\nadditional key-value pairs for the session specified during\r\nsession opening.\r\nNull in other cases.","nullable":true},"memoryID":{"type":"string","description":"When the event type is ```QuestionAnsweredCorrectly``` or\r\n```QuestionAnsweredIncorrectly```, it is the ID of the related Memory\r\nobject. Null in other cases.","nullable":true},"intentID":{"type":"string","description":"When the event type is ```IntentMatched```, it is the ID of the related\r\nIntent object. Null in other cases.","nullable":true},"enteredText":{"type":"string","description":"When the event type is ```QuestionAnsweredCorrectly```,\r\n```QuestionAnsweredIncorrectly```, ```QuestionNotAnswered```\r\nor ```IntentMatched```, it is the original text entered by\r\nthe user. Null in other cases.","nullable":true},"receiverTag":{"type":"string","description":"When the event type is ```QuestionAnsweredCorrectly```,\r\n```QuestionAnsweredIncorrectly```, ```QuestionNotAnswered```\r\nor ```IntentMatched```, it is the current Receiver tag, if\r\npresent. Null in other cases.","nullable":true},"dcmOutcomeRefID":{"type":"string","description":"When the event type is ```DCMOutcomeSent```, reports the ID\r\nassociated with the outcome sent to the DCM platform.\r\nNull in other cases.","nullable":true},"dcmOutcomeType":{"type":"string","description":"When the event type is ```DCMOutcomeSent```, reports the type\r\nof outcome sent to the DCM platform.\r\nNull in other cases.","nullable":true},"dcmOutcomeCode":{"type":"string","description":"When the event type is ```DCMOutcomeSent```, reports the code\r\nof outcome sent to the DCM platform.\r\nNull in other cases.","nullable":true}},"additionalProperties":false,"description":"Specifications of an Event Log object."}}}}
````

## The ListExpertReferencesResponse object

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"ListExpertReferencesResponse":{"type":"object","properties":{"count":{"type":"integer","description":"Total number of Expert Reference objects.","format":"int32"},"experts":{"type":"array","items":{"$ref":"#/components/schemas/ExpertReferenceSpecs"},"description":"List of Expert Reference objects.\r\nMay be empty.","nullable":true},"requestID":{"type":"integer","description":"Progressive number of the request (since the Server started).\r\nUse this number, together with the RequestDateTime property,\r\nto report an anomalous response.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous response.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is equivalent to the HTTP\r\nstatus code.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response of a List Expert References request."},"ExpertReferenceSpecs":{"type":"object","properties":{"expertID":{"type":"string","description":"Expert Reference object ID.\r\nReturned during Get operations.\r\nIgnored in other cases.","nullable":true},"name":{"type":"string","description":"Name of the expert.\r\nReturned during Get operations.\r\nRequired during Add operations.\r\nOptional during Update operations.","nullable":true},"description":{"type":"string","description":"Description of the expert, i.e. a list of the expert's skills and knowledge.\r\nReturned during Get operations.\r\nRequired during Add operations.\r\nOptional during Update operations.","nullable":true},"default":{"type":"boolean","description":"If ```True```, this expert is used when no other expert\r\nis competent for the current question.\r\nReturned during Get operations.\r\nOptional during Add operations.\r\nOptional during Update operations.","nullable":true},"expertMemoriID":{"type":"string","description":"ID of the expert Memori.\r\nReturned during Get operations.\r\nRequired during Add operations.\r\nOptional during Update operations.","nullable":true},"expertPassword":{"type":"string","description":"Password of the expert Memori. Required if the chained Memori is private or secret.\r\nOptional during Add operations and Update operations.\r\nIgnore in other cases.","nullable":true},"expertBaseURL":{"type":"string","description":"Base URL of a chained Memori, typically ```https://engine.memori.ai/```.\r\nReturned during Get operations.\r\nRequired during Add operations.\r\nOptional during Update operations.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false}}}}
````

## The ListFunctionsResponse object

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"ListFunctionsResponse":{"type":"object","properties":{"count":{"type":"integer","description":"Total number of Function objects.","format":"int32"},"functions":{"type":"array","items":{"$ref":"#/components/schemas/FunctionSpecs"},"description":"List of Function objects.\r\nMay be empty.","nullable":true},"requestID":{"type":"integer","description":"Progressive number of the request (since the Server started).\r\nUse this number, together with the RequestDateTime property,\r\nto report an anomalous response.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous response.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is equivalent to the HTTP\r\nstatus code.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response of a List Functions request."},"FunctionSpecs":{"type":"object","properties":{"functionID":{"type":"string","description":"Function object ID.","nullable":true},"functionType":{"type":"string","description":"Function type, e.g. ```Internal``` or ```WebHook```.\r\nInternal functions are a limited subset implemented internally,\r\nwhile WebHook intents perform an external HTTP call to the\r\nspecified web hook, using the specified templates.\r\nRequired during Add operations.\r\nIgnored during Update operations.","nullable":true},"name":{"type":"string","description":"Name of the Function object.\r\nRequired during Add operations.","nullable":true},"description":{"type":"string","description":"Description of the Function object. The description is provided to the\r\ngenerative AI to help it understand the purpose of the function.\r\nRequired during Add operations.","nullable":true},"parameters":{"type":"array","items":{"$ref":"#/components/schemas/FunctionParameterSpecs"},"description":"List of its Function Parameter objects.\r\nMay be empty.","nullable":true},"webHook":{"type":"string","description":"HTTP URL of the web hook to be called when the function is invoked,\r\nup to the path part. The query string part is specified separately.\r\nIt may include the value of function parameters using the syntax ```{parameter}```,\r\nwhere \"parameter\" is the parameter name. E.g.: ```http://example.com/{param}/something```.\r\nIf the function is of Internal type, it is ignored.","nullable":true},"httpMethod":{"type":"string","description":"HTTP method to be used when calling the web hook, e.g. \"GET\", \"POST\" etc.\r\nIf the function is of Internal type, it is ignored.","nullable":true},"httpHeaders":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"Optional set of HTTP headers to be passed to the web hook.\r\nIf the function is of Internal type, it is ignored.","nullable":true},"httpQueryStringTemplate":{"type":"string","description":"Template of the HTTP query string to be passed to the web hook.\r\nIt may include the value of function parameters using the syntax ```{parameter}```,\r\nwhere \"parameter\" is the parameter name. E.g.: ```param1={param1}&param2={param2}```.\r\nIf the function is of Internal type, it is ignored.","nullable":true},"httpBodyTemplate":{"type":"string","description":"Template of the HTTP request body to be passed to the web hook.\r\nIt may be in any format (JSON, XML etc.), and may include the value of function \r\nparameters using the syntax ```{parameter}```, where \"parameter\"\r\nis the parameter name. E.g.: ```{ \"param1\": \"{param1}\", \"param2\": \"{param2}\" }```,\r\nor: ```<request><param1>{param1}</param1><param2>{param2}</param2></request>```.\r\nIf the function is of Internal type, it is ignored.","nullable":true},"httpBodyContentType":{"type":"string","description":"MIME type of the HTTP request body to be passed to the web hook.\r\nIf not specified \"text/plain\" is assumed.\r\nIf the function is of Internal type, it is ignored.","nullable":true},"sendExtensionHeaders":{"type":"array","items":{"type":"string"},"description":"List of extension headers to be sent to the web hook. Extension headers let the web hook receive internal information on the current state of the conversation, such as the session ID, current date and place, context variables etc. If the function is of Internal type, it is ignored. <br> Currently supported extension headers are:<ul> <li><code>SESSION-ID</code>: the current session ID, sent with header X-Memori-Session-ID</li> <li><code>CURRENT-TAG</code>: the current tag, sent with headers X-Memori-Current-Tag and X-Memori-Current-Tag-Authenticated</li> <li><code>CURRENT-DATE</code>: the current date in UTC, sent with header X-Memori-Current-Date</li> <li><code>CURRENT-PLACE</code>: the current place, sent with headers X-Memori-Current-Place-Name, X-Memori-Current-Place-Latitude, X-Memori-Current-Place-Longitude and X-Memori-Current-Place-UncertaintyKm</li> <li><code>CONTEXT-VARS</code>: the current context variables, sent with header X-Memori-Context-Vars, with the format NAME1:VALUE1,NAME2:VALUE2,...,NAMEn:VALUEn</li> <li><code>USER-EMAIL</code>: the current user email, sent with header X-Memori-User-Email</li> </ul>","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false,"description":"Specifications of an Function object."},"FunctionParameterSpecs":{"type":"object","properties":{"parameterID":{"type":"string","description":"Function Parameter object ID.","nullable":true},"name":{"type":"string","description":"Name of the Function Parameter object.\r\nRequired during Add operations.","nullable":true},"description":{"type":"string","description":"Description of the Function Parameter object. The description is provided to the\r\ngenerative AI to help it understand the purpose of the parameter.\r\nRequired during Add operations.","nullable":true},"parameterType":{"type":"string","description":"Parameter type, e.g. \"string\", \"number\", \"integer\", \"boolean\". Required during Add operations. <br> Currently supported types are:<ul> <li><code>string</code>: string value</li> <li><code>number</code>: floating point value</li> <li><code>integer</code>: integer value</li> <li><code>boolean</code>: boolean value</li> </ul>","nullable":true},"possibleValues":{"type":"array","items":{"type":"string"},"description":"Optional list of possible values of the parameter.\r\nIf empty or null, the parameter accepts any value of the specified type.","nullable":true},"required":{"type":"boolean","description":"Whether the parameter is required or not.\r\nDefault is not required.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false,"description":"Specifications of an Function Parameter object."}}}}
````

## The ListIntentSlotsResponse object

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"ListIntentSlotsResponse":{"type":"object","properties":{"count":{"type":"integer","description":"Total number of Intent Slot objects.","format":"int32"},"intentSlots":{"type":"array","items":{"$ref":"#/components/schemas/IntentSlotSpecs"},"description":"List of Intent Slot objects.\r\nMay be empty.","nullable":true},"requestID":{"type":"integer","description":"Progressive number of the request (since the Server started).\r\nUse this number, together with the RequestDateTime property,\r\nto report an anomalous response.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous response.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is equivalent to the HTTP\r\nstatus code.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response of a List Intent Slots request."},"IntentSlotSpecs":{"type":"object","properties":{"intentSlotID":{"type":"string","description":"Intent Slot object ID.","nullable":true},"name":{"type":"string","description":"Name of the Intent Slot object. It is part of the ```SlotWebHookRequest```\r\nrequest passed to the web hook.\r\nRequired during Add operations.","nullable":true},"values":{"type":"array","items":{"type":"string"},"description":"List of possible values of the slot.\r\nA slot may be composed of fixed values in this property,\r\ndynamic values fetched from the web hook, or a combination of both.\r\nEach value is considered only once (duplicate values are ignored).","nullable":true},"webHook":{"type":"string","description":"HTTP URL of the web hook to be called when the slot values must be fetched.\r\nMay be null if the slot is composed only of fixed values in\r\nthe ```Values``` property.\r\nIf specified, the web hook is called periodically with an HTTP POST call,\r\npassing a ```SlotWebHookRequest``` and expecting a ```SlotWebHookResponse```\r\nin response. Periodicity is determined by the ```ValidityMinutes``` property,\r\nwith a minimum of 0.5 (30 seconds).","nullable":true},"validityMinutes":{"type":"number","description":"Time to cache the slot values, expressed in minutes. May be\r\nfractional. A cached slot response is used only when the a subsequent slot request\r\nmatches exactly the original request.\r\nSee also ```RequestValidityMinutes``` in ```WebHookRequest```.","format":"double","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false,"description":"Specifications of an Intent Slot object."}}}}
````

## The ListIntentsResponse object

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"ListIntentsResponse":{"type":"object","properties":{"count":{"type":"integer","description":"Total number of Intent objects.","format":"int32"},"intents":{"type":"array","items":{"$ref":"#/components/schemas/IntentSpecs"},"description":"List of Intent objects.\r\nMay be empty.","nullable":true},"requestID":{"type":"integer","description":"Progressive number of the request (since the Server started).\r\nUse this number, together with the RequestDateTime property,\r\nto report an anomalous response.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous response.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is equivalent to the HTTP\r\nstatus code.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response of a List Intents request."},"IntentSpecs":{"type":"object","properties":{"intentID":{"type":"string","description":"Intent object ID.","nullable":true},"intentType":{"type":"string","description":"Function type, e.g. ```Internal``` or ```WebHook```.\r\nInternal intents are a limited subset implemented internally,\r\nwhile WebHook intents perform an external HTTP POST call to the\r\nspecified web hook, passing an ```IntentWebHookRequest```\r\nand expecting an ```IntentWebHookResponse``` in response.\r\nRequired during Add operations.\r\nIgnored during Update operations.","nullable":true},"name":{"type":"string","description":"Name of the Intent object. It is part of the ```IntentWebHookRequest```\r\nrequest passed to the web hook.\r\nRequired during Add operations.","nullable":true},"utterances":{"type":"array","items":{"$ref":"#/components/schemas/UtteranceSpecs"},"description":"List of accepted Utterance objects for this Intent, i.e. the\r\nlist of text sentences that can be used to express the intent.\r\nUtterances may include variable parts in the sentence by the use of\r\none or more slots. Slots are specified using the syntax ```{slot}```,\r\nwhere \"slot\" is the slot name. If present, their value is part of the\r\n```IntentWebHookRequest``` passed to the web hook. Each slot\r\ncan be present only once in the sentence, and must have been previously\r\ndefined with a Intent Slot object.\r\nA special slot is the ```{date}``` slot, which represents a\r\nperiod of time such as \"today\", \"yesterday\", \"last week\", \"next month\" etc.\r\nIts values is passed in the ```IntentWebHookRequest``` as the\r\n```BeginUTC``` and ```EndUTC``` properties.\r\nRequired during Add operations.","nullable":true},"timeoutIntent":{"type":"boolean","description":"If ```True``` this Intent may be executed to serve a Timeout event\r\nin R1 state. In this case the utterance is null.\r\nIn case more than one Intent have this flag set, a random one is picked.","nullable":true},"webHook":{"type":"string","description":"HTTP URL of the web hook to be called when the intent is recognized.\r\nIf the intent is of Internal type, it is ignored.","nullable":true},"validityMinutes":{"type":"number","description":"Time to cache the intent response, expressed in minutes. May be\r\nfractional. A cached intent response is used only when the a subsequent intent request\r\nmatches exactly the original request.\r\nSee also ```RequestValidityMinutes``` in ```WebHookRequest```.","format":"double","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false,"description":"Specifications of an Intent object."},"UtteranceSpecs":{"type":"object","properties":{"utteranceID":{"type":"string","description":"Utterance object ID.","nullable":true},"text":{"type":"string","description":"Accepted Utterance object for its corresponding intent, i.e. the\r\ntext sentence that can be used to express the intent.\r\nAn Utterance may include variable parts in the sentence by the use of\r\none or more slots. Slots are specified using the syntax ```{slot}```,\r\nwhere \"slot\" is the slot name. If present, their value is part of the\r\n```IntentWebHookRequest``` passed to the web hook. Each slot\r\ncan be present only once in the sentence, and must have been previously\r\ndefined with a Intent Slot object.\r\nA special slot is the ```{date}``` slot, which represents a\r\nperiod of time such as \"today\", \"yesterday\", \"last week\", \"next month\" etc.\r\nIts values is passed in the ```IntentWebHookRequest``` as the\r\n```BeginUTC``` and ```EndUTC``` properties.\r\nRequired during Add operations.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false,"description":"Specifications of an Utterance object."}}}}
````

## The ListKnownFactsResponse object

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"ListKnownFactsResponse":{"type":"object","properties":{"count":{"type":"integer","description":"Total number of Known Fact objects.","format":"int32"},"knownFacts":{"type":"array","items":{"$ref":"#/components/schemas/KnownFactSpecs"},"description":"List of Known Fact objects.\r\nMay be empty.","nullable":true},"requestID":{"type":"integer","description":"Progressive number of the request (since the Server started).\r\nUse this number, together with the RequestDateTime property,\r\nto report an anomalous response.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous response.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is equivalent to the HTTP\r\nstatus code.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response of a List Known Facts request."},"KnownFactSpecs":{"type":"object","properties":{"knownFactID":{"type":"string","description":"Known Fact object ID.","nullable":true},"knownFactType":{"type":"string","description":"Known Fact type, e.g. <code>ShortTerm</code> or <code>LongTerm</code>. <br> Currently possible values are:<ul> <li><code>ShortTerm</code>: this Known Fact is always used during conversations</li> <li><code>LongTerm</code>: this Known Fact is used during conversations only if relevant to the current question</li> </ul>","nullable":true},"text":{"type":"string","description":"Text of the Known Fact.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false,"description":"Specifications of a Known Fact object."}}}}
````

## The ListLocalizationKeysResponse object

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"ListLocalizationKeysResponse":{"type":"object","properties":{"count":{"type":"integer","description":"Total number of Localization Keys.","format":"int32"},"localizationKeys":{"type":"array","items":{"$ref":"#/components/schemas/LocalizationKeySpecs"},"description":"List of Localization Keys.\r\nMay be empty.","nullable":true},"requestID":{"type":"integer","description":"Progressive number of the request (since the Server started).\r\nUse this number, together with the RequestDateTime property,\r\nto report an anomalous response.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous response.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is equivalent to the HTTP\r\nstatus code.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response of a List Localization Keys request."},"LocalizationKeySpecs":{"type":"object","properties":{"key":{"type":"string","description":"Localization Key.\r\nRequired during Add operations.\r\nIgnored during Update operations.","nullable":true},"value":{"type":"string","description":"Value of the Localization Key.\r\nRequired during Add and Update operations.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false,"description":"Specifications of a Localization Key."}}}}
````

## The ListMacroFunctionsResponse object

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"ListMacroFunctionsResponse":{"type":"object","properties":{"count":{"type":"integer","description":"Total number of Function objects.","format":"int32"},"macroFunctions":{"type":"array","items":{"$ref":"#/components/schemas/MacroFunctionSpecs"},"description":"List of Function objects.\r\nMay be empty.","nullable":true},"requestID":{"type":"integer","description":"Progressive number of the request (since the Server started).\r\nUse this number, together with the RequestDateTime property,\r\nto report an anomalous response.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous response.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is equivalent to the HTTP\r\nstatus code.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false},"MacroFunctionSpecs":{"type":"object","properties":{"name":{"type":"string","description":"Name of the Macro Function object.","nullable":true},"descriptions":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"Descriptions of the Macro Function object, in different languages/cultures.\r\nThe key is the language/culture, e.g. \"en-US\" or \"it-IT\",\r\nand the value is the corresponding text.","nullable":true},"macroParameters":{"type":"array","items":{"$ref":"#/components/schemas/MacroParameterSpecs"},"description":"List of its Macro Parameter objects.\r\nMay be empty.","nullable":true}},"additionalProperties":false,"description":"Specifications of a Macro Function object."},"MacroParameterSpecs":{"type":"object","properties":{"name":{"type":"string","description":"Name of the Macro Parameter object.","nullable":true},"descriptions":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"Description of the Macro Parameter object, in different languages/cultures.\r\nThe key is the language/culture, e.g. \"en-US\" or \"it-IT\",\r\nand the value is the corresponding text.","nullable":true},"obfuscated":{"type":"boolean","description":"Whether the Macro Parameter value must be obfuscated when displayed\r\n(e.g. the parameter represents a password, an API key etc.)."}},"additionalProperties":false}}}}
````

## The ListMediaResponse object

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"ListMediaResponse":{"type":"object","properties":{"media":{"type":"array","items":{"$ref":"#/components/schemas/MediumSpecs"},"description":"List of Medium objects.\r\nMay be empty.","nullable":true},"requestID":{"type":"integer","description":"Progressive number of the request (since the Server started).\r\nUse this number, together with the RequestDateTime property,\r\nto report an anomalous response.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous response.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is equivalent to the HTTP\r\nstatus code.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response of a List Media request."},"MediumSpecs":{"type":"object","properties":{"mediumID":{"type":"string","description":"Medium object ID.","nullable":true},"url":{"type":"string","description":"URL of the Medium. If specified, the Content property must be ```Null```.\r\nUse this property to link large amounts of data stored externally.\r\nIf the amount of data is modest the Content property may be used as an alternative.","nullable":true},"content":{"type":"string","description":"Content of the Medium. If specified, the URL property must be ```Null```.\r\nDon't use this property to store large amounts of data. Can be used to store limited \r\ntext for a maximum of 10 KiB. For larger amounts store the data externally and link it\r\nvia the URL property.","nullable":true},"mimeType":{"type":"string","description":"MIME type of the Medium.\r\nRequired during Add operations.","nullable":true},"title":{"type":"string","description":"Title of the Medium.","nullable":true},"properties":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"Key-value pairs for additional structured content storage.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false,"description":"Specifications of a Medium object."}}}}
````

## The ListMemoriChatlogsPagedSpecs object

```json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"ListMemoriChatlogsPagedSpecs":{"type":"object","properties":{"dateFrom":{"type":"string","description":"The starting date and time from which chat logs should be retrieved.\r\nThe value is expected to be a string formatted as \"yyyyMMddHHmmssfff\".","nullable":true},"dateTo":{"type":"string","description":"The ending date and time up to which chat logs should be retrieved.\r\nThe value is expected to be a string formatted as \"yyyyMMddHHmmssfff\".","nullable":true},"minimumMessagesPerChat":{"type":"integer","description":"Specifies the minimum number of messages a chat must have to be included in the results.\r\nIf null, defaults to 3 (which means chats with less than 3 messages are excluded).","format":"int32","nullable":true},"filter":{"type":"string","description":"A text-based filter applied to the chat logs. The filter is matched against\r\nthe SessionID, IP address, user name, and chat text fields.","nullable":true},"from":{"type":"integer","description":"Specifies the starting index from which paginated chat logs should be retrieved.","format":"int32"},"howMany":{"type":"integer","description":"Specifies the number of chat logs to retrieve in a paginated request.","format":"int32"}},"additionalProperties":false}}}}
```

## The ListMemoriesResponse object

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"ListMemoriesResponse":{"type":"object","properties":{"count":{"type":"integer","description":"Total number of Memory objects.","format":"int32"},"memories":{"type":"array","items":{"$ref":"#/components/schemas/MemorySpecs"},"description":"List of Memory objects.\r\nMay be empty.","nullable":true},"requestID":{"type":"integer","description":"Progressive number of the request (since the Server started).\r\nUse this number, together with the RequestDateTime property,\r\nto report an anomalous response.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous response.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is equivalent to the HTTP\r\nstatus code.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response of a List Memories request."},"MemorySpecs":{"type":"object","properties":{"memoryID":{"type":"string","description":"Memory object ID.","nullable":true},"memoryType":{"type":"string","description":"Memory type, e.g. <code>Question</code>, <code>Story</code> or <code>Default</code>. Required during Add operations. <br> Currently possible values are:<ul> <li><code>Question</code>: this Memory is a question, hence its title is expected in interrogative form</li> <li><code>Story</code>: this Memory is a story, hence its title is expected in affirmative form</li> <li><code>Default</code>: this Memory is a default answer, hence its title is ignored (empty or null)</li> <li><code>CompletionDraft</code>: this Memory is draft from a completion, obtained via a generative AI.</li> <li><code>ExpertReference</code>: this Memory is the results of a question asked to a Board of Experts, and the answer is the name of the Expert that replied to the question.</li> </ul>","nullable":true},"lastRead":{"type":"string","description":"Timestamp of the last time this Memory has been shown to a Receiver.\r\nThis value is also used when picking random memories to avoid showing\r\nmemories that have already been shown recently.\r\n```Null``` if the Memory has not been shown yet.","format":"date-time","nullable":true},"readOccurrences":{"type":"integer","description":"Number of times this Memory has been shown to a Receiver.\r\n```Null``` if the Memory has not been shown yet.","format":"int32","nullable":true},"receiverID":{"type":"string","description":"ID of the Person object to whom this Memory belongs.\r\n```Null``` if the Memory is public. When updating,\r\nset it to a single dash character (```-```) to remove a\r\npreviously set association with a Person.","nullable":true},"receiverTag":{"type":"string","description":"Tag of the Person object to whom this Memory belongs.\r\n```Null``` if the Memory is public.","nullable":true},"receiverName":{"type":"string","description":"Name of the Person object to whom this Memory belongs.\r\n```Null``` if the Memory is public.","nullable":true},"media":{"type":"array","items":{"$ref":"#/components/schemas/MediumSpecs"},"description":"List of Medium objects associated with this Memory.\r\nMay be empty.","nullable":true},"title":{"type":"string","description":"Title of the Question or Story.\r\nNull if this Memory is a Default.","nullable":true},"titleVariants":{"type":"array","items":{"type":"string"},"description":"Title variants of this Question or Story.\r\nEmpty if this Memory is a Default.","nullable":true},"answers":{"type":"array","items":{"$ref":"#/components/schemas/AnswerSpecs"},"description":"List of its Answer objects.\r\nAt least one answer must be present.","nullable":true},"date":{"type":"string","description":"Approximate date associated with this Memory.\r\nWhen updating, set it to midnight Jan. 1st 1 A.D.\r\n(```01/01/01 00:00:00```) to clear any previously set\r\nDate and DateUncertaintyDays.","format":"date-time","nullable":true},"dateUncertaintyDays":{"type":"number","description":"Uncertainty in the date associated with this Memory,\r\nexpressed in days.","format":"double","nullable":true},"placeName":{"type":"string","description":"Name of the place associated with this Memory.\r\nWhen updating, set it to a single dash character\r\n(```-```) to clear any previously set Place (by name or\r\ncoordinates) and PlaceUncertaintyKm.","nullable":true},"placeLatitude":{"type":"number","description":"Latitude of the place associated with this Memory.","format":"double","nullable":true},"placeLongitude":{"type":"number","description":"Longitude of the place associated with this Memory.","format":"double","nullable":true},"placeUncertaintyKm":{"type":"number","description":"Uncertainty of the place associated with this Memory,\r\nexpressed in kilometers.","format":"double","nullable":true},"conclusive":{"type":"boolean","description":"If ```True```, when this Memory is emitted it is NOT followed by a continuation prompt,\r\nsuch as \"Is there anything else you want to know?\".","nullable":true},"notPickable":{"type":"boolean","description":"If ```True```, this Memory can't be randomly picked with a Timeout Event, or\r\nexplicitly searching for random Memory objects.\r\nIgnored for Memory of type Default.","nullable":true},"help":{"type":"boolean","description":"If ```True```, this Memory's content can be emitted if the user fails\r\nto find a question with an answer at the beginning of a session.\r\nIgnored for Memory of type Default.","nullable":true},"hints":{"type":"array","items":{"type":"string"},"description":"Hints for this Memory.","nullable":true},"minTimeout":{"type":"number","description":"Minimum idle timeout, in seconds. If not specified, by default it is set to 20 seconds. <br> The idle timeout is the time after which the client sends a Timeout event and, typically, a random question or story is picked up and proposed to the user. The actual idle timeout is computed as a random number between <code>MinTimeout</code> and <code>MaxTimeout</code> plus the reading time, where the reading time is in turn computed as the time it would take to read the answer at 150 words per minute.","format":"double","nullable":true},"maxTimeout":{"type":"number","description":"Maximum idle timeout, in seconds. If not specified, by default it is set to 40 seconds. <br> The idle timeout is the time after which the client sends a Timeout event and, typically, a random question or story is picked up and proposed to the user. The actual idle timeout is computed as a random number between <code>MinTimeout</code> and <code>MaxTimeout</code> plus the reading time, where the reading time is in turn computed as the time it would take to read the answer at 150 words per minute.","format":"double","nullable":true},"contextVarsToSet":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"List of variable-value pairs to be used to alter the context when this Memory is matched.\r\nUse the special value ```-``` (a single dash character) to clear a context variable.","nullable":true},"contextVarsToMatch":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"List of variable-value pairs to be used to match this Memory with the context. If the context\r\ncontains a variable listed here, the value must match for the Memory to match.","nullable":true},"dcmOutcomeType":{"type":"string","description":"Optional type of the outcome to be sent to the DCM platform when this Memory is emitted.","nullable":true},"dcmOutcomeCode":{"type":"string","description":"Optional code of the outcome to be sent to the DCM platform when this Memory is emitted.","nullable":true},"tags":{"type":"array","items":{"type":"string"},"description":"Tags for this Memory.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false,"description":"Specifications of a Memory object."},"MediumSpecs":{"type":"object","properties":{"mediumID":{"type":"string","description":"Medium object ID.","nullable":true},"url":{"type":"string","description":"URL of the Medium. If specified, the Content property must be ```Null```.\r\nUse this property to link large amounts of data stored externally.\r\nIf the amount of data is modest the Content property may be used as an alternative.","nullable":true},"content":{"type":"string","description":"Content of the Medium. If specified, the URL property must be ```Null```.\r\nDon't use this property to store large amounts of data. Can be used to store limited \r\ntext for a maximum of 10 KiB. For larger amounts store the data externally and link it\r\nvia the URL property.","nullable":true},"mimeType":{"type":"string","description":"MIME type of the Medium.\r\nRequired during Add operations.","nullable":true},"title":{"type":"string","description":"Title of the Medium.","nullable":true},"properties":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"Key-value pairs for additional structured content storage.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false,"description":"Specifications of a Medium object."},"AnswerSpecs":{"type":"object","properties":{"text":{"type":"string","description":"Text of the Answer.\r\nRequired during Add operations.","nullable":true},"preformatted":{"type":"boolean","description":"If ```True```, when this Answer is emitted no reformatting is applied.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false,"description":"Specifications of an Answer object."}}}}
````

## The ListPeopleResponse object

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"ListPeopleResponse":{"type":"object","properties":{"count":{"type":"integer","description":"Total number of Person objects.","format":"int32"},"people":{"type":"array","items":{"$ref":"#/components/schemas/PersonSpecs"},"description":"List of Person objects.\r\nMay be empty.","nullable":true},"requestID":{"type":"integer","description":"Progressive number of the request (since the Server started).\r\nUse this number, together with the RequestDateTime property,\r\nto report an anomalous response.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous response.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is equivalent to the HTTP\r\nstatus code.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response of a List People request."},"PersonSpecs":{"type":"object","properties":{"personID":{"type":"string","description":"Person object ID.","nullable":true},"personType":{"type":"string","description":"Person type, e.g. ```Giver``` or ```Receiver```.\r\nRequired during Add operations.","nullable":true},"name":{"type":"string","description":"Person name.\r\nMay be ```Null``` only when the Person object is created by\r\nthe Dialog State Machine and the name has not been set yet.","nullable":true},"information":{"type":"string","description":"Person information.\r\nCurrently this is a free (unprocessed) text.","nullable":true},"pin":{"type":"string","description":"Person PIN. Must be a code between ```000000``` and ```999999```.\r\nMay be ```Null``` only when the Person object is created by\r\nthe Dialog State Machine and the PIN has not been set yet.\r\nRequired during Add operations.","nullable":true},"tag":{"type":"string","description":"Person tag.\r\nCan be any publicly visible string that the person recognizes as distinctive.\r\nTypically it is an emoji symbol, but could also be an RFID code or\r\nsomething else.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false,"description":"Specifications of a Person object."}}}}
````

## The ListTopicsResponse object

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"ListTopicsResponse":{"type":"object","properties":{"count":{"type":"integer","description":"Total number of Topic objects.","format":"int32"},"topics":{"type":"array","items":{"$ref":"#/components/schemas/TopicSpecs"},"description":"List of Topic objects.\r\nMay be empty.","nullable":true},"requestID":{"type":"integer","description":"Progressive number of the request (since the Server started).\r\nUse this number, together with the RequestDateTime property,\r\nto report an anomalous response.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous response.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is equivalent to the HTTP\r\nstatus code.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response of a List Topics request."},"TopicSpecs":{"type":"object","properties":{"topicID":{"type":"string","description":"Topic object ID.","nullable":true},"name":{"type":"string","description":"Topic name.","nullable":true},"weight":{"type":"number","description":"Topic weight, i.e. the ratio between the number of times this\r\ntopic has been referenced versus to total number of references.","format":"double"},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false,"description":"Specifications of a Topic object."}}}}
````

## The ListUnansweredQuestionsResponse object

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"ListUnansweredQuestionsResponse":{"type":"object","properties":{"count":{"type":"integer","description":"Total number of Unanswered Question objects.","format":"int32"},"unansweredQuestions":{"type":"array","items":{"$ref":"#/components/schemas/UnansweredQuestionSpecs"},"description":"List of Unanswered Question objects.\r\nMay be empty.","nullable":true},"requestID":{"type":"integer","description":"Progressive number of the request (since the Server started).\r\nUse this number, together with the RequestDateTime property,\r\nto report an anomalous response.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous response.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is equivalent to the HTTP\r\nstatus code.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response of a List Unanswered Questions request."},"UnansweredQuestionSpecs":{"type":"object","properties":{"unansweredQuestionID":{"type":"string","description":"Unanswered Question object ID.","nullable":true},"text":{"type":"string","description":"Text of the question.","nullable":true},"contextVars":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"Current context at the time the questions was asked.","nullable":true},"occurrences":{"type":"integer","description":"Number of times the question has been asked.","format":"int32"},"receiverID":{"type":"string","description":"ID of the Person object who initially asked this question.\r\n```Null``` if the question was asked anonymously.","nullable":true},"receiverTag":{"type":"string","description":"Tag of the Person object who initially asked this question.\r\n```Null``` if the question was asked anonymously.","nullable":true},"receiverName":{"type":"string","description":"Name of the Person object who initially asked this question.\r\n```Null``` if the Memory is public.","nullable":true},"suggestions":{"type":"array","items":{"$ref":"#/components/schemas/MatchSpecs"},"description":"Suggested Memory objects for this question, with confidence level.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false,"description":"Specifications of an Unanswered Question object."},"MatchSpecs":{"type":"object","properties":{"memory":{"$ref":"#/components/schemas/MemorySpecs"},"confidence":{"type":"number","description":"Match confidence, between ```0.0``` (no confidence) and\r\n```1.0``` (full confidence).","format":"double"},"confidenceLevel":{"type":"string","description":"Confidence level, e.g. ```LOW```, ```MEDIUM``` or ```HIGH```.","nullable":true}},"additionalProperties":false,"description":"Specifications of a Match object."},"MemorySpecs":{"type":"object","properties":{"memoryID":{"type":"string","description":"Memory object ID.","nullable":true},"memoryType":{"type":"string","description":"Memory type, e.g. <code>Question</code>, <code>Story</code> or <code>Default</code>. Required during Add operations. <br> Currently possible values are:<ul> <li><code>Question</code>: this Memory is a question, hence its title is expected in interrogative form</li> <li><code>Story</code>: this Memory is a story, hence its title is expected in affirmative form</li> <li><code>Default</code>: this Memory is a default answer, hence its title is ignored (empty or null)</li> <li><code>CompletionDraft</code>: this Memory is draft from a completion, obtained via a generative AI.</li> <li><code>ExpertReference</code>: this Memory is the results of a question asked to a Board of Experts, and the answer is the name of the Expert that replied to the question.</li> </ul>","nullable":true},"lastRead":{"type":"string","description":"Timestamp of the last time this Memory has been shown to a Receiver.\r\nThis value is also used when picking random memories to avoid showing\r\nmemories that have already been shown recently.\r\n```Null``` if the Memory has not been shown yet.","format":"date-time","nullable":true},"readOccurrences":{"type":"integer","description":"Number of times this Memory has been shown to a Receiver.\r\n```Null``` if the Memory has not been shown yet.","format":"int32","nullable":true},"receiverID":{"type":"string","description":"ID of the Person object to whom this Memory belongs.\r\n```Null``` if the Memory is public. When updating,\r\nset it to a single dash character (```-```) to remove a\r\npreviously set association with a Person.","nullable":true},"receiverTag":{"type":"string","description":"Tag of the Person object to whom this Memory belongs.\r\n```Null``` if the Memory is public.","nullable":true},"receiverName":{"type":"string","description":"Name of the Person object to whom this Memory belongs.\r\n```Null``` if the Memory is public.","nullable":true},"media":{"type":"array","items":{"$ref":"#/components/schemas/MediumSpecs"},"description":"List of Medium objects associated with this Memory.\r\nMay be empty.","nullable":true},"title":{"type":"string","description":"Title of the Question or Story.\r\nNull if this Memory is a Default.","nullable":true},"titleVariants":{"type":"array","items":{"type":"string"},"description":"Title variants of this Question or Story.\r\nEmpty if this Memory is a Default.","nullable":true},"answers":{"type":"array","items":{"$ref":"#/components/schemas/AnswerSpecs"},"description":"List of its Answer objects.\r\nAt least one answer must be present.","nullable":true},"date":{"type":"string","description":"Approximate date associated with this Memory.\r\nWhen updating, set it to midnight Jan. 1st 1 A.D.\r\n(```01/01/01 00:00:00```) to clear any previously set\r\nDate and DateUncertaintyDays.","format":"date-time","nullable":true},"dateUncertaintyDays":{"type":"number","description":"Uncertainty in the date associated with this Memory,\r\nexpressed in days.","format":"double","nullable":true},"placeName":{"type":"string","description":"Name of the place associated with this Memory.\r\nWhen updating, set it to a single dash character\r\n(```-```) to clear any previously set Place (by name or\r\ncoordinates) and PlaceUncertaintyKm.","nullable":true},"placeLatitude":{"type":"number","description":"Latitude of the place associated with this Memory.","format":"double","nullable":true},"placeLongitude":{"type":"number","description":"Longitude of the place associated with this Memory.","format":"double","nullable":true},"placeUncertaintyKm":{"type":"number","description":"Uncertainty of the place associated with this Memory,\r\nexpressed in kilometers.","format":"double","nullable":true},"conclusive":{"type":"boolean","description":"If ```True```, when this Memory is emitted it is NOT followed by a continuation prompt,\r\nsuch as \"Is there anything else you want to know?\".","nullable":true},"notPickable":{"type":"boolean","description":"If ```True```, this Memory can't be randomly picked with a Timeout Event, or\r\nexplicitly searching for random Memory objects.\r\nIgnored for Memory of type Default.","nullable":true},"help":{"type":"boolean","description":"If ```True```, this Memory's content can be emitted if the user fails\r\nto find a question with an answer at the beginning of a session.\r\nIgnored for Memory of type Default.","nullable":true},"hints":{"type":"array","items":{"type":"string"},"description":"Hints for this Memory.","nullable":true},"minTimeout":{"type":"number","description":"Minimum idle timeout, in seconds. If not specified, by default it is set to 20 seconds. <br> The idle timeout is the time after which the client sends a Timeout event and, typically, a random question or story is picked up and proposed to the user. The actual idle timeout is computed as a random number between <code>MinTimeout</code> and <code>MaxTimeout</code> plus the reading time, where the reading time is in turn computed as the time it would take to read the answer at 150 words per minute.","format":"double","nullable":true},"maxTimeout":{"type":"number","description":"Maximum idle timeout, in seconds. If not specified, by default it is set to 40 seconds. <br> The idle timeout is the time after which the client sends a Timeout event and, typically, a random question or story is picked up and proposed to the user. The actual idle timeout is computed as a random number between <code>MinTimeout</code> and <code>MaxTimeout</code> plus the reading time, where the reading time is in turn computed as the time it would take to read the answer at 150 words per minute.","format":"double","nullable":true},"contextVarsToSet":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"List of variable-value pairs to be used to alter the context when this Memory is matched.\r\nUse the special value ```-``` (a single dash character) to clear a context variable.","nullable":true},"contextVarsToMatch":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"List of variable-value pairs to be used to match this Memory with the context. If the context\r\ncontains a variable listed here, the value must match for the Memory to match.","nullable":true},"dcmOutcomeType":{"type":"string","description":"Optional type of the outcome to be sent to the DCM platform when this Memory is emitted.","nullable":true},"dcmOutcomeCode":{"type":"string","description":"Optional code of the outcome to be sent to the DCM platform when this Memory is emitted.","nullable":true},"tags":{"type":"array","items":{"type":"string"},"description":"Tags for this Memory.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false,"description":"Specifications of a Memory object."},"MediumSpecs":{"type":"object","properties":{"mediumID":{"type":"string","description":"Medium object ID.","nullable":true},"url":{"type":"string","description":"URL of the Medium. If specified, the Content property must be ```Null```.\r\nUse this property to link large amounts of data stored externally.\r\nIf the amount of data is modest the Content property may be used as an alternative.","nullable":true},"content":{"type":"string","description":"Content of the Medium. If specified, the URL property must be ```Null```.\r\nDon't use this property to store large amounts of data. Can be used to store limited \r\ntext for a maximum of 10 KiB. For larger amounts store the data externally and link it\r\nvia the URL property.","nullable":true},"mimeType":{"type":"string","description":"MIME type of the Medium.\r\nRequired during Add operations.","nullable":true},"title":{"type":"string","description":"Title of the Medium.","nullable":true},"properties":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"Key-value pairs for additional structured content storage.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false,"description":"Specifications of a Medium object."},"AnswerSpecs":{"type":"object","properties":{"text":{"type":"string","description":"Text of the Answer.\r\nRequired during Add operations.","nullable":true},"preformatted":{"type":"boolean","description":"If ```True```, when this Answer is emitted no reformatting is applied.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false,"description":"Specifications of an Answer object."}}}}
````

## The ListUsersResponse object

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"ListUsersResponse":{"type":"object","properties":{"count":{"type":"integer","description":"Total number of User objects.","format":"int32"},"users":{"type":"array","items":{"$ref":"#/components/schemas/UserSpecs"},"description":"List of User objects.\r\nMay be empty.","nullable":true},"requestID":{"type":"integer","description":"Progressive number of the request (since the Server started).\r\nUse this number, together with the RequestDateTime property,\r\nto report an anomalous response.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous response.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is equivalent to the HTTP\r\nstatus code.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response of a List Users request."},"UserSpecs":{"type":"object","properties":{"userID":{"type":"string","description":"User object ID.","nullable":true},"externalUserID":{"type":"string","description":"External User ID obtained during session opening.","nullable":true},"userName":{"type":"string","description":"User name.","nullable":true},"tenantName":{"type":"string","description":"Name of the Tenant the User belongs to.","nullable":true},"email":{"type":"string","description":"User e-mail address.","nullable":true},"disableDeepThought":{"type":"boolean","description":"Deep Thought disable flag for the User."},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false,"description":"Specifications of a User object."}}}}
````

## The LocalizationKeySpecs object

```json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"LocalizationKeySpecs":{"type":"object","properties":{"key":{"type":"string","description":"Localization Key.\r\nRequired during Add operations.\r\nIgnored during Update operations.","nullable":true},"value":{"type":"string","description":"Value of the Localization Key.\r\nRequired during Add and Update operations.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false,"description":"Specifications of a Localization Key."}}}}
```

## The MacroFunctionSpecs object

```json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"MacroFunctionSpecs":{"type":"object","properties":{"name":{"type":"string","description":"Name of the Macro Function object.","nullable":true},"descriptions":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"Descriptions of the Macro Function object, in different languages/cultures.\r\nThe key is the language/culture, e.g. \"en-US\" or \"it-IT\",\r\nand the value is the corresponding text.","nullable":true},"macroParameters":{"type":"array","items":{"$ref":"#/components/schemas/MacroParameterSpecs"},"description":"List of its Macro Parameter objects.\r\nMay be empty.","nullable":true}},"additionalProperties":false,"description":"Specifications of a Macro Function object."},"MacroParameterSpecs":{"type":"object","properties":{"name":{"type":"string","description":"Name of the Macro Parameter object.","nullable":true},"descriptions":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"Description of the Macro Parameter object, in different languages/cultures.\r\nThe key is the language/culture, e.g. \"en-US\" or \"it-IT\",\r\nand the value is the corresponding text.","nullable":true},"obfuscated":{"type":"boolean","description":"Whether the Macro Parameter value must be obfuscated when displayed\r\n(e.g. the parameter represents a password, an API key etc.)."}},"additionalProperties":false}}}}
```

## The MacroParameterSpecs object

```json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"MacroParameterSpecs":{"type":"object","properties":{"name":{"type":"string","description":"Name of the Macro Parameter object.","nullable":true},"descriptions":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"Description of the Macro Parameter object, in different languages/cultures.\r\nThe key is the language/culture, e.g. \"en-US\" or \"it-IT\",\r\nand the value is the corresponding text.","nullable":true},"obfuscated":{"type":"boolean","description":"Whether the Macro Parameter value must be obfuscated when displayed\r\n(e.g. the parameter represents a password, an API key etc.)."}},"additionalProperties":false}}}}
```

## The MatchSpecs object

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"MatchSpecs":{"type":"object","properties":{"memory":{"$ref":"#/components/schemas/MemorySpecs"},"confidence":{"type":"number","description":"Match confidence, between ```0.0``` (no confidence) and\r\n```1.0``` (full confidence).","format":"double"},"confidenceLevel":{"type":"string","description":"Confidence level, e.g. ```LOW```, ```MEDIUM``` or ```HIGH```.","nullable":true}},"additionalProperties":false,"description":"Specifications of a Match object."},"MemorySpecs":{"type":"object","properties":{"memoryID":{"type":"string","description":"Memory object ID.","nullable":true},"memoryType":{"type":"string","description":"Memory type, e.g. <code>Question</code>, <code>Story</code> or <code>Default</code>. Required during Add operations. <br> Currently possible values are:<ul> <li><code>Question</code>: this Memory is a question, hence its title is expected in interrogative form</li> <li><code>Story</code>: this Memory is a story, hence its title is expected in affirmative form</li> <li><code>Default</code>: this Memory is a default answer, hence its title is ignored (empty or null)</li> <li><code>CompletionDraft</code>: this Memory is draft from a completion, obtained via a generative AI.</li> <li><code>ExpertReference</code>: this Memory is the results of a question asked to a Board of Experts, and the answer is the name of the Expert that replied to the question.</li> </ul>","nullable":true},"lastRead":{"type":"string","description":"Timestamp of the last time this Memory has been shown to a Receiver.\r\nThis value is also used when picking random memories to avoid showing\r\nmemories that have already been shown recently.\r\n```Null``` if the Memory has not been shown yet.","format":"date-time","nullable":true},"readOccurrences":{"type":"integer","description":"Number of times this Memory has been shown to a Receiver.\r\n```Null``` if the Memory has not been shown yet.","format":"int32","nullable":true},"receiverID":{"type":"string","description":"ID of the Person object to whom this Memory belongs.\r\n```Null``` if the Memory is public. When updating,\r\nset it to a single dash character (```-```) to remove a\r\npreviously set association with a Person.","nullable":true},"receiverTag":{"type":"string","description":"Tag of the Person object to whom this Memory belongs.\r\n```Null``` if the Memory is public.","nullable":true},"receiverName":{"type":"string","description":"Name of the Person object to whom this Memory belongs.\r\n```Null``` if the Memory is public.","nullable":true},"media":{"type":"array","items":{"$ref":"#/components/schemas/MediumSpecs"},"description":"List of Medium objects associated with this Memory.\r\nMay be empty.","nullable":true},"title":{"type":"string","description":"Title of the Question or Story.\r\nNull if this Memory is a Default.","nullable":true},"titleVariants":{"type":"array","items":{"type":"string"},"description":"Title variants of this Question or Story.\r\nEmpty if this Memory is a Default.","nullable":true},"answers":{"type":"array","items":{"$ref":"#/components/schemas/AnswerSpecs"},"description":"List of its Answer objects.\r\nAt least one answer must be present.","nullable":true},"date":{"type":"string","description":"Approximate date associated with this Memory.\r\nWhen updating, set it to midnight Jan. 1st 1 A.D.\r\n(```01/01/01 00:00:00```) to clear any previously set\r\nDate and DateUncertaintyDays.","format":"date-time","nullable":true},"dateUncertaintyDays":{"type":"number","description":"Uncertainty in the date associated with this Memory,\r\nexpressed in days.","format":"double","nullable":true},"placeName":{"type":"string","description":"Name of the place associated with this Memory.\r\nWhen updating, set it to a single dash character\r\n(```-```) to clear any previously set Place (by name or\r\ncoordinates) and PlaceUncertaintyKm.","nullable":true},"placeLatitude":{"type":"number","description":"Latitude of the place associated with this Memory.","format":"double","nullable":true},"placeLongitude":{"type":"number","description":"Longitude of the place associated with this Memory.","format":"double","nullable":true},"placeUncertaintyKm":{"type":"number","description":"Uncertainty of the place associated with this Memory,\r\nexpressed in kilometers.","format":"double","nullable":true},"conclusive":{"type":"boolean","description":"If ```True```, when this Memory is emitted it is NOT followed by a continuation prompt,\r\nsuch as \"Is there anything else you want to know?\".","nullable":true},"notPickable":{"type":"boolean","description":"If ```True```, this Memory can't be randomly picked with a Timeout Event, or\r\nexplicitly searching for random Memory objects.\r\nIgnored for Memory of type Default.","nullable":true},"help":{"type":"boolean","description":"If ```True```, this Memory's content can be emitted if the user fails\r\nto find a question with an answer at the beginning of a session.\r\nIgnored for Memory of type Default.","nullable":true},"hints":{"type":"array","items":{"type":"string"},"description":"Hints for this Memory.","nullable":true},"minTimeout":{"type":"number","description":"Minimum idle timeout, in seconds. If not specified, by default it is set to 20 seconds. <br> The idle timeout is the time after which the client sends a Timeout event and, typically, a random question or story is picked up and proposed to the user. The actual idle timeout is computed as a random number between <code>MinTimeout</code> and <code>MaxTimeout</code> plus the reading time, where the reading time is in turn computed as the time it would take to read the answer at 150 words per minute.","format":"double","nullable":true},"maxTimeout":{"type":"number","description":"Maximum idle timeout, in seconds. If not specified, by default it is set to 40 seconds. <br> The idle timeout is the time after which the client sends a Timeout event and, typically, a random question or story is picked up and proposed to the user. The actual idle timeout is computed as a random number between <code>MinTimeout</code> and <code>MaxTimeout</code> plus the reading time, where the reading time is in turn computed as the time it would take to read the answer at 150 words per minute.","format":"double","nullable":true},"contextVarsToSet":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"List of variable-value pairs to be used to alter the context when this Memory is matched.\r\nUse the special value ```-``` (a single dash character) to clear a context variable.","nullable":true},"contextVarsToMatch":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"List of variable-value pairs to be used to match this Memory with the context. If the context\r\ncontains a variable listed here, the value must match for the Memory to match.","nullable":true},"dcmOutcomeType":{"type":"string","description":"Optional type of the outcome to be sent to the DCM platform when this Memory is emitted.","nullable":true},"dcmOutcomeCode":{"type":"string","description":"Optional code of the outcome to be sent to the DCM platform when this Memory is emitted.","nullable":true},"tags":{"type":"array","items":{"type":"string"},"description":"Tags for this Memory.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false,"description":"Specifications of a Memory object."},"MediumSpecs":{"type":"object","properties":{"mediumID":{"type":"string","description":"Medium object ID.","nullable":true},"url":{"type":"string","description":"URL of the Medium. If specified, the Content property must be ```Null```.\r\nUse this property to link large amounts of data stored externally.\r\nIf the amount of data is modest the Content property may be used as an alternative.","nullable":true},"content":{"type":"string","description":"Content of the Medium. If specified, the URL property must be ```Null```.\r\nDon't use this property to store large amounts of data. Can be used to store limited \r\ntext for a maximum of 10 KiB. For larger amounts store the data externally and link it\r\nvia the URL property.","nullable":true},"mimeType":{"type":"string","description":"MIME type of the Medium.\r\nRequired during Add operations.","nullable":true},"title":{"type":"string","description":"Title of the Medium.","nullable":true},"properties":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"Key-value pairs for additional structured content storage.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false,"description":"Specifications of a Medium object."},"AnswerSpecs":{"type":"object","properties":{"text":{"type":"string","description":"Text of the Answer.\r\nRequired during Add operations.","nullable":true},"preformatted":{"type":"boolean","description":"If ```True```, when this Answer is emitted no reformatting is applied.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false,"description":"Specifications of an Answer object."}}}}
````

## The MediumSpecs object

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"MediumSpecs":{"type":"object","properties":{"mediumID":{"type":"string","description":"Medium object ID.","nullable":true},"url":{"type":"string","description":"URL of the Medium. If specified, the Content property must be ```Null```.\r\nUse this property to link large amounts of data stored externally.\r\nIf the amount of data is modest the Content property may be used as an alternative.","nullable":true},"content":{"type":"string","description":"Content of the Medium. If specified, the URL property must be ```Null```.\r\nDon't use this property to store large amounts of data. Can be used to store limited \r\ntext for a maximum of 10 KiB. For larger amounts store the data externally and link it\r\nvia the URL property.","nullable":true},"mimeType":{"type":"string","description":"MIME type of the Medium.\r\nRequired during Add operations.","nullable":true},"title":{"type":"string","description":"Title of the Medium.","nullable":true},"properties":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"Key-value pairs for additional structured content storage.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false,"description":"Specifications of a Medium object."}}}}
````

## The MemoryHintSpecs object

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"MemoryHintSpecs":{"type":"object","properties":{"date":{"type":"string","description":"Approximate date associated with one or more Story objects.\r\n```Null``` if this Memory Hint is a place hint.","format":"date-time","nullable":true},"dateUncertaintyDays":{"type":"number","description":"Uncertainty, expressed in days, of the date associated with one or more Story objects.\r\n```Null``` if this Memory Hint is a place hint.","format":"double","nullable":true},"placeLatitude":{"type":"number","description":"Approximate latitude of the place associated with one or more Story objects.\r\n```Null``` if this Memory Hint is a date hint.","format":"double","nullable":true},"placeLongitude":{"type":"number","description":"Approximate longitude of the place associated with one or more Story objects.\r\n```Null``` if this Memory Hint is a date hint.","format":"double","nullable":true},"placeUncertaintyKm":{"type":"number","description":"Uncertainty, expressed in Km, of the latitude and longitude of the place\r\nassociated with one or more Story objects.\r\n```Null``` if this Memory Hint is a date hint.","format":"double","nullable":true}},"additionalProperties":false,"description":"Specifications of a Memory Hint object."}}}}
````

## The MemorySpecs object

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"MemorySpecs":{"type":"object","properties":{"memoryID":{"type":"string","description":"Memory object ID.","nullable":true},"memoryType":{"type":"string","description":"Memory type, e.g. <code>Question</code>, <code>Story</code> or <code>Default</code>. Required during Add operations. <br> Currently possible values are:<ul> <li><code>Question</code>: this Memory is a question, hence its title is expected in interrogative form</li> <li><code>Story</code>: this Memory is a story, hence its title is expected in affirmative form</li> <li><code>Default</code>: this Memory is a default answer, hence its title is ignored (empty or null)</li> <li><code>CompletionDraft</code>: this Memory is draft from a completion, obtained via a generative AI.</li> <li><code>ExpertReference</code>: this Memory is the results of a question asked to a Board of Experts, and the answer is the name of the Expert that replied to the question.</li> </ul>","nullable":true},"lastRead":{"type":"string","description":"Timestamp of the last time this Memory has been shown to a Receiver.\r\nThis value is also used when picking random memories to avoid showing\r\nmemories that have already been shown recently.\r\n```Null``` if the Memory has not been shown yet.","format":"date-time","nullable":true},"readOccurrences":{"type":"integer","description":"Number of times this Memory has been shown to a Receiver.\r\n```Null``` if the Memory has not been shown yet.","format":"int32","nullable":true},"receiverID":{"type":"string","description":"ID of the Person object to whom this Memory belongs.\r\n```Null``` if the Memory is public. When updating,\r\nset it to a single dash character (```-```) to remove a\r\npreviously set association with a Person.","nullable":true},"receiverTag":{"type":"string","description":"Tag of the Person object to whom this Memory belongs.\r\n```Null``` if the Memory is public.","nullable":true},"receiverName":{"type":"string","description":"Name of the Person object to whom this Memory belongs.\r\n```Null``` if the Memory is public.","nullable":true},"media":{"type":"array","items":{"$ref":"#/components/schemas/MediumSpecs"},"description":"List of Medium objects associated with this Memory.\r\nMay be empty.","nullable":true},"title":{"type":"string","description":"Title of the Question or Story.\r\nNull if this Memory is a Default.","nullable":true},"titleVariants":{"type":"array","items":{"type":"string"},"description":"Title variants of this Question or Story.\r\nEmpty if this Memory is a Default.","nullable":true},"answers":{"type":"array","items":{"$ref":"#/components/schemas/AnswerSpecs"},"description":"List of its Answer objects.\r\nAt least one answer must be present.","nullable":true},"date":{"type":"string","description":"Approximate date associated with this Memory.\r\nWhen updating, set it to midnight Jan. 1st 1 A.D.\r\n(```01/01/01 00:00:00```) to clear any previously set\r\nDate and DateUncertaintyDays.","format":"date-time","nullable":true},"dateUncertaintyDays":{"type":"number","description":"Uncertainty in the date associated with this Memory,\r\nexpressed in days.","format":"double","nullable":true},"placeName":{"type":"string","description":"Name of the place associated with this Memory.\r\nWhen updating, set it to a single dash character\r\n(```-```) to clear any previously set Place (by name or\r\ncoordinates) and PlaceUncertaintyKm.","nullable":true},"placeLatitude":{"type":"number","description":"Latitude of the place associated with this Memory.","format":"double","nullable":true},"placeLongitude":{"type":"number","description":"Longitude of the place associated with this Memory.","format":"double","nullable":true},"placeUncertaintyKm":{"type":"number","description":"Uncertainty of the place associated with this Memory,\r\nexpressed in kilometers.","format":"double","nullable":true},"conclusive":{"type":"boolean","description":"If ```True```, when this Memory is emitted it is NOT followed by a continuation prompt,\r\nsuch as \"Is there anything else you want to know?\".","nullable":true},"notPickable":{"type":"boolean","description":"If ```True```, this Memory can't be randomly picked with a Timeout Event, or\r\nexplicitly searching for random Memory objects.\r\nIgnored for Memory of type Default.","nullable":true},"help":{"type":"boolean","description":"If ```True```, this Memory's content can be emitted if the user fails\r\nto find a question with an answer at the beginning of a session.\r\nIgnored for Memory of type Default.","nullable":true},"hints":{"type":"array","items":{"type":"string"},"description":"Hints for this Memory.","nullable":true},"minTimeout":{"type":"number","description":"Minimum idle timeout, in seconds. If not specified, by default it is set to 20 seconds. <br> The idle timeout is the time after which the client sends a Timeout event and, typically, a random question or story is picked up and proposed to the user. The actual idle timeout is computed as a random number between <code>MinTimeout</code> and <code>MaxTimeout</code> plus the reading time, where the reading time is in turn computed as the time it would take to read the answer at 150 words per minute.","format":"double","nullable":true},"maxTimeout":{"type":"number","description":"Maximum idle timeout, in seconds. If not specified, by default it is set to 40 seconds. <br> The idle timeout is the time after which the client sends a Timeout event and, typically, a random question or story is picked up and proposed to the user. The actual idle timeout is computed as a random number between <code>MinTimeout</code> and <code>MaxTimeout</code> plus the reading time, where the reading time is in turn computed as the time it would take to read the answer at 150 words per minute.","format":"double","nullable":true},"contextVarsToSet":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"List of variable-value pairs to be used to alter the context when this Memory is matched.\r\nUse the special value ```-``` (a single dash character) to clear a context variable.","nullable":true},"contextVarsToMatch":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"List of variable-value pairs to be used to match this Memory with the context. If the context\r\ncontains a variable listed here, the value must match for the Memory to match.","nullable":true},"dcmOutcomeType":{"type":"string","description":"Optional type of the outcome to be sent to the DCM platform when this Memory is emitted.","nullable":true},"dcmOutcomeCode":{"type":"string","description":"Optional code of the outcome to be sent to the DCM platform when this Memory is emitted.","nullable":true},"tags":{"type":"array","items":{"type":"string"},"description":"Tags for this Memory.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false,"description":"Specifications of a Memory object."},"MediumSpecs":{"type":"object","properties":{"mediumID":{"type":"string","description":"Medium object ID.","nullable":true},"url":{"type":"string","description":"URL of the Medium. If specified, the Content property must be ```Null```.\r\nUse this property to link large amounts of data stored externally.\r\nIf the amount of data is modest the Content property may be used as an alternative.","nullable":true},"content":{"type":"string","description":"Content of the Medium. If specified, the URL property must be ```Null```.\r\nDon't use this property to store large amounts of data. Can be used to store limited \r\ntext for a maximum of 10 KiB. For larger amounts store the data externally and link it\r\nvia the URL property.","nullable":true},"mimeType":{"type":"string","description":"MIME type of the Medium.\r\nRequired during Add operations.","nullable":true},"title":{"type":"string","description":"Title of the Medium.","nullable":true},"properties":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"Key-value pairs for additional structured content storage.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false,"description":"Specifications of a Medium object."},"AnswerSpecs":{"type":"object","properties":{"text":{"type":"string","description":"Text of the Answer.\r\nRequired during Add operations.","nullable":true},"preformatted":{"type":"boolean","description":"If ```True```, when this Answer is emitted no reformatting is applied.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false,"description":"Specifications of an Answer object."}}}}
````

## The OpenSessionResponse object

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"OpenSessionResponse":{"type":"object","properties":{"sessionID":{"type":"string","description":"Session ID.","nullable":true},"currentState":{"$ref":"#/components/schemas/DialogStateSpecs"},"requestID":{"type":"integer","description":"Progressive number of the request (since the Server started).\r\nUse this number, together with the RequestDateTime property,\r\nto report an anomalous response.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous response.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is equivalent to the HTTP\r\nstatus code.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response of an Open Session request."},"DialogStateSpecs":{"type":"object","properties":{"state":{"type":"string","description":"Current state of the Dialog State Machine, eg. ```R1```, ```G3``` etc.","nullable":true},"stateName":{"type":"string","description":"Name of the current state of the Dialog State Machine, e.g. ```WaitingForReceiverQuestion``` etc.","nullable":true},"previousState":{"type":"string","description":"Previous state of the Dialog State Machine, eg. ```I0```, ```G2b``` etc.","nullable":true},"confidence":{"type":"number","description":"Confidence of understanding of the entered text, with ```0.0``` no\r\nunderstanding at all and ```1.0``` certain understanding. ```Null``` if\r\nthe state transition did not require any natural language understanding.","format":"float","nullable":true},"confidenceLevel":{"type":"string","description":"Confidence level, e.g. ```NONE```, ```LOW```,\r\n```MEDIUM``` or ```HIGH```. ```Null``` if\r\nthe state transition did not require any natural language\r\nunderstanding.","nullable":true},"emission":{"type":"string","description":"Emission from the Dialog State Machine transition. ```Null``` if\r\nthe previous state transition did not emit any text.","nullable":true},"emittedMedia":{"type":"array","items":{"$ref":"#/components/schemas/MediumSpecs"},"description":"List of Medium objects associated with the emission of the state transition.","nullable":true},"media":{"type":"array","items":{"$ref":"#/components/schemas/MediumSpecs"},"description":"Obsolete. List of Medium objects associated with the emission of the state transition.\r\nUse EmittedMedia instead.","nullable":true,"deprecated":true},"continuationEmitted":{"type":"boolean","description":"```True``` if the emission contains a continuation prompts,\r\n            such as \"Is there anything else you want to ask me?\"."},"emitter":{"type":"string","description":"Name of the Memori that provided this emission. Used with Board of Experts model.\r\n```Null``` if no Board of Experts is configured, or if the Memori\r\nproviding the emission is the chairman of the Board.","nullable":true},"completion":{"type":"boolean","description":"```True``` if the emission has been obtained with a\r\n            completion from a generative AI."},"acceptsTimeout":{"type":"boolean","description":"```True``` if the current state accepts a Timeout event.\r\n            Sending a Timeout event to a state that does not accept it\r\n            causes no transition. The event is simply ignored."},"acceptsAbort":{"type":"boolean","description":"```True``` if the current state can be aborted.\r\n            Trying to abort event a state that does not accept it\r\n            causes no transition. It is simply ignored."},"acceptsMedia":{"type":"boolean","description":"```True``` if the current state accepts a MediumSelected event.\r\n            Trying to send a MediumSelected event to a state that does not accept it\r\n            causes no transition. It is simply ignored."},"acceptsDate":{"type":"boolean","description":"```True``` if the current state accepts a DateSelected event.\r\n            Trying to send a DateSelected event to a state that does not accept it\r\n            causes no transition. It is simply ignored."},"acceptsPlace":{"type":"boolean","description":"```True``` if the current state accepts a PlaceSelected event.\r\n            Trying to send a PlaceSelected event to a state that does not accept it\r\n            causes no transition. It is simply ignored."},"acceptsTag":{"type":"boolean","description":"```True``` if the current state accepts a TagSelected event.\r\n            Trying to send a TagSelected event to a state that does not accept it\r\n            causes no transition. It is simply ignored."},"acceptsFeedback":{"type":"boolean","description":"```True``` if the current state accepts a feedback intent\r\n            (e.g. \"it's not what I asked\") to notify the answer was incorrect.\r\n            Trying to send a feedback intent to a state that does not accept it\r\n            causes no transition. A courtesy answer is replied."},"hints":{"type":"array","items":{"type":"string"},"description":"List of texts suggested or accepted in the current state.\r\nIf empty does not mean the current state accepts no texts, but\r\nrather that there are no suggestions.","nullable":true},"timeout":{"type":"number","description":"Idle timeout, in seconds.\r\nSpecifies the time after which, if the user remains in idle state,\r\na Timeout event should be sent.\r\nMay be ```Null``` if the current state does not accept\r\nTimeout events.","format":"double","nullable":true},"currentTag":{"type":"string","description":"Latest tag set with a Tag Changed event.","nullable":true},"currentTagAuthenticated":{"type":"boolean","description":"True if the latest tag set with a Tag Changed event\r\nhas been successfully authenticated with its PIN."},"currentDate":{"type":"string","description":"Latest date set with a Date Changed event.","format":"date-time","nullable":true},"currentPlaceName":{"type":"string","description":"The name of the latest place set with Place Changed event.","nullable":true},"currentLatitude":{"type":"number","description":"The latitude of the latest place set with Place Changed event.","format":"double","nullable":true},"currentLongitude":{"type":"number","description":"The longitude of the latest place set with Place Changed event.","format":"double","nullable":true},"currentUncertaintyKm":{"type":"number","description":"The uncertainty in kilometers of the latest place set with Place Changed event.","format":"double","nullable":true},"currentMemoryID":{"type":"string","description":"ID of the current Memory object being created or answered.","nullable":true},"lastMatchedMemoryID":{"type":"string","description":"ID of the last Memory object matched and emitted.","nullable":true},"currentMedia":{"type":"array","items":{"$ref":"#/components/schemas/MediumSpecs"},"description":"List of Medium objects temporarily stored in the Dialog State Machine via MediumSelected events.\r\nMedia stored in the Current Media list will be sent to any configured generative AI at the\r\nnext TextEntered event. After a TextEntered event the list is always cleared.","nullable":true},"contextVars":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"Current context, expressed as a set of variable-value paris.","nullable":true},"memoryTags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the current Memory.","nullable":true},"llmUsage":{"$ref":"#/components/schemas/InteractionLLMUsage"}},"additionalProperties":false,"description":"Specifications of a state of the Dialog State Machine."},"MediumSpecs":{"type":"object","properties":{"mediumID":{"type":"string","description":"Medium object ID.","nullable":true},"url":{"type":"string","description":"URL of the Medium. If specified, the Content property must be ```Null```.\r\nUse this property to link large amounts of data stored externally.\r\nIf the amount of data is modest the Content property may be used as an alternative.","nullable":true},"content":{"type":"string","description":"Content of the Medium. If specified, the URL property must be ```Null```.\r\nDon't use this property to store large amounts of data. Can be used to store limited \r\ntext for a maximum of 10 KiB. For larger amounts store the data externally and link it\r\nvia the URL property.","nullable":true},"mimeType":{"type":"string","description":"MIME type of the Medium.\r\nRequired during Add operations.","nullable":true},"title":{"type":"string","description":"Title of the Medium.","nullable":true},"properties":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"Key-value pairs for additional structured content storage.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false,"description":"Specifications of a Medium object."},"InteractionLLMUsage":{"type":"object","properties":{"provider":{"type":"string","nullable":true},"model":{"type":"string","nullable":true},"totalInputTokens":{"type":"integer","format":"int32"},"inputCacheReadTokens":{"type":"integer","format":"int32"},"inputCacheWriteTokens":{"type":"integer","format":"int32"},"outputTokens":{"type":"integer","format":"int32"},"durationMs":{"type":"integer","format":"int32"},"energyImpact":{"$ref":"#/components/schemas/InteractionEnergyImpact"}},"additionalProperties":false},"InteractionEnergyImpact":{"type":"object","properties":{"energy":{"type":"number","format":"double","nullable":true},"energyUnit":{"type":"string","nullable":true},"gwp":{"type":"number","format":"double","nullable":true},"gwpUnit":{"type":"string","nullable":true},"adPe":{"type":"number","format":"double","nullable":true},"adPeUnit":{"type":"string","nullable":true},"pe":{"type":"number","format":"double","nullable":true},"peUnit":{"type":"string","nullable":true},"wcf":{"type":"number","format":"double","nullable":true},"wcfUnit":{"type":"string","nullable":true}},"additionalProperties":false}}}}
````

## The OpenSessionSpecs object

```json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"OpenSessionSpecs":{"type":"object","properties":{"memoriID":{"type":"string","description":"The Memori object ID.\r\nRequired.","nullable":true},"password":{"type":"string","description":"Password. As an alternative the minimum number\r\nof recovery tokens can be supplied in the\r\nRecoveryTokens property.\r\nIf the Memori is public no password is required.","nullable":true},"recoveryTokens":{"type":"array","items":{"type":"string"},"description":"Recovery tokens, as an alternative to the Memori's password.\r\nMust be supplied in the minimum number set during Memori\r\nregistration.","nullable":true},"tag":{"type":"string","description":"Optional initial tag. If specified the PIN property must also be specified. The Dialog State Machine will try to transition to the corresponding Giver or Receiver automatically. Transition may fail if Tag or PIN are incorrect, or if the Giver or Receiver have not been set up yet. <br> When ContinueFromChatLogID is specified, Tag and PIN must match those in use in the Chat Log when the session was saved.","nullable":true},"pin":{"type":"string","description":"Optional PIN corresponding to the initial tag, expressed as a 6-digit number between 000000 and 999999. Must be specified if the Tag property is specified. <br> When ContinueFromChatLogID is specified, Tag and PIN must match those in use in the Chat Log when the session was saved.","nullable":true},"initialContextVars":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"Optional initial context, expressed as a set of variable-value paris. <br> When ContinueFromChatLogID is specified, InitialContextVars is ignored.","nullable":true},"initialQuestion":{"type":"string","description":"Optional initial question. It is sent as a Text Entered Event to the Dialog State Machine if the state session opening is R1. <br> When ContinueFromChatLogID is specified, InitialQuestion is ignored.","nullable":true},"continueFromChatLogID":{"type":"string","description":"Optional ID of an existing Chat Log for this Memori object, from which the session and the conversation should continue. <br> When specified, InitialContextVars and InitialQuestion are ignored. Additionally, the Tag and PIN properties must match those in use in the Chat Log when the session was saved.","nullable":true},"continueFromSessionID":{"type":"string","description":"Optional ID of an existing Session ID for this Memori object, from which the session and the conversation should continue. <br> When specified, InitialContextVars and InitialQuestion are ignored. Additionally, the Tag and PIN properties must match those in use in the Chat Log when the session was saved.","nullable":true},"birthDate":{"type":"string","description":"Birthdate of the user. Age verification may be applied when Memori\r\ncontent is NSFW or makes use of completions.\r\nIf a login token is specified in the Additional Info field, the user's birth date\r\nobtained from the login token overrides whatever value is specified here.\r\nThis value is never stored.","format":"date-time","nullable":true},"maintenanceCode":{"type":"string","description":"For internal use only.","nullable":true},"additionalInfo":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"Optional additional key-value pairs to be saved in the session and the corresponding Event Log Memori Opened event. This additional information can be retrieved later by the Giver with the Event Log API. <br> Currently supported keys are:<ul> <li><code>loginToken</code>: a valid Memori.AI login token for the user, from which information like the user's unique ID, their birth date and e-mail are retrieved (for age verification and DCM integration purposes)</li> <li><code>language</code>: the language ISO code used to open the session (may be different from the Memori language if a translation layer is in place)</li> <li><code>referral</code>: the referral URL, as reported by the hosting web application</li> <li><code>timeZoneOffset</code>: the offset in minutes of the UTC time zone from the user's local time zone. Note: the offset is <i>subtracted</i> from UTC to obtain the user's local time, not added. E.g.: it should be -120 for CEST, <b>not</b> +120.</li> </ul>","nullable":true}},"additionalProperties":false,"description":"Specifications for a Session Open request."}}}}
```

## The PersonSpecs object

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"PersonSpecs":{"type":"object","properties":{"personID":{"type":"string","description":"Person object ID.","nullable":true},"personType":{"type":"string","description":"Person type, e.g. ```Giver``` or ```Receiver```.\r\nRequired during Add operations.","nullable":true},"name":{"type":"string","description":"Person name.\r\nMay be ```Null``` only when the Person object is created by\r\nthe Dialog State Machine and the name has not been set yet.","nullable":true},"information":{"type":"string","description":"Person information.\r\nCurrently this is a free (unprocessed) text.","nullable":true},"pin":{"type":"string","description":"Person PIN. Must be a code between ```000000``` and ```999999```.\r\nMay be ```Null``` only when the Person object is created by\r\nthe Dialog State Machine and the PIN has not been set yet.\r\nRequired during Add operations.","nullable":true},"tag":{"type":"string","description":"Person tag.\r\nCan be any publicly visible string that the person recognizes as distinctive.\r\nTypically it is an emoji symbol, but could also be an RFID code or\r\nsomething else.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false,"description":"Specifications of a Person object."}}}}
````

## The PlaceSpecs object

```json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"PlaceSpecs":{"type":"object","properties":{"placeName":{"type":"string","description":"Name of the place, e.g. `London`.\r\nIf latitude and longitude are not provided, the name is geocoded automatically.","nullable":true},"latitude":{"type":"number","description":"Latitude of the place, e.g. `51.5285582`.\r\nMust be provided together with Memori.WebApi.Model.PlaceSpecs.Longitude.","format":"double","nullable":true},"longitude":{"type":"number","description":"Longitude of the place, e.g. `-0.2416791`.\r\nMust be provided together with Memori.WebApi.Model.PlaceSpecs.Latitude.","format":"double","nullable":true},"uncertaintyKm":{"type":"number","description":"Radius of uncertainty in kilometers, e.g. `20.0`.","format":"double","nullable":true}},"additionalProperties":false,"description":"Geographical coordinates and optional place name."}}}}
```

## The Response object

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"Response":{"type":"object","properties":{"requestID":{"type":"integer","description":"Progressive number of the request (since the Server started).\r\nUse this number, together with the RequestDateTime property,\r\nto report an anomalous response.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous response.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is equivalent to the HTTP\r\nstatus code.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Base response."}}}}
````

## The SearchMemoriesResponse object

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"SearchMemoriesResponse":{"type":"object","properties":{"count":{"type":"integer","description":"Total number of Match objects.","format":"int32"},"matches":{"type":"array","items":{"$ref":"#/components/schemas/MatchSpecs"},"description":"List of Match objects.\r\nMay be empty.","nullable":true},"requestID":{"type":"integer","description":"Progressive number of the request (since the Server started).\r\nUse this number, together with the RequestDateTime property,\r\nto report an anomalous response.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous response.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is equivalent to the HTTP\r\nstatus code.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response of a Search Memories request."},"MatchSpecs":{"type":"object","properties":{"memory":{"$ref":"#/components/schemas/MemorySpecs"},"confidence":{"type":"number","description":"Match confidence, between ```0.0``` (no confidence) and\r\n```1.0``` (full confidence).","format":"double"},"confidenceLevel":{"type":"string","description":"Confidence level, e.g. ```LOW```, ```MEDIUM``` or ```HIGH```.","nullable":true}},"additionalProperties":false,"description":"Specifications of a Match object."},"MemorySpecs":{"type":"object","properties":{"memoryID":{"type":"string","description":"Memory object ID.","nullable":true},"memoryType":{"type":"string","description":"Memory type, e.g. <code>Question</code>, <code>Story</code> or <code>Default</code>. Required during Add operations. <br> Currently possible values are:<ul> <li><code>Question</code>: this Memory is a question, hence its title is expected in interrogative form</li> <li><code>Story</code>: this Memory is a story, hence its title is expected in affirmative form</li> <li><code>Default</code>: this Memory is a default answer, hence its title is ignored (empty or null)</li> <li><code>CompletionDraft</code>: this Memory is draft from a completion, obtained via a generative AI.</li> <li><code>ExpertReference</code>: this Memory is the results of a question asked to a Board of Experts, and the answer is the name of the Expert that replied to the question.</li> </ul>","nullable":true},"lastRead":{"type":"string","description":"Timestamp of the last time this Memory has been shown to a Receiver.\r\nThis value is also used when picking random memories to avoid showing\r\nmemories that have already been shown recently.\r\n```Null``` if the Memory has not been shown yet.","format":"date-time","nullable":true},"readOccurrences":{"type":"integer","description":"Number of times this Memory has been shown to a Receiver.\r\n```Null``` if the Memory has not been shown yet.","format":"int32","nullable":true},"receiverID":{"type":"string","description":"ID of the Person object to whom this Memory belongs.\r\n```Null``` if the Memory is public. When updating,\r\nset it to a single dash character (```-```) to remove a\r\npreviously set association with a Person.","nullable":true},"receiverTag":{"type":"string","description":"Tag of the Person object to whom this Memory belongs.\r\n```Null``` if the Memory is public.","nullable":true},"receiverName":{"type":"string","description":"Name of the Person object to whom this Memory belongs.\r\n```Null``` if the Memory is public.","nullable":true},"media":{"type":"array","items":{"$ref":"#/components/schemas/MediumSpecs"},"description":"List of Medium objects associated with this Memory.\r\nMay be empty.","nullable":true},"title":{"type":"string","description":"Title of the Question or Story.\r\nNull if this Memory is a Default.","nullable":true},"titleVariants":{"type":"array","items":{"type":"string"},"description":"Title variants of this Question or Story.\r\nEmpty if this Memory is a Default.","nullable":true},"answers":{"type":"array","items":{"$ref":"#/components/schemas/AnswerSpecs"},"description":"List of its Answer objects.\r\nAt least one answer must be present.","nullable":true},"date":{"type":"string","description":"Approximate date associated with this Memory.\r\nWhen updating, set it to midnight Jan. 1st 1 A.D.\r\n(```01/01/01 00:00:00```) to clear any previously set\r\nDate and DateUncertaintyDays.","format":"date-time","nullable":true},"dateUncertaintyDays":{"type":"number","description":"Uncertainty in the date associated with this Memory,\r\nexpressed in days.","format":"double","nullable":true},"placeName":{"type":"string","description":"Name of the place associated with this Memory.\r\nWhen updating, set it to a single dash character\r\n(```-```) to clear any previously set Place (by name or\r\ncoordinates) and PlaceUncertaintyKm.","nullable":true},"placeLatitude":{"type":"number","description":"Latitude of the place associated with this Memory.","format":"double","nullable":true},"placeLongitude":{"type":"number","description":"Longitude of the place associated with this Memory.","format":"double","nullable":true},"placeUncertaintyKm":{"type":"number","description":"Uncertainty of the place associated with this Memory,\r\nexpressed in kilometers.","format":"double","nullable":true},"conclusive":{"type":"boolean","description":"If ```True```, when this Memory is emitted it is NOT followed by a continuation prompt,\r\nsuch as \"Is there anything else you want to know?\".","nullable":true},"notPickable":{"type":"boolean","description":"If ```True```, this Memory can't be randomly picked with a Timeout Event, or\r\nexplicitly searching for random Memory objects.\r\nIgnored for Memory of type Default.","nullable":true},"help":{"type":"boolean","description":"If ```True```, this Memory's content can be emitted if the user fails\r\nto find a question with an answer at the beginning of a session.\r\nIgnored for Memory of type Default.","nullable":true},"hints":{"type":"array","items":{"type":"string"},"description":"Hints for this Memory.","nullable":true},"minTimeout":{"type":"number","description":"Minimum idle timeout, in seconds. If not specified, by default it is set to 20 seconds. <br> The idle timeout is the time after which the client sends a Timeout event and, typically, a random question or story is picked up and proposed to the user. The actual idle timeout is computed as a random number between <code>MinTimeout</code> and <code>MaxTimeout</code> plus the reading time, where the reading time is in turn computed as the time it would take to read the answer at 150 words per minute.","format":"double","nullable":true},"maxTimeout":{"type":"number","description":"Maximum idle timeout, in seconds. If not specified, by default it is set to 40 seconds. <br> The idle timeout is the time after which the client sends a Timeout event and, typically, a random question or story is picked up and proposed to the user. The actual idle timeout is computed as a random number between <code>MinTimeout</code> and <code>MaxTimeout</code> plus the reading time, where the reading time is in turn computed as the time it would take to read the answer at 150 words per minute.","format":"double","nullable":true},"contextVarsToSet":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"List of variable-value pairs to be used to alter the context when this Memory is matched.\r\nUse the special value ```-``` (a single dash character) to clear a context variable.","nullable":true},"contextVarsToMatch":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"List of variable-value pairs to be used to match this Memory with the context. If the context\r\ncontains a variable listed here, the value must match for the Memory to match.","nullable":true},"dcmOutcomeType":{"type":"string","description":"Optional type of the outcome to be sent to the DCM platform when this Memory is emitted.","nullable":true},"dcmOutcomeCode":{"type":"string","description":"Optional code of the outcome to be sent to the DCM platform when this Memory is emitted.","nullable":true},"tags":{"type":"array","items":{"type":"string"},"description":"Tags for this Memory.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false,"description":"Specifications of a Memory object."},"MediumSpecs":{"type":"object","properties":{"mediumID":{"type":"string","description":"Medium object ID.","nullable":true},"url":{"type":"string","description":"URL of the Medium. If specified, the Content property must be ```Null```.\r\nUse this property to link large amounts of data stored externally.\r\nIf the amount of data is modest the Content property may be used as an alternative.","nullable":true},"content":{"type":"string","description":"Content of the Medium. If specified, the URL property must be ```Null```.\r\nDon't use this property to store large amounts of data. Can be used to store limited \r\ntext for a maximum of 10 KiB. For larger amounts store the data externally and link it\r\nvia the URL property.","nullable":true},"mimeType":{"type":"string","description":"MIME type of the Medium.\r\nRequired during Add operations.","nullable":true},"title":{"type":"string","description":"Title of the Medium.","nullable":true},"properties":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"Key-value pairs for additional structured content storage.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false,"description":"Specifications of a Medium object."},"AnswerSpecs":{"type":"object","properties":{"text":{"type":"string","description":"Text of the Answer.\r\nRequired during Add operations.","nullable":true},"preformatted":{"type":"boolean","description":"If ```True```, when this Answer is emitted no reformatting is applied.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false,"description":"Specifications of an Answer object."}}}}
````

## The SearchQuerySpecs object

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"SearchQuerySpecs":{"type":"object","properties":{"text":{"type":"string","description":"Search query.\r\nUsed only for Search and Filter Memories.\r\nIgnored for Random picking and Memory Hints.","nullable":true},"searchType":{"type":"string","description":"How to interpret the search query in the Text property:<ul><li>If \"Semantic\", the query is interpreted as a full question in natural language,\r\n    and the search is performed in the same way a question would be posed to the\r\n    Dialog State Machine.</li><li>If \"Literal\", the query is intended as space-separated keywords,\r\n    and the search is performed by looking for them as a substring in the\r\n    text and titles of Memories.</li></ul>\r\nIf omitted the search is Semantic by default.\r\nUsed only for Search and Filter Memories.\r\nIgnored for Random picking and Memory Hints.","nullable":true},"date":{"type":"string","description":"Approximate date of Memories to limit the search to.\r\nUsed for Search, Filter Memories and Random picking.\r\nIgnored for Memory Hints.","format":"date-time","nullable":true},"dateUncertaintyDays":{"type":"number","description":"Uncertainty of the date, in days.\r\nRequired if Date is specified.\r\nUsed for Search, Filter Memories and Random picking.\r\nIgnored for Memory Hints.","format":"double","nullable":true},"placeName":{"type":"string","description":"Name of the approximate place of Memories to limit the search to.\r\nUsed for Search, Filter Memories and Random picking.\r\nIgnored for Memory Hints.","nullable":true},"placeLatitude":{"type":"number","description":"Latitude of the approximate place of Memories to limit the search to.\r\nUsed for Search, Filter Memories and Random picking.\r\nIgnored for Memory Hints.","format":"double","nullable":true},"placeLongitude":{"type":"number","description":"Longitude of the approximate place of Memories to limit the search to.\r\nUsed for Search, Filter Memories and Random picking.\r\nIgnored for Memory Hints.","format":"double","nullable":true},"placeUncertaintyKm":{"type":"number","description":"Uncertainty of place, in kilometers.\r\nRequired if PlaceName or PlaceLatitude and PlaceLongitude are specified.\r\nUsed for Search, Filter Memories and Random picking.\r\nIgnored for Memory Hints.","format":"double","nullable":true},"tag":{"type":"string","description":"Extends or limits the search to Memories associated with a Receiver with this tag,\r\ndepending on the API called:<ul><li>For Search, Random picking and Memory Hints, the search is <em>extended</em>\r\n    to Memories associated with a Receiver with this tag. If omitted the search is limited\r\n    to public Memories. As a special case, if the Giver tag is specified then the search is\r\n    extended to all Memories, whoever they are associated to.</li><li>For Filter Memories, the search is <em>limited</em> to Memories associated with a\r\n    Receiver with this tag.</li></ul>","nullable":true},"ignoreLastRead":{"type":"boolean","description":"If set to ```True```, recently picked Memories will not be deprioritized.\r\nThis means that a Memory never picked and a Memory picked just moments ago\r\nwill have the same probability to be picked again.\r\nIf omitted or set to ```False```, recently picked Memories\r\nwill be much less probable to be picked again.\r\nUsed only for Random picking.\r\nIgnored for Search, Filter Memories and Memory Hints.","nullable":true},"excludedMemoryIDs":{"type":"array","items":{"type":"string"},"description":"Optional list of Memory IDs that must be excluded from the search result.","nullable":true},"contextVars":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"Optional context to be matched with ContextVarsToMatch of Memories.\r\nUsed for Search, Filter Memories and Random picking and Memory Hints.","nullable":true},"contextVarsToSet":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"Optional context to be matched with ContextVarsToSet of Memories.\r\nUsed only for Filter Memories.\r\nIgnored for Search, Random picking and Memory Hints.","nullable":true},"memoryTags":{"type":"array","items":{"type":"string"},"description":"Optional list of memory tags. If specified, the search is limited to Memories\r\nincluding ALL the specified tags.\r\nUsed only for Filter Memories.\r\nIgnored for Search, Random picking and Memory Hints.","nullable":true},"numberOfResults":{"type":"integer","description":"Optional number of results. If omitted defaults to 5.","format":"int32","nullable":true},"startFrom":{"type":"integer","description":"Optional initial result index, 0-based. If omitted defaults to 0.\r\nUsed for Search, Filter Memories and Memory Hints.\r\nIgnored for Random picking.","format":"int32","nullable":true},"memoryType":{"type":"string","description":"Optional parameter, if set, filter returns only selected type of memories.\r\nUsed only for Filter Memories.","nullable":true},"withMediaOnly":{"type":"boolean","description":"Optional parameter, if set, filter returns only memories that contain media.\r\nUsed only for Filter Memories.","nullable":true}},"additionalProperties":false,"description":"Specifications for a Memory search."}}}}
````

## The SelectDateSpecs object

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"SelectDateSpecs":{"type":"object","properties":{"date":{"type":"string","description":"Selected date, in the format ```yyyy/MM/dd HH:mm:ss zzz```,\r\ne.g. ```2020/01/01 09:30:00 +02```.\r\nRequired.","nullable":true},"uncertaintyDays":{"type":"number","description":"Uncertainty of the date, in days. E.g. ```3.5``` for a period\r\nof one week centered in the date specified with ```Date```.","format":"double","nullable":true}},"additionalProperties":false,"description":"Specifications for a Date Selected event. A Date Selected event does not change the Current Date,\r\nit is used only for supplying a date to be associated with a Memory, using an alternative interface\r\nto the textual dialog."}}}}
````

## The SelectMediumSpecs object

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"SelectMediumSpecs":{"type":"object","properties":{"medium":{"$ref":"#/components/schemas/MediumSpecs"}},"additionalProperties":false,"description":"Specifications for a Medium Selected event. A Medium Selected event is used for supplying\r\nmedia to be associated with a Memory or used during dialog (e.g. by an intent or generative AI)."},"MediumSpecs":{"type":"object","properties":{"mediumID":{"type":"string","description":"Medium object ID.","nullable":true},"url":{"type":"string","description":"URL of the Medium. If specified, the Content property must be ```Null```.\r\nUse this property to link large amounts of data stored externally.\r\nIf the amount of data is modest the Content property may be used as an alternative.","nullable":true},"content":{"type":"string","description":"Content of the Medium. If specified, the URL property must be ```Null```.\r\nDon't use this property to store large amounts of data. Can be used to store limited \r\ntext for a maximum of 10 KiB. For larger amounts store the data externally and link it\r\nvia the URL property.","nullable":true},"mimeType":{"type":"string","description":"MIME type of the Medium.\r\nRequired during Add operations.","nullable":true},"title":{"type":"string","description":"Title of the Medium.","nullable":true},"properties":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"Key-value pairs for additional structured content storage.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false,"description":"Specifications of a Medium object."}}}}
````

## The SelectPlaceSpecs object

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"SelectPlaceSpecs":{"type":"object","properties":{"placeName":{"type":"string","description":"Name of the new place, e.g. ```London```.\r\nIf it is the only field specified, it is geocoded into latitude, longitude and uncertainty.\r\nOn the other hand, if latitude and longitude are specified, the place name is stored without\r\nchecking it.","nullable":true},"latitude":{"type":"number","description":"Latitude of the new place, if known. E.g. ```51.5285582```.\r\nIf specified, the longitude must also be specified. Otherwise it is ignored.","format":"double","nullable":true},"longitude":{"type":"number","description":"Longitude of the new place, if known. E.g. ```-0.2416791```.\r\nIf specified, the latitude must also be specified. Otherwise it is ignored.","format":"double","nullable":true},"uncertaintyKm":{"type":"number","description":"Radius of uncertainty of the new place, in kilometers. E.g. ```20.0```.","format":"double","nullable":true}},"additionalProperties":false,"description":"Specifications for a Place Selected event. A Place Selected event does not change the Current Place,\r\nit is used only for supplying a place to be associated with a Memory, using an alternative interface\r\nto the textual dialog."}}}}
````

## The SelectTagSpecs object

```json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"SelectTagSpecs":{"type":"object","properties":{"tag":{"type":"string","description":"Selected tag. The anonymous/null tag is not valid for this event.\r\nRequired.","nullable":true}},"additionalProperties":false,"description":"Specifications for a Tag Selected event. A Tag Selected event does not change the Current Tag,\r\nit is used only for supplying a tag to be associated with a Memory, using an alternative interface\r\nto the textual dialog."}}}}
```

## The SentenceSpecs object

```json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"SentenceSpecs":{"type":"object","properties":{"text":{"type":"string","description":"Text of the sentence.\r\nRequired.","nullable":true}},"additionalProperties":false,"description":"Specifications for requests requiring a sentence."}}}}
```

## The SessionValidResponse object

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"SessionValidResponse":{"type":"object","properties":{"isValid":{"type":"boolean","description":"Indicates whether the session is valid (exists and is not in terminal state Z0)."},"requestID":{"type":"integer","description":"Progressive number of the request (since the Server started).\r\nUse this number, together with the RequestDateTime property,\r\nto report an anomalous response.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous response.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is equivalent to the HTTP\r\nstatus code.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response for session validity check requests."}}}}
````

## The SlotWebHookRequest object

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"SlotWebHookRequest":{"type":"object","properties":{"slotName":{"type":"string","description":"Name of the slot.","nullable":true},"requestID":{"type":"integer","description":"Progressive number of the request. It is NOT a unique number, since it is reset each time the Server is restarted, but together with <code>RequestDateTime</code> (and optionally <code>MemoriID</code>) they form a reasonably unique identifier. <br> This property is not used to match a request with cached responses of the same request, i.e.: two requests with identical properties but different <code>RequestID</code> are considered identical.","format":"int64","readOnly":true},"requestDateTime":{"type":"string","description":"Timestamp of the request in UTC time zone. <br> This property is not used to match a request with cached responses of the same request, i.e.: two requests with identical properties but different <code>RequestDateTime</code> are considered identical.","format":"date-time","readOnly":true},"requestValidityMinutes":{"type":"number","description":"Validity of the request, expressed in minutes, i.e. the time the response will be cached and considered valid. After this time the response will be automatically discarded. <br> Two requests are considered identical (and the cached response of the first may be used for the second) if ALL of their parameters are identical EXCEPT <code>RequestID</code>, <code>RequestDateTime</code> and <code>RequestValidityMinutes</code>, and additionally <code>SessionID</code> for IntentWebHookRequest.","format":"double","readOnly":true},"memoriID":{"type":"string","description":"ID of the Memori performing the request.","nullable":true},"culture":{"type":"string","description":"Culture of the request, expressed as a combination of\r\nan ISO-639 language code and an ISO-3166 country code.\r\nE.g. ```it-IT``` or ```en-US```.","nullable":true}},"additionalProperties":false,"description":"Specifications for a Slot Web Hook request."}}}}
````

## The SlotWebHookResponse object

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"SlotWebHookResponse":{"type":"object","properties":{"slotValues":{"type":"array","items":{"type":"string"},"description":"Values of the request slot.\r\nIf the intent slot has any preset value in its configuration,\r\nvalues returned by the hook are added to preset ones.\r\nDuplicated values are discarded.","nullable":true},"requestID":{"type":"integer","description":"Progressive number of the original request this response refers to.\r\nRequired.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the original request this response refers to, in UTC time zone.\r\nRequired.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code of the request. Must be set to ```0``` if the request\r\nsucceeded. Any other value will be considered a failure, but the value\r\nwill be logged for subsequent diagnosis.\r\nRequired.","format":"int32"},"resultMessage":{"type":"string","description":"Result message of the request. Must be set to ```Ok``` if the request\r\nsucceeded. Any other value will be considered a failure, but the value\r\nwill be logged for subsequent diagnosis.\r\nRequired.","nullable":true}},"additionalProperties":false,"description":"Specifications for a Slot Web Hook response."}}}}
````

## The StateChangedResponse object

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"StateChangedResponse":{"type":"object","properties":{"currentState":{"$ref":"#/components/schemas/DialogStateSpecs"},"requestID":{"type":"integer","description":"Progressive number of the request (since the Server started).\r\nUse this number, together with the RequestDateTime property,\r\nto report an anomalous response.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous response.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is equivalent to the HTTP\r\nstatus code.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response for requests affecting the Dialog State Machine's state."},"DialogStateSpecs":{"type":"object","properties":{"state":{"type":"string","description":"Current state of the Dialog State Machine, eg. ```R1```, ```G3``` etc.","nullable":true},"stateName":{"type":"string","description":"Name of the current state of the Dialog State Machine, e.g. ```WaitingForReceiverQuestion``` etc.","nullable":true},"previousState":{"type":"string","description":"Previous state of the Dialog State Machine, eg. ```I0```, ```G2b``` etc.","nullable":true},"confidence":{"type":"number","description":"Confidence of understanding of the entered text, with ```0.0``` no\r\nunderstanding at all and ```1.0``` certain understanding. ```Null``` if\r\nthe state transition did not require any natural language understanding.","format":"float","nullable":true},"confidenceLevel":{"type":"string","description":"Confidence level, e.g. ```NONE```, ```LOW```,\r\n```MEDIUM``` or ```HIGH```. ```Null``` if\r\nthe state transition did not require any natural language\r\nunderstanding.","nullable":true},"emission":{"type":"string","description":"Emission from the Dialog State Machine transition. ```Null``` if\r\nthe previous state transition did not emit any text.","nullable":true},"emittedMedia":{"type":"array","items":{"$ref":"#/components/schemas/MediumSpecs"},"description":"List of Medium objects associated with the emission of the state transition.","nullable":true},"media":{"type":"array","items":{"$ref":"#/components/schemas/MediumSpecs"},"description":"Obsolete. List of Medium objects associated with the emission of the state transition.\r\nUse EmittedMedia instead.","nullable":true,"deprecated":true},"continuationEmitted":{"type":"boolean","description":"```True``` if the emission contains a continuation prompts,\r\n            such as \"Is there anything else you want to ask me?\"."},"emitter":{"type":"string","description":"Name of the Memori that provided this emission. Used with Board of Experts model.\r\n```Null``` if no Board of Experts is configured, or if the Memori\r\nproviding the emission is the chairman of the Board.","nullable":true},"completion":{"type":"boolean","description":"```True``` if the emission has been obtained with a\r\n            completion from a generative AI."},"acceptsTimeout":{"type":"boolean","description":"```True``` if the current state accepts a Timeout event.\r\n            Sending a Timeout event to a state that does not accept it\r\n            causes no transition. The event is simply ignored."},"acceptsAbort":{"type":"boolean","description":"```True``` if the current state can be aborted.\r\n            Trying to abort event a state that does not accept it\r\n            causes no transition. It is simply ignored."},"acceptsMedia":{"type":"boolean","description":"```True``` if the current state accepts a MediumSelected event.\r\n            Trying to send a MediumSelected event to a state that does not accept it\r\n            causes no transition. It is simply ignored."},"acceptsDate":{"type":"boolean","description":"```True``` if the current state accepts a DateSelected event.\r\n            Trying to send a DateSelected event to a state that does not accept it\r\n            causes no transition. It is simply ignored."},"acceptsPlace":{"type":"boolean","description":"```True``` if the current state accepts a PlaceSelected event.\r\n            Trying to send a PlaceSelected event to a state that does not accept it\r\n            causes no transition. It is simply ignored."},"acceptsTag":{"type":"boolean","description":"```True``` if the current state accepts a TagSelected event.\r\n            Trying to send a TagSelected event to a state that does not accept it\r\n            causes no transition. It is simply ignored."},"acceptsFeedback":{"type":"boolean","description":"```True``` if the current state accepts a feedback intent\r\n            (e.g. \"it's not what I asked\") to notify the answer was incorrect.\r\n            Trying to send a feedback intent to a state that does not accept it\r\n            causes no transition. A courtesy answer is replied."},"hints":{"type":"array","items":{"type":"string"},"description":"List of texts suggested or accepted in the current state.\r\nIf empty does not mean the current state accepts no texts, but\r\nrather that there are no suggestions.","nullable":true},"timeout":{"type":"number","description":"Idle timeout, in seconds.\r\nSpecifies the time after which, if the user remains in idle state,\r\na Timeout event should be sent.\r\nMay be ```Null``` if the current state does not accept\r\nTimeout events.","format":"double","nullable":true},"currentTag":{"type":"string","description":"Latest tag set with a Tag Changed event.","nullable":true},"currentTagAuthenticated":{"type":"boolean","description":"True if the latest tag set with a Tag Changed event\r\nhas been successfully authenticated with its PIN."},"currentDate":{"type":"string","description":"Latest date set with a Date Changed event.","format":"date-time","nullable":true},"currentPlaceName":{"type":"string","description":"The name of the latest place set with Place Changed event.","nullable":true},"currentLatitude":{"type":"number","description":"The latitude of the latest place set with Place Changed event.","format":"double","nullable":true},"currentLongitude":{"type":"number","description":"The longitude of the latest place set with Place Changed event.","format":"double","nullable":true},"currentUncertaintyKm":{"type":"number","description":"The uncertainty in kilometers of the latest place set with Place Changed event.","format":"double","nullable":true},"currentMemoryID":{"type":"string","description":"ID of the current Memory object being created or answered.","nullable":true},"lastMatchedMemoryID":{"type":"string","description":"ID of the last Memory object matched and emitted.","nullable":true},"currentMedia":{"type":"array","items":{"$ref":"#/components/schemas/MediumSpecs"},"description":"List of Medium objects temporarily stored in the Dialog State Machine via MediumSelected events.\r\nMedia stored in the Current Media list will be sent to any configured generative AI at the\r\nnext TextEntered event. After a TextEntered event the list is always cleared.","nullable":true},"contextVars":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"Current context, expressed as a set of variable-value paris.","nullable":true},"memoryTags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the current Memory.","nullable":true},"llmUsage":{"$ref":"#/components/schemas/InteractionLLMUsage"}},"additionalProperties":false,"description":"Specifications of a state of the Dialog State Machine."},"MediumSpecs":{"type":"object","properties":{"mediumID":{"type":"string","description":"Medium object ID.","nullable":true},"url":{"type":"string","description":"URL of the Medium. If specified, the Content property must be ```Null```.\r\nUse this property to link large amounts of data stored externally.\r\nIf the amount of data is modest the Content property may be used as an alternative.","nullable":true},"content":{"type":"string","description":"Content of the Medium. If specified, the URL property must be ```Null```.\r\nDon't use this property to store large amounts of data. Can be used to store limited \r\ntext for a maximum of 10 KiB. For larger amounts store the data externally and link it\r\nvia the URL property.","nullable":true},"mimeType":{"type":"string","description":"MIME type of the Medium.\r\nRequired during Add operations.","nullable":true},"title":{"type":"string","description":"Title of the Medium.","nullable":true},"properties":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"Key-value pairs for additional structured content storage.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false,"description":"Specifications of a Medium object."},"InteractionLLMUsage":{"type":"object","properties":{"provider":{"type":"string","nullable":true},"model":{"type":"string","nullable":true},"totalInputTokens":{"type":"integer","format":"int32"},"inputCacheReadTokens":{"type":"integer","format":"int32"},"inputCacheWriteTokens":{"type":"integer","format":"int32"},"outputTokens":{"type":"integer","format":"int32"},"durationMs":{"type":"integer","format":"int32"},"energyImpact":{"$ref":"#/components/schemas/InteractionEnergyImpact"}},"additionalProperties":false},"InteractionEnergyImpact":{"type":"object","properties":{"energy":{"type":"number","format":"double","nullable":true},"energyUnit":{"type":"string","nullable":true},"gwp":{"type":"number","format":"double","nullable":true},"gwpUnit":{"type":"string","nullable":true},"adPe":{"type":"number","format":"double","nullable":true},"adPeUnit":{"type":"string","nullable":true},"pe":{"type":"number","format":"double","nullable":true},"peUnit":{"type":"string","nullable":true},"wcf":{"type":"number","format":"double","nullable":true},"wcfUnit":{"type":"string","nullable":true}},"additionalProperties":false}}}}
````

## The TopicSpecs object

```json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"TopicSpecs":{"type":"object","properties":{"topicID":{"type":"string","description":"Topic object ID.","nullable":true},"name":{"type":"string","description":"Topic name.","nullable":true},"weight":{"type":"number","description":"Topic weight, i.e. the ratio between the number of times this\r\ntopic has been referenced versus to total number of references.","format":"double"},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false,"description":"Specifications of a Topic object."}}}}
```

## The TwoSentencesSpecs object

```json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"TwoSentencesSpecs":{"type":"object","properties":{"referenceText":{"type":"string","description":"Text of the reference sentence.\r\nRequired.","nullable":true},"referenceTextType":{"type":"string","description":"Type of reference text, i.e. question or answer. Required. <br> Only types supported are:<ul> <li><code>QUESTION</code></li> <li><code>ANSWER</code></li> </ul>","nullable":true},"comparisonText":{"type":"string","description":"Text of the comparison sentence.\r\nRequired.","nullable":true},"comparisonTextType":{"type":"string","description":"Type of comparison text, i.e. question or answer. Required. <br> Only types supported are:<ul> <li><code>QUESTION</code></li> <li><code>ANSWER</code></li> </ul>","nullable":true}},"additionalProperties":false,"description":"Specifications for requests requiring a two sentences."}}}}
```

## The UnansweredQuestionSpecs object

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"UnansweredQuestionSpecs":{"type":"object","properties":{"unansweredQuestionID":{"type":"string","description":"Unanswered Question object ID.","nullable":true},"text":{"type":"string","description":"Text of the question.","nullable":true},"contextVars":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"Current context at the time the questions was asked.","nullable":true},"occurrences":{"type":"integer","description":"Number of times the question has been asked.","format":"int32"},"receiverID":{"type":"string","description":"ID of the Person object who initially asked this question.\r\n```Null``` if the question was asked anonymously.","nullable":true},"receiverTag":{"type":"string","description":"Tag of the Person object who initially asked this question.\r\n```Null``` if the question was asked anonymously.","nullable":true},"receiverName":{"type":"string","description":"Name of the Person object who initially asked this question.\r\n```Null``` if the Memory is public.","nullable":true},"suggestions":{"type":"array","items":{"$ref":"#/components/schemas/MatchSpecs"},"description":"Suggested Memory objects for this question, with confidence level.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false,"description":"Specifications of an Unanswered Question object."},"MatchSpecs":{"type":"object","properties":{"memory":{"$ref":"#/components/schemas/MemorySpecs"},"confidence":{"type":"number","description":"Match confidence, between ```0.0``` (no confidence) and\r\n```1.0``` (full confidence).","format":"double"},"confidenceLevel":{"type":"string","description":"Confidence level, e.g. ```LOW```, ```MEDIUM``` or ```HIGH```.","nullable":true}},"additionalProperties":false,"description":"Specifications of a Match object."},"MemorySpecs":{"type":"object","properties":{"memoryID":{"type":"string","description":"Memory object ID.","nullable":true},"memoryType":{"type":"string","description":"Memory type, e.g. <code>Question</code>, <code>Story</code> or <code>Default</code>. Required during Add operations. <br> Currently possible values are:<ul> <li><code>Question</code>: this Memory is a question, hence its title is expected in interrogative form</li> <li><code>Story</code>: this Memory is a story, hence its title is expected in affirmative form</li> <li><code>Default</code>: this Memory is a default answer, hence its title is ignored (empty or null)</li> <li><code>CompletionDraft</code>: this Memory is draft from a completion, obtained via a generative AI.</li> <li><code>ExpertReference</code>: this Memory is the results of a question asked to a Board of Experts, and the answer is the name of the Expert that replied to the question.</li> </ul>","nullable":true},"lastRead":{"type":"string","description":"Timestamp of the last time this Memory has been shown to a Receiver.\r\nThis value is also used when picking random memories to avoid showing\r\nmemories that have already been shown recently.\r\n```Null``` if the Memory has not been shown yet.","format":"date-time","nullable":true},"readOccurrences":{"type":"integer","description":"Number of times this Memory has been shown to a Receiver.\r\n```Null``` if the Memory has not been shown yet.","format":"int32","nullable":true},"receiverID":{"type":"string","description":"ID of the Person object to whom this Memory belongs.\r\n```Null``` if the Memory is public. When updating,\r\nset it to a single dash character (```-```) to remove a\r\npreviously set association with a Person.","nullable":true},"receiverTag":{"type":"string","description":"Tag of the Person object to whom this Memory belongs.\r\n```Null``` if the Memory is public.","nullable":true},"receiverName":{"type":"string","description":"Name of the Person object to whom this Memory belongs.\r\n```Null``` if the Memory is public.","nullable":true},"media":{"type":"array","items":{"$ref":"#/components/schemas/MediumSpecs"},"description":"List of Medium objects associated with this Memory.\r\nMay be empty.","nullable":true},"title":{"type":"string","description":"Title of the Question or Story.\r\nNull if this Memory is a Default.","nullable":true},"titleVariants":{"type":"array","items":{"type":"string"},"description":"Title variants of this Question or Story.\r\nEmpty if this Memory is a Default.","nullable":true},"answers":{"type":"array","items":{"$ref":"#/components/schemas/AnswerSpecs"},"description":"List of its Answer objects.\r\nAt least one answer must be present.","nullable":true},"date":{"type":"string","description":"Approximate date associated with this Memory.\r\nWhen updating, set it to midnight Jan. 1st 1 A.D.\r\n(```01/01/01 00:00:00```) to clear any previously set\r\nDate and DateUncertaintyDays.","format":"date-time","nullable":true},"dateUncertaintyDays":{"type":"number","description":"Uncertainty in the date associated with this Memory,\r\nexpressed in days.","format":"double","nullable":true},"placeName":{"type":"string","description":"Name of the place associated with this Memory.\r\nWhen updating, set it to a single dash character\r\n(```-```) to clear any previously set Place (by name or\r\ncoordinates) and PlaceUncertaintyKm.","nullable":true},"placeLatitude":{"type":"number","description":"Latitude of the place associated with this Memory.","format":"double","nullable":true},"placeLongitude":{"type":"number","description":"Longitude of the place associated with this Memory.","format":"double","nullable":true},"placeUncertaintyKm":{"type":"number","description":"Uncertainty of the place associated with this Memory,\r\nexpressed in kilometers.","format":"double","nullable":true},"conclusive":{"type":"boolean","description":"If ```True```, when this Memory is emitted it is NOT followed by a continuation prompt,\r\nsuch as \"Is there anything else you want to know?\".","nullable":true},"notPickable":{"type":"boolean","description":"If ```True```, this Memory can't be randomly picked with a Timeout Event, or\r\nexplicitly searching for random Memory objects.\r\nIgnored for Memory of type Default.","nullable":true},"help":{"type":"boolean","description":"If ```True```, this Memory's content can be emitted if the user fails\r\nto find a question with an answer at the beginning of a session.\r\nIgnored for Memory of type Default.","nullable":true},"hints":{"type":"array","items":{"type":"string"},"description":"Hints for this Memory.","nullable":true},"minTimeout":{"type":"number","description":"Minimum idle timeout, in seconds. If not specified, by default it is set to 20 seconds. <br> The idle timeout is the time after which the client sends a Timeout event and, typically, a random question or story is picked up and proposed to the user. The actual idle timeout is computed as a random number between <code>MinTimeout</code> and <code>MaxTimeout</code> plus the reading time, where the reading time is in turn computed as the time it would take to read the answer at 150 words per minute.","format":"double","nullable":true},"maxTimeout":{"type":"number","description":"Maximum idle timeout, in seconds. If not specified, by default it is set to 40 seconds. <br> The idle timeout is the time after which the client sends a Timeout event and, typically, a random question or story is picked up and proposed to the user. The actual idle timeout is computed as a random number between <code>MinTimeout</code> and <code>MaxTimeout</code> plus the reading time, where the reading time is in turn computed as the time it would take to read the answer at 150 words per minute.","format":"double","nullable":true},"contextVarsToSet":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"List of variable-value pairs to be used to alter the context when this Memory is matched.\r\nUse the special value ```-``` (a single dash character) to clear a context variable.","nullable":true},"contextVarsToMatch":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"List of variable-value pairs to be used to match this Memory with the context. If the context\r\ncontains a variable listed here, the value must match for the Memory to match.","nullable":true},"dcmOutcomeType":{"type":"string","description":"Optional type of the outcome to be sent to the DCM platform when this Memory is emitted.","nullable":true},"dcmOutcomeCode":{"type":"string","description":"Optional code of the outcome to be sent to the DCM platform when this Memory is emitted.","nullable":true},"tags":{"type":"array","items":{"type":"string"},"description":"Tags for this Memory.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false,"description":"Specifications of a Memory object."},"MediumSpecs":{"type":"object","properties":{"mediumID":{"type":"string","description":"Medium object ID.","nullable":true},"url":{"type":"string","description":"URL of the Medium. If specified, the Content property must be ```Null```.\r\nUse this property to link large amounts of data stored externally.\r\nIf the amount of data is modest the Content property may be used as an alternative.","nullable":true},"content":{"type":"string","description":"Content of the Medium. If specified, the URL property must be ```Null```.\r\nDon't use this property to store large amounts of data. Can be used to store limited \r\ntext for a maximum of 10 KiB. For larger amounts store the data externally and link it\r\nvia the URL property.","nullable":true},"mimeType":{"type":"string","description":"MIME type of the Medium.\r\nRequired during Add operations.","nullable":true},"title":{"type":"string","description":"Title of the Medium.","nullable":true},"properties":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"Key-value pairs for additional structured content storage.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false,"description":"Specifications of a Medium object."},"AnswerSpecs":{"type":"object","properties":{"text":{"type":"string","description":"Text of the Answer.\r\nRequired during Add operations.","nullable":true},"preformatted":{"type":"boolean","description":"If ```True```, when this Answer is emitted no reformatting is applied.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false,"description":"Specifications of an Answer object."}}}}
````

## The UpdateCustomWordSpecs object

```json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"UpdateCustomWordSpecs":{"type":"object","properties":{"customWordID":{"type":"string","description":"Custom Word object ID.","nullable":true},"word":{"type":"string","description":"Custom Word.","nullable":true},"definition":{"type":"string","description":"Definition of the Custom Word, in terms of sums and subtractions of existing words or custom words. <br> The syntax for a Custom Word definition is as follows: <code>word1 [+-] word2 [+-] word3...</code> If the operator is omitted it is assumed to be the last specified from the left, and if no operator has been specified it is assumed to be the sum. E.g.:<ul> <li><code>alpha beta gamma</code> is equivalent to <code>alpha + beta + gamma</code></li> <li><code>alpha beta - gamma delta</code> is equivalent to <code>alpha + beta - gamma - delta</code></li> </ul>","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false}}}}
```

## The UpdateExpertReferenceSpecs object

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"UpdateExpertReferenceSpecs":{"type":"object","properties":{"expertID":{"type":"string","description":"Expert Reference object ID.\r\nReturned during Get operations.\r\nIgnored in other cases.","nullable":true},"name":{"type":"string","description":"Name of the expert.\r\nReturned during Get operations.\r\nRequired during Add operations.\r\nOptional during Update operations.","nullable":true},"description":{"type":"string","description":"Description of the expert, i.e. a list of the expert's skills and knowledge.\r\nReturned during Get operations.\r\nRequired during Add operations.\r\nOptional during Update operations.","nullable":true},"default":{"type":"boolean","description":"If ```True```, this expert is used when no other expert\r\nis competent for the current question.\r\nReturned during Get operations.\r\nOptional during Add operations.\r\nOptional during Update operations.","nullable":true},"expertMemoriID":{"type":"string","description":"ID of the expert Memori.\r\nReturned during Get operations.\r\nRequired during Add operations.\r\nOptional during Update operations.","nullable":true},"expertPassword":{"type":"string","description":"Password of the expert Memori. Required if the chained Memori is private or secret.\r\nOptional during Add operations and Update operations.\r\nIgnore in other cases.","nullable":true},"expertBaseURL":{"type":"string","description":"Base URL of a chained Memori, typically ```https://engine.memori.ai/```.\r\nReturned during Get operations.\r\nRequired during Add operations.\r\nOptional during Update operations.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false,"description":"Specifications for an Update Expert Reference request."}}}}
````

## The UpdateFunctionSpecs object

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"UpdateFunctionSpecs":{"type":"object","properties":{"functionID":{"type":"string","description":"Function object ID.","nullable":true},"functionType":{"type":"string","description":"Function type, e.g. ```Internal``` or ```WebHook```.\r\nInternal functions are a limited subset implemented internally,\r\nwhile WebHook intents perform an external HTTP call to the\r\nspecified web hook, using the specified templates.\r\nRequired during Add operations.\r\nIgnored during Update operations.","nullable":true},"name":{"type":"string","description":"Name of the Function object.\r\nRequired during Add operations.","nullable":true},"description":{"type":"string","description":"Description of the Function object. The description is provided to the\r\ngenerative AI to help it understand the purpose of the function.\r\nRequired during Add operations.","nullable":true},"parameters":{"type":"array","items":{"$ref":"#/components/schemas/FunctionParameterSpecs"},"description":"List of its Function Parameter objects.\r\nMay be empty.","nullable":true},"webHook":{"type":"string","description":"HTTP URL of the web hook to be called when the function is invoked,\r\nup to the path part. The query string part is specified separately.\r\nIt may include the value of function parameters using the syntax ```{parameter}```,\r\nwhere \"parameter\" is the parameter name. E.g.: ```http://example.com/{param}/something```.\r\nIf the function is of Internal type, it is ignored.","nullable":true},"httpMethod":{"type":"string","description":"HTTP method to be used when calling the web hook, e.g. \"GET\", \"POST\" etc.\r\nIf the function is of Internal type, it is ignored.","nullable":true},"httpHeaders":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"Optional set of HTTP headers to be passed to the web hook.\r\nIf the function is of Internal type, it is ignored.","nullable":true},"httpQueryStringTemplate":{"type":"string","description":"Template of the HTTP query string to be passed to the web hook.\r\nIt may include the value of function parameters using the syntax ```{parameter}```,\r\nwhere \"parameter\" is the parameter name. E.g.: ```param1={param1}&param2={param2}```.\r\nIf the function is of Internal type, it is ignored.","nullable":true},"httpBodyTemplate":{"type":"string","description":"Template of the HTTP request body to be passed to the web hook.\r\nIt may be in any format (JSON, XML etc.), and may include the value of function \r\nparameters using the syntax ```{parameter}```, where \"parameter\"\r\nis the parameter name. E.g.: ```{ \"param1\": \"{param1}\", \"param2\": \"{param2}\" }```,\r\nor: ```<request><param1>{param1}</param1><param2>{param2}</param2></request>```.\r\nIf the function is of Internal type, it is ignored.","nullable":true},"httpBodyContentType":{"type":"string","description":"MIME type of the HTTP request body to be passed to the web hook.\r\nIf not specified \"text/plain\" is assumed.\r\nIf the function is of Internal type, it is ignored.","nullable":true},"sendExtensionHeaders":{"type":"array","items":{"type":"string"},"description":"List of extension headers to be sent to the web hook. Extension headers let the web hook receive internal information on the current state of the conversation, such as the session ID, current date and place, context variables etc. If the function is of Internal type, it is ignored. <br> Currently supported extension headers are:<ul> <li><code>SESSION-ID</code>: the current session ID, sent with header X-Memori-Session-ID</li> <li><code>CURRENT-TAG</code>: the current tag, sent with headers X-Memori-Current-Tag and X-Memori-Current-Tag-Authenticated</li> <li><code>CURRENT-DATE</code>: the current date in UTC, sent with header X-Memori-Current-Date</li> <li><code>CURRENT-PLACE</code>: the current place, sent with headers X-Memori-Current-Place-Name, X-Memori-Current-Place-Latitude, X-Memori-Current-Place-Longitude and X-Memori-Current-Place-UncertaintyKm</li> <li><code>CONTEXT-VARS</code>: the current context variables, sent with header X-Memori-Context-Vars, with the format NAME1:VALUE1,NAME2:VALUE2,...,NAMEn:VALUEn</li> <li><code>USER-EMAIL</code>: the current user email, sent with header X-Memori-User-Email</li> </ul>","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false,"description":"Specifications for an Update Function request."},"FunctionParameterSpecs":{"type":"object","properties":{"parameterID":{"type":"string","description":"Function Parameter object ID.","nullable":true},"name":{"type":"string","description":"Name of the Function Parameter object.\r\nRequired during Add operations.","nullable":true},"description":{"type":"string","description":"Description of the Function Parameter object. The description is provided to the\r\ngenerative AI to help it understand the purpose of the parameter.\r\nRequired during Add operations.","nullable":true},"parameterType":{"type":"string","description":"Parameter type, e.g. \"string\", \"number\", \"integer\", \"boolean\". Required during Add operations. <br> Currently supported types are:<ul> <li><code>string</code>: string value</li> <li><code>number</code>: floating point value</li> <li><code>integer</code>: integer value</li> <li><code>boolean</code>: boolean value</li> </ul>","nullable":true},"possibleValues":{"type":"array","items":{"type":"string"},"description":"Optional list of possible values of the parameter.\r\nIf empty or null, the parameter accepts any value of the specified type.","nullable":true},"required":{"type":"boolean","description":"Whether the parameter is required or not.\r\nDefault is not required.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false,"description":"Specifications of an Function Parameter object."}}}}
````

## The UpdateIntentSlotSpecs object

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"UpdateIntentSlotSpecs":{"type":"object","properties":{"intentSlotID":{"type":"string","description":"Intent Slot object ID.","nullable":true},"name":{"type":"string","description":"Name of the Intent Slot object. It is part of the ```SlotWebHookRequest```\r\nrequest passed to the web hook.\r\nRequired during Add operations.","nullable":true},"values":{"type":"array","items":{"type":"string"},"description":"List of possible values of the slot.\r\nA slot may be composed of fixed values in this property,\r\ndynamic values fetched from the web hook, or a combination of both.\r\nEach value is considered only once (duplicate values are ignored).","nullable":true},"webHook":{"type":"string","description":"HTTP URL of the web hook to be called when the slot values must be fetched.\r\nMay be null if the slot is composed only of fixed values in\r\nthe ```Values``` property.\r\nIf specified, the web hook is called periodically with an HTTP POST call,\r\npassing a ```SlotWebHookRequest``` and expecting a ```SlotWebHookResponse```\r\nin response. Periodicity is determined by the ```ValidityMinutes``` property,\r\nwith a minimum of 0.5 (30 seconds).","nullable":true},"validityMinutes":{"type":"number","description":"Time to cache the slot values, expressed in minutes. May be\r\nfractional. A cached slot response is used only when the a subsequent slot request\r\nmatches exactly the original request.\r\nSee also ```RequestValidityMinutes``` in ```WebHookRequest```.","format":"double","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false,"description":"Specifications for an Update Intent Slot request."}}}}
````

## The UpdateIntentSpecs object

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"UpdateIntentSpecs":{"type":"object","properties":{"intentID":{"type":"string","description":"Intent object ID.","nullable":true},"intentType":{"type":"string","description":"Function type, e.g. ```Internal``` or ```WebHook```.\r\nInternal intents are a limited subset implemented internally,\r\nwhile WebHook intents perform an external HTTP POST call to the\r\nspecified web hook, passing an ```IntentWebHookRequest```\r\nand expecting an ```IntentWebHookResponse``` in response.\r\nRequired during Add operations.\r\nIgnored during Update operations.","nullable":true},"name":{"type":"string","description":"Name of the Intent object. It is part of the ```IntentWebHookRequest```\r\nrequest passed to the web hook.\r\nRequired during Add operations.","nullable":true},"utterances":{"type":"array","items":{"$ref":"#/components/schemas/UtteranceSpecs"},"description":"List of accepted Utterance objects for this Intent, i.e. the\r\nlist of text sentences that can be used to express the intent.\r\nUtterances may include variable parts in the sentence by the use of\r\none or more slots. Slots are specified using the syntax ```{slot}```,\r\nwhere \"slot\" is the slot name. If present, their value is part of the\r\n```IntentWebHookRequest``` passed to the web hook. Each slot\r\ncan be present only once in the sentence, and must have been previously\r\ndefined with a Intent Slot object.\r\nA special slot is the ```{date}``` slot, which represents a\r\nperiod of time such as \"today\", \"yesterday\", \"last week\", \"next month\" etc.\r\nIts values is passed in the ```IntentWebHookRequest``` as the\r\n```BeginUTC``` and ```EndUTC``` properties.\r\nRequired during Add operations.","nullable":true},"timeoutIntent":{"type":"boolean","description":"If ```True``` this Intent may be executed to serve a Timeout event\r\nin R1 state. In this case the utterance is null.\r\nIn case more than one Intent have this flag set, a random one is picked.","nullable":true},"webHook":{"type":"string","description":"HTTP URL of the web hook to be called when the intent is recognized.\r\nIf the intent is of Internal type, it is ignored.","nullable":true},"validityMinutes":{"type":"number","description":"Time to cache the intent response, expressed in minutes. May be\r\nfractional. A cached intent response is used only when the a subsequent intent request\r\nmatches exactly the original request.\r\nSee also ```RequestValidityMinutes``` in ```WebHookRequest```.","format":"double","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false,"description":"Specifications for an Update Intent request."},"UtteranceSpecs":{"type":"object","properties":{"utteranceID":{"type":"string","description":"Utterance object ID.","nullable":true},"text":{"type":"string","description":"Accepted Utterance object for its corresponding intent, i.e. the\r\ntext sentence that can be used to express the intent.\r\nAn Utterance may include variable parts in the sentence by the use of\r\none or more slots. Slots are specified using the syntax ```{slot}```,\r\nwhere \"slot\" is the slot name. If present, their value is part of the\r\n```IntentWebHookRequest``` passed to the web hook. Each slot\r\ncan be present only once in the sentence, and must have been previously\r\ndefined with a Intent Slot object.\r\nA special slot is the ```{date}``` slot, which represents a\r\nperiod of time such as \"today\", \"yesterday\", \"last week\", \"next month\" etc.\r\nIts values is passed in the ```IntentWebHookRequest``` as the\r\n```BeginUTC``` and ```EndUTC``` properties.\r\nRequired during Add operations.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false,"description":"Specifications of an Utterance object."}}}}
````

## The UpdateLocalizationKeySpecs object

```json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"UpdateLocalizationKeySpecs":{"type":"object","properties":{"key":{"type":"string","description":"Localization Key.\r\nRequired during Add operations.\r\nIgnored during Update operations.","nullable":true},"value":{"type":"string","description":"Value of the Localization Key.\r\nRequired during Add and Update operations.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false}}}}
```

## The UpdateMediumSpecs object

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"UpdateMediumSpecs":{"type":"object","properties":{"mediumID":{"type":"string","description":"Medium object ID.","nullable":true},"url":{"type":"string","description":"URL of the Medium. If specified, the Content property must be ```Null```.\r\nUse this property to link large amounts of data stored externally.\r\nIf the amount of data is modest the Content property may be used as an alternative.","nullable":true},"content":{"type":"string","description":"Content of the Medium. If specified, the URL property must be ```Null```.\r\nDon't use this property to store large amounts of data. Can be used to store limited \r\ntext for a maximum of 10 KiB. For larger amounts store the data externally and link it\r\nvia the URL property.","nullable":true},"mimeType":{"type":"string","description":"MIME type of the Medium.\r\nRequired during Add operations.","nullable":true},"title":{"type":"string","description":"Title of the Medium.","nullable":true},"properties":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"Key-value pairs for additional structured content storage.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false}}}}
````

## The UpdateMemorySpecs object

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"UpdateMemorySpecs":{"type":"object","properties":{"markAsRead":{"type":"boolean","description":"If ```True``` updates the LastRead property with the current date.","nullable":true},"memoryID":{"type":"string","description":"Memory object ID.","nullable":true},"memoryType":{"type":"string","description":"Memory type, e.g. <code>Question</code>, <code>Story</code> or <code>Default</code>. Required during Add operations. <br> Currently possible values are:<ul> <li><code>Question</code>: this Memory is a question, hence its title is expected in interrogative form</li> <li><code>Story</code>: this Memory is a story, hence its title is expected in affirmative form</li> <li><code>Default</code>: this Memory is a default answer, hence its title is ignored (empty or null)</li> <li><code>CompletionDraft</code>: this Memory is draft from a completion, obtained via a generative AI.</li> <li><code>ExpertReference</code>: this Memory is the results of a question asked to a Board of Experts, and the answer is the name of the Expert that replied to the question.</li> </ul>","nullable":true},"lastRead":{"type":"string","description":"Timestamp of the last time this Memory has been shown to a Receiver.\r\nThis value is also used when picking random memories to avoid showing\r\nmemories that have already been shown recently.\r\n```Null``` if the Memory has not been shown yet.","format":"date-time","nullable":true},"readOccurrences":{"type":"integer","description":"Number of times this Memory has been shown to a Receiver.\r\n```Null``` if the Memory has not been shown yet.","format":"int32","nullable":true},"receiverID":{"type":"string","description":"ID of the Person object to whom this Memory belongs.\r\n```Null``` if the Memory is public. When updating,\r\nset it to a single dash character (```-```) to remove a\r\npreviously set association with a Person.","nullable":true},"receiverTag":{"type":"string","description":"Tag of the Person object to whom this Memory belongs.\r\n```Null``` if the Memory is public.","nullable":true},"receiverName":{"type":"string","description":"Name of the Person object to whom this Memory belongs.\r\n```Null``` if the Memory is public.","nullable":true},"media":{"type":"array","items":{"$ref":"#/components/schemas/MediumSpecs"},"description":"List of Medium objects associated with this Memory.\r\nMay be empty.","nullable":true},"title":{"type":"string","description":"Title of the Question or Story.\r\nNull if this Memory is a Default.","nullable":true},"titleVariants":{"type":"array","items":{"type":"string"},"description":"Title variants of this Question or Story.\r\nEmpty if this Memory is a Default.","nullable":true},"answers":{"type":"array","items":{"$ref":"#/components/schemas/AnswerSpecs"},"description":"List of its Answer objects.\r\nAt least one answer must be present.","nullable":true},"date":{"type":"string","description":"Approximate date associated with this Memory.\r\nWhen updating, set it to midnight Jan. 1st 1 A.D.\r\n(```01/01/01 00:00:00```) to clear any previously set\r\nDate and DateUncertaintyDays.","format":"date-time","nullable":true},"dateUncertaintyDays":{"type":"number","description":"Uncertainty in the date associated with this Memory,\r\nexpressed in days.","format":"double","nullable":true},"placeName":{"type":"string","description":"Name of the place associated with this Memory.\r\nWhen updating, set it to a single dash character\r\n(```-```) to clear any previously set Place (by name or\r\ncoordinates) and PlaceUncertaintyKm.","nullable":true},"placeLatitude":{"type":"number","description":"Latitude of the place associated with this Memory.","format":"double","nullable":true},"placeLongitude":{"type":"number","description":"Longitude of the place associated with this Memory.","format":"double","nullable":true},"placeUncertaintyKm":{"type":"number","description":"Uncertainty of the place associated with this Memory,\r\nexpressed in kilometers.","format":"double","nullable":true},"conclusive":{"type":"boolean","description":"If ```True```, when this Memory is emitted it is NOT followed by a continuation prompt,\r\nsuch as \"Is there anything else you want to know?\".","nullable":true},"notPickable":{"type":"boolean","description":"If ```True```, this Memory can't be randomly picked with a Timeout Event, or\r\nexplicitly searching for random Memory objects.\r\nIgnored for Memory of type Default.","nullable":true},"help":{"type":"boolean","description":"If ```True```, this Memory's content can be emitted if the user fails\r\nto find a question with an answer at the beginning of a session.\r\nIgnored for Memory of type Default.","nullable":true},"hints":{"type":"array","items":{"type":"string"},"description":"Hints for this Memory.","nullable":true},"minTimeout":{"type":"number","description":"Minimum idle timeout, in seconds. If not specified, by default it is set to 20 seconds. <br> The idle timeout is the time after which the client sends a Timeout event and, typically, a random question or story is picked up and proposed to the user. The actual idle timeout is computed as a random number between <code>MinTimeout</code> and <code>MaxTimeout</code> plus the reading time, where the reading time is in turn computed as the time it would take to read the answer at 150 words per minute.","format":"double","nullable":true},"maxTimeout":{"type":"number","description":"Maximum idle timeout, in seconds. If not specified, by default it is set to 40 seconds. <br> The idle timeout is the time after which the client sends a Timeout event and, typically, a random question or story is picked up and proposed to the user. The actual idle timeout is computed as a random number between <code>MinTimeout</code> and <code>MaxTimeout</code> plus the reading time, where the reading time is in turn computed as the time it would take to read the answer at 150 words per minute.","format":"double","nullable":true},"contextVarsToSet":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"List of variable-value pairs to be used to alter the context when this Memory is matched.\r\nUse the special value ```-``` (a single dash character) to clear a context variable.","nullable":true},"contextVarsToMatch":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"List of variable-value pairs to be used to match this Memory with the context. If the context\r\ncontains a variable listed here, the value must match for the Memory to match.","nullable":true},"dcmOutcomeType":{"type":"string","description":"Optional type of the outcome to be sent to the DCM platform when this Memory is emitted.","nullable":true},"dcmOutcomeCode":{"type":"string","description":"Optional code of the outcome to be sent to the DCM platform when this Memory is emitted.","nullable":true},"tags":{"type":"array","items":{"type":"string"},"description":"Tags for this Memory.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false,"description":"Specifications for an Update Person request."},"MediumSpecs":{"type":"object","properties":{"mediumID":{"type":"string","description":"Medium object ID.","nullable":true},"url":{"type":"string","description":"URL of the Medium. If specified, the Content property must be ```Null```.\r\nUse this property to link large amounts of data stored externally.\r\nIf the amount of data is modest the Content property may be used as an alternative.","nullable":true},"content":{"type":"string","description":"Content of the Medium. If specified, the URL property must be ```Null```.\r\nDon't use this property to store large amounts of data. Can be used to store limited \r\ntext for a maximum of 10 KiB. For larger amounts store the data externally and link it\r\nvia the URL property.","nullable":true},"mimeType":{"type":"string","description":"MIME type of the Medium.\r\nRequired during Add operations.","nullable":true},"title":{"type":"string","description":"Title of the Medium.","nullable":true},"properties":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"Key-value pairs for additional structured content storage.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false,"description":"Specifications of a Medium object."},"AnswerSpecs":{"type":"object","properties":{"text":{"type":"string","description":"Text of the Answer.\r\nRequired during Add operations.","nullable":true},"preformatted":{"type":"boolean","description":"If ```True```, when this Answer is emitted no reformatting is applied.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false,"description":"Specifications of an Answer object."}}}}
````

## The UpdatePersonSpecs object

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"UpdatePersonSpecs":{"type":"object","properties":{"personID":{"type":"string","description":"Person object ID.","nullable":true},"personType":{"type":"string","description":"Person type, e.g. ```Giver``` or ```Receiver```.\r\nRequired during Add operations.","nullable":true},"name":{"type":"string","description":"Person name.\r\nMay be ```Null``` only when the Person object is created by\r\nthe Dialog State Machine and the name has not been set yet.","nullable":true},"information":{"type":"string","description":"Person information.\r\nCurrently this is a free (unprocessed) text.","nullable":true},"pin":{"type":"string","description":"Person PIN. Must be a code between ```000000``` and ```999999```.\r\nMay be ```Null``` only when the Person object is created by\r\nthe Dialog State Machine and the PIN has not been set yet.\r\nRequired during Add operations.","nullable":true},"tag":{"type":"string","description":"Person tag.\r\nCan be any publicly visible string that the person recognizes as distinctive.\r\nTypically it is an emoji symbol, but could also be an RFID code or\r\nsomething else.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false,"description":"Specifications for an Update Person request."}}}}
````

## The UserChatLogsByTokenPagedSpecs object

```json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"UserChatLogsByTokenPagedSpecs":{"type":"object","properties":{"loginToken":{"type":"string","description":"The login token to identify the user","nullable":true},"memoriID":{"type":"string","description":"The Memori ID","nullable":true},"dateFrom":{"type":"string","description":"The starting date and time from which chat logs should be retrieved.\r\nThe value is expected to be a string formatted as \"yyyyMMddHHmmssfff\".","nullable":true},"dateTo":{"type":"string","description":"The ending date and time up to which chat logs should be retrieved.\r\nThe value is expected to be a string formatted as \"yyyyMMddHHmmssfff\".","nullable":true},"from":{"type":"integer","description":"Specifies the starting index from which paginated chat logs should be retrieved.","format":"int32"},"howMany":{"type":"integer","description":"Specifies the number of chat logs to retrieve in a paginated request.","format":"int32"},"minimumMessagesPerChat":{"type":"integer","description":"Specifies the minimum number of messages a chat must have to be included in the results.\r\nIf null, defaults to 3 (which means chats with less than 3 messages are excluded).","format":"int32","nullable":true}},"additionalProperties":false}}}}
```

## The UserSpecs object

```json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"UserSpecs":{"type":"object","properties":{"userID":{"type":"string","description":"User object ID.","nullable":true},"externalUserID":{"type":"string","description":"External User ID obtained during session opening.","nullable":true},"userName":{"type":"string","description":"User name.","nullable":true},"tenantName":{"type":"string","description":"Name of the Tenant the User belongs to.","nullable":true},"email":{"type":"string","description":"User e-mail address.","nullable":true},"disableDeepThought":{"type":"boolean","description":"Deep Thought disable flag for the User."},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false,"description":"Specifications of a User object."}}}}
```

## The UtteranceSpecs object

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"UtteranceSpecs":{"type":"object","properties":{"utteranceID":{"type":"string","description":"Utterance object ID.","nullable":true},"text":{"type":"string","description":"Accepted Utterance object for its corresponding intent, i.e. the\r\ntext sentence that can be used to express the intent.\r\nAn Utterance may include variable parts in the sentence by the use of\r\none or more slots. Slots are specified using the syntax ```{slot}```,\r\nwhere \"slot\" is the slot name. If present, their value is part of the\r\n```IntentWebHookRequest``` passed to the web hook. Each slot\r\ncan be present only once in the sentence, and must have been previously\r\ndefined with a Intent Slot object.\r\nA special slot is the ```{date}``` slot, which represents a\r\nperiod of time such as \"today\", \"yesterday\", \"last week\", \"next month\" etc.\r\nIts values is passed in the ```IntentWebHookRequest``` as the\r\n```BeginUTC``` and ```EndUTC``` properties.\r\nRequired during Add operations.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false,"description":"Specifications of an Utterance object."}}}}
````

## The WebHookLocationSpecs object

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"WebHookLocationSpecs":{"type":"object","properties":{"placeName":{"type":"string","description":"Name of the place. May be ```Null``` if the place has\r\nbeen specified only by coordinates and uncertainty.","nullable":true},"latitude":{"type":"number","description":"Latitude of the place.\r\nRequired.","format":"double"},"longitude":{"type":"number","description":"Longitude of the place.\r\nRequired.","format":"double"},"uncertaintyKm":{"type":"number","description":"Uncertainty of the place, expressed in kilometers.\r\nRequired.","format":"double"}},"additionalProperties":false,"description":"Specifications of a Web Hook Location object."}}}}
````

## The WebHookMediumSpecs object

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"WebHookMediumSpecs":{"type":"object","properties":{"mediumID":{"type":"string","description":"Medium object ID.\r\nRequired.","nullable":true},"title":{"type":"string","description":"Title of the Medium.","nullable":true},"url":{"type":"string","description":"URL of the Medium. If specified, the Content property must be ```Null```.\r\nUse this property to link large amounts of data stored externally.\r\nIf the amount of data is modest the Content property may be used as an alternative.","nullable":true},"content":{"type":"string","description":"Content of the Medium. If specified, the URL property must be ```Null```.\r\nDon't use this property to store large amounts of data. Can be used to store limited \r\ntext for a maximum of 10 KiB. For larger amounts store the data externally and link it\r\nvia the URL property.","nullable":true},"mimeType":{"type":"string","description":"MIME type of the Medium.\r\nRequired.","nullable":true},"properties":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"Key-value pairs for additional structured content storage.","nullable":true}},"additionalProperties":false,"description":"Specifications of a Web Hook Medium object."}}}}
````

## The WebHookTransitionSpecs object

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"WebHookTransitionSpecs":{"type":"object","properties":{"enteredText":{"type":"string","description":"Text value of the TextEntered event that triggered the transition.\r\nMay be ```Null``` if the transition was triggered by a Timeout event.","nullable":true},"enteredMedia":{"type":"array","items":{"$ref":"#/components/schemas/WebHookMediumSpecs"},"description":"List of Medium objects attached to the TextEntered event.\r\nMay be ```Null``` if the transition was triggered by a Timeout event.","nullable":true},"emission":{"type":"string","description":"Text of the emission resulting from the transition.\r\nMay be ```Null``` if the transition event was ignored.","nullable":true},"emittedMedia":{"type":"array","items":{"$ref":"#/components/schemas/WebHookMediumSpecs"},"description":"List of Medium objects emitted with the transition together with the Emission text.","nullable":true}},"additionalProperties":false,"description":"Specifications of a Web Hook Transition object."},"WebHookMediumSpecs":{"type":"object","properties":{"mediumID":{"type":"string","description":"Medium object ID.\r\nRequired.","nullable":true},"title":{"type":"string","description":"Title of the Medium.","nullable":true},"url":{"type":"string","description":"URL of the Medium. If specified, the Content property must be ```Null```.\r\nUse this property to link large amounts of data stored externally.\r\nIf the amount of data is modest the Content property may be used as an alternative.","nullable":true},"content":{"type":"string","description":"Content of the Medium. If specified, the URL property must be ```Null```.\r\nDon't use this property to store large amounts of data. Can be used to store limited \r\ntext for a maximum of 10 KiB. For larger amounts store the data externally and link it\r\nvia the URL property.","nullable":true},"mimeType":{"type":"string","description":"MIME type of the Medium.\r\nRequired.","nullable":true},"properties":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"Key-value pairs for additional structured content storage.","nullable":true}},"additionalProperties":false,"description":"Specifications of a Web Hook Medium object."}}}}
````

## The WordVectorResponse object

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"components":{"schemas":{"WordVectorResponse":{"type":"object","properties":{"vector":{"type":"array","items":{"type":"number","format":"float"},"description":"Word vector.","nullable":true},"requestID":{"type":"integer","description":"Progressive number of the request (since the Server started).\r\nUse this number, together with the RequestDateTime property,\r\nto report an anomalous response.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous response.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is equivalent to the HTTP\r\nstatus code.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response of a Get Word Vector request."}}}}
````
