# Dialog

## POST /memori/v2/TextEnteredEvent/{strSessionID}

> Submits a Text Entered event to the session's Dialog State Machine.

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"paths":{"/memori/v2/TextEnteredEvent/{strSessionID}":{"post":{"tags":["Dialog"],"summary":"Submits a Text Entered event to the session's Dialog State Machine.","operationId":"Dialog-EnterText","parameters":[{"name":"strSessionID","in":"path","description":"The session ID","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"The Text Entered event specifications","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnterTextSpecs"}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StateChangedResponse"}}}}}}}},"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."},"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}}}}
````

## POST /memori/v2/DateChangedEvent/{strSessionID}

> Submits a Date Changed event to the session's Dialog State Machine.

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"paths":{"/memori/v2/DateChangedEvent/{strSessionID}":{"post":{"tags":["Dialog"],"summary":"Submits a Date Changed event to the session's Dialog State Machine.","operationId":"Dialog-ChangeDate","parameters":[{"name":"strSessionID","in":"path","description":"The session ID","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"The Date Changed event specifications","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChangeDateSpecs"}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StateChangedResponse"}}}}}}}},"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."},"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}}}}
````

## POST /memori/v2/PlaceChangedEvent/{strSessionID}

> Submits a Place Changed event to the session's Dialog State Machine.

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"paths":{"/memori/v2/PlaceChangedEvent/{strSessionID}":{"post":{"tags":["Dialog"],"summary":"Submits a Place Changed event to the session's Dialog State Machine.","operationId":"Dialog-ChangePlace","parameters":[{"name":"strSessionID","in":"path","description":"The session ID","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"The Place Changed event specifications","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChangePlaceSpecs"}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StateChangedResponse"}}}}}}}},"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."},"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}}}}
````

## POST /memori/v2/TagChangedEvent/{strSessionID}

> Submits a Tag Changed event to the session's Dialog State Machine.

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"paths":{"/memori/v2/TagChangedEvent/{strSessionID}":{"post":{"tags":["Dialog"],"summary":"Submits a Tag Changed event to the session's Dialog State Machine.","operationId":"Dialog-ChangeTag","parameters":[{"name":"strSessionID","in":"path","description":"The session ID","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"The Tag Changed event specifications","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChangeTagSpecs"}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StateChangedResponse"}}}}}}}},"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."},"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}}}}
````

## POST /memori/v2/TimeoutEvent/{strSessionID}

> Submits a Timeout event to the session's Dialog State Machine.

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"paths":{"/memori/v2/TimeoutEvent/{strSessionID}":{"post":{"tags":["Dialog"],"summary":"Submits a Timeout event to the session's Dialog State Machine.","operationId":"Dialog-Timeout","parameters":[{"name":"strSessionID","in":"path","description":"The session ID","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StateChangedResponse"}}}}}}}},"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}}}}
````

## POST /memori/v2/MediumSelectedEvent/{strSessionID}

> Submits a Medium Selected event to the session's Dialog State Machine.

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"paths":{"/memori/v2/MediumSelectedEvent/{strSessionID}":{"post":{"tags":["Dialog"],"summary":"Submits a Medium Selected event to the session's Dialog State Machine.","operationId":"Dialog-SelectMedium","parameters":[{"name":"strSessionID","in":"path","description":"The session ID","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"The Medium Selected event specifications","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SelectMediumSpecs"}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StateChangedResponse"}}}}}}}},"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."},"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."},"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}}}}
````

## POST /memori/v2/MediumDeselectedEvent/{strSessionID}

> Submits a Medium Deselected event to the session's Dialog State Machine.

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"paths":{"/memori/v2/MediumDeselectedEvent/{strSessionID}":{"post":{"tags":["Dialog"],"summary":"Submits a Medium Deselected event to the session's Dialog State Machine.","operationId":"Dialog-DeselectMedium","parameters":[{"name":"strSessionID","in":"path","description":"The session ID","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"The Medium Deselected event specifications","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeselectMediumSpecs"}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StateChangedResponse"}}}}}}}},"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)."},"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}}}}
````

## POST /memori/v2/DateSelectedEvent/{strSessionID}

> Submits a Date Selected event to the session's Dialog State Machine.

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"paths":{"/memori/v2/DateSelectedEvent/{strSessionID}":{"post":{"tags":["Dialog"],"summary":"Submits a Date Selected event to the session's Dialog State Machine.","operationId":"Dialog-SelectDate","parameters":[{"name":"strSessionID","in":"path","description":"The session ID","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"The Date Selected event specifications","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SelectDateSpecs"}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StateChangedResponse"}}}}}}}},"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."},"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}}}}
````

## POST /memori/v2/PlaceSelectedEvent/{strSessionID}

> Submits a Place Selected event to the session's Dialog State Machine.

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"paths":{"/memori/v2/PlaceSelectedEvent/{strSessionID}":{"post":{"tags":["Dialog"],"summary":"Submits a Place Selected event to the session's Dialog State Machine.","operationId":"Dialog-SelectPlace","parameters":[{"name":"strSessionID","in":"path","description":"The session ID","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"The Place Selected event specifications","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SelectPlaceSpecs"}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StateChangedResponse"}}}}}}}},"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."},"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}}}}
````

## POST /memori/v2/TagSelectedEvent/{strSessionID}

> Submits a Tag Selected event to the session's Dialog State Machine.

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"paths":{"/memori/v2/TagSelectedEvent/{strSessionID}":{"post":{"tags":["Dialog"],"summary":"Submits a Tag Selected event to the session's Dialog State Machine.","operationId":"Dialog-SelectTag","parameters":[{"name":"strSessionID","in":"path","description":"The session ID","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"The Tag Selected event specifications","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SelectTagSpecs"}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StateChangedResponse"}}}}}}}},"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."},"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}}}}
````


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.aisuru.com/api/engine/dialog.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
