# Models

## The AcceptInvitationResponse object

````json
{"openapi":"3.0.1","info":{"title":"Memori.ai Web API V2","version":"v2"},"components":{"schemas":{"AcceptInvitationResponse":{"type":"object","properties":{"invitation":{"$ref":"#/components/schemas/InvitationSpecs"},"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 reponse.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous reponse.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is indicative of the actual\r\nerror.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response of an Accept Invitation request."},"InvitationSpecs":{"type":"object","properties":{"invitationID":{"type":"string","description":"ID of this Invitation object. Unique and assigned by the system.\r\nReturned during Send and Get operations.\r\nIgnored in other cases.","nullable":true},"memoriID":{"type":"string","description":"ID of the Memori object this Invitation refers to.\r\nRequired during Send operations. Returned during\r\nGet operations. Ignored in other cases.","nullable":true},"engineMemoriID":{"type":"string","description":"ID of the Memori object on the Memori Engine.\r\nReturned during Get operations. Ignored in other cases.","nullable":true},"isInviter":{"type":"boolean","description":"True if the requesting User sent this Invitation, and as\r\nsuch has admin (update and delete) access to this Invitation.\r\nReturned during Get operations. Ignored in other cases."},"isInvitee":{"type":"boolean","description":"True if the requesting User received this Invitation, and as\r\nsuch has accept/reject access to this Invitation.\r\nReturned during Get operations. Ignored in other cases."},"text":{"type":"string","description":"Text of this Invitation. Optional during Send operations.\r\nUsed in Update operations. Returned during Get operations.\r\nIgnored in other cases.","nullable":true},"destinationName":{"type":"string","description":"Name of the person to whom this Invitation is addressed.\r\nRequired during Send operations. Returned during Get operations.\r\nIgnored in other cases.","nullable":true},"destinationEMail":{"type":"string","description":"E-mail address to which this Invitation is addressed.\r\nRequired during Send operations. Returned during Get operations.\r\nIgnored in other cases.","nullable":true},"dontSendInvitationEmail":{"type":"boolean","description":"Flag to avoid sending the Invitation e-mail.\r\nOptional during Send operations.\r\nIgnored in other cases.","nullable":true},"tag":{"type":"string","description":"Tag associated with this Invitation. Typically an emoji symbol.\r\nRequired during Send operations. Returned during Get operations,\r\nbut visible to invitee only if the invitation has been accepted.\r\nIgnored in other cases.","nullable":true},"pin":{"type":"string","description":"PIN, or personal identification number, associated with this Invitation. Required during Send operations. Returned during Get operations, but visible to invitee only if the invitation has been accepted. Ignored in other cases. <br> Format is six digits integer number, eg. <code>012345</code>.","nullable":true},"type":{"type":"string","description":"Type of this Invitation (giver, receiver etc.). Required during Send operations. Returned during Get operations. Ignored in other cases. <br> May be one of the following:<ul> <li><code>GIVER</code>: the Giver is the unique owner, administrator and content manager of a Memori</li> <li><code>RECEIVER</code>: a Receiver is a named User that can access all the public content of a Memori, plus some specific content targeted specifically at them</li> </ul>","nullable":true},"state":{"type":"string","description":"State of this Invitation (pending, accepted, rejected etc.). Returned during Get operations. Ignored in other cases. <br> May be one of the following:<ul> <li><code>PENDING</code>: the Invitation has just been sent and no action has been perfomed yet</li> <li><code>ACCEPTED</code>: the destination of this Invitation has accepted it</li> <li><code>REJECTED</code>: the destination of this Invitation has rejected it</li> </ul>","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true}},"additionalProperties":false,"description":"Specifications of an Invitation object."}}}}
````

## The ActionLogSpecs object

```json
{"openapi":"3.0.1","info":{"title":"Memori.ai Web API V2","version":"v2"},"components":{"schemas":{"ActionLogSpecs":{"type":"object","properties":{"actionLogID":{"type":"string","description":"ID of the Action Log object.\r\nUnique and assigned by the system.","nullable":true},"timestamp":{"type":"string","description":"Timestamp UTC of the Action Log.","format":"date-time"},"type":{"type":"string","description":"Type of Action Log. <br> May be one of the following:<ul> <li><code>UserCreated</code></li> <li><code>UserUpdated</code></li> <li><code>UserDeleted</code> (obsolete)</li> <li><code>UserLoggedIn</code></li> <li><code>UserLoggedOut</code></li> <li><code>MemoriCreated</code></li> <li><code>MemoriUpdated</code></li> <li><code>MemoriDeleted</code> (obsolete)</li> <li><code>MemoriOpen</code> (obsolete)</li> <li><code>MemoriClosed</code> (obsolete)</li> <li><code>IntegrationCreated</code></li> <li><code>IntegrationUpdated</code></li> <li><code>IntegrationDeleted</code> (obsolete)</li> <li><code>InvitationSent</code></li> <li><code>InvitationUpdated</code></li> <li><code>InvitationAccepted</code></li> <li><code>InvitationRejected</code></li> <li><code>AssetUploaded</code></li> <li><code>AssetUpdated</code></li> <li><code>Talk</code> (obsolete)</li> </ul>","nullable":true},"userID":{"type":"string","description":"ID of the associated User object.","nullable":true},"loginToken":{"type":"string","description":"Login token of the session where the Action\r\nhes been perfomred.","nullable":true},"memoriID":{"type":"string","description":"ID of the associated Memori object.","nullable":true},"integrationID":{"type":"string","description":"ID of the associated Integration object.","nullable":true},"invitationID":{"type":"string","description":"ID of the associated Invitation object.","nullable":true},"assetURL":{"type":"string","description":"URL of the associated Asset object.","nullable":true},"userAgent":{"type":"string","description":"User agent of the original HTTP request that performed the action.","nullable":true},"ipAddress":{"type":"string","description":"IP address of the remote host that performed the action.","nullable":true}},"additionalProperties":false,"description":"Specifications of an Action Log object."}}}}
```

## The AddCompletionConfigResponse object

````json
{"openapi":"3.0.1","info":{"title":"Memori.ai Web API V2","version":"v2"},"components":{"schemas":{"AddCompletionConfigResponse":{"type":"object","properties":{"completionConfigChangeResults":{"type":"array","items":{"$ref":"#/components/schemas/CompletionConfigChangeResult"},"nullable":true},"config":{"$ref":"#/components/schemas/CompletionConfigSpecs"},"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 reponse.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous reponse.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is indicative of the actual\r\nerror.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false},"CompletionConfigChangeResult":{"type":"object","properties":{"memoriId":{"type":"string","nullable":true},"memoriName":{"type":"string","nullable":true},"applied":{"type":"boolean"},"errorMessage":{"type":"string","nullable":true}},"additionalProperties":false},"CompletionConfigSpecs":{"type":"object","properties":{"completionConfigID":{"type":"string","description":"Completion Config object ID.\r\nReturned during Get operations.\r\nIgnored in other cases.","nullable":true},"configName":{"type":"string","description":"Completion Config unique name.\r\nRequired during Creation operations.\r\nUsed during Update operations.\r\nReturned during Get operations.","nullable":true},"description":{"type":"string","description":"Optional Completion Config description.\r\nUsed during Creation operations and Update.\r\nReturned during Get operations.","nullable":true},"provider":{"type":"string","description":"Name of the Completion Provider. Required during Creation operations. Used during Update operations. Returned during Get operations. <br> Currently possible values are:<ul> <li><code>OpenAI</code></li> <li><code>Anthropic</code></li> <li><code>Mistral</code></li> <li><code>Azure_OpenAI</code></li> <li><code>Custom_OpenAI</code></li> </ul>","nullable":true},"endPoint":{"type":"string","description":"URL of the Completion Provider API end-point.\r\nUsed during Creation operations and Update.\r\nReturned during Get operations.","nullable":true},"apiKey":{"type":"string","description":"API key of the Completion Provider API end-point.\r\nRequired during Creation operations (optional for Custom_OpenAI provider).\r\nUsed during Update operations.\r\nReturned during Get operations as an obfuscated value.","nullable":true},"model":{"type":"string","description":"Name of the Completion Model. This is provider-specific,\r\nand for some providers (e.g. Azure) it is also part of\r\nthe end-point URL.\r\nRequired during Creation operations.\r\nUsed during Update operations.\r\nReturned during Get operations.","nullable":true},"questionAnsweringEnabled":{"type":"boolean","description":"If True this configuration can be used for Question & Answer operations.\r\nIf not specified False is assumed. At least one use must be enabled.\r\nUsed during Creation operations and Update operations.\r\nReturned during Get operations.","nullable":true},"importExportEnabled":{"type":"boolean","description":"If True this configuration can be used for Import/Export operations. \r\nIf not specified False is assumed. At least one use must be enabled.\r\nUsed during Creation operations and Update operations.\r\nReturned during Get operations.","nullable":true},"deepThoughtEnabled":{"type":"boolean","description":"If True this configuration can be used for Deep Thought operations. \r\nIf not specified False is assumed. At least one use must be enabled.\r\nUsed during Creation operations and Update operations.\r\nReturned during Get operations.","nullable":true},"ownerUserID":{"type":"string","description":"ID of the User this Config belongs to.\r\nReturned during Get operations if the user is the owner or an administrator.\r\nIgnored in other cases.","nullable":true},"ownerUserName":{"type":"string","description":"Name of the User this Config belongs to.\r\nReturned during Get operations.\r\nIgnored in other cases.","nullable":true},"ownerTenantName":{"type":"string","description":"Name of the Tenant of the User this Config belongs to.\r\nReturned during Get operations.\r\nIgnored in other cases.","nullable":true},"visibleToTenantUsers":{"type":"boolean","description":"If True this configuration can be used by other users of the owner's Tenant.\r\nIf not specified False is assumed.\r\nUsed during Creation operations and Update operations.\r\nReturned during Get operations.","nullable":true},"visibleToOtherUsers":{"type":"boolean","description":"If True this configuration can be used by users of other Tenants.\r\nIf not specified False is assumed.\r\nUsed during Creation operations and Update operations.\r\nReturned during Get operations.","nullable":true},"useAsDefault":{"type":"boolean","description":"If True this configuration is used as the default (for the operations it is enabled for)\r\nwhen a new Memori is created. The use as default requires that the configuration is visible\r\nat least to the owner's Tenant users.\r\nUsed during Creation operations and Update operations.\r\nReturned during Get operations.","nullable":true},"chargeable":{"type":"boolean","description":"If True the use of this configuration is chargeable to the customer.","nullable":true},"applyTo":{"type":"string","description":"During Creation and Update operations, when set forces this configuration to be applied to the specified Memori objects and purposes. Ignored during Get operations. <br> Can be one of the following:<ul> <li><code>ONLY_USER_MEMORI_ON_DEFAULT_ONLY_QA_PURPOSE</code>: the configuration is applied to user's Memori objects with the default configuration, for Question &amp; Answer purpose only.</li> <li><code>ONLY_USER_MEMORI_ON_DEFAULT_ONLY_IE_PURPOSE</code>: the configuration is applied to user's Memori objects with the default configuration, for Import/Export purpose only.</li> <li><code>ONLY_USER_MEMORI_ON_DEFAULT_ONLY_DT_PURPOSE</code>: the configuration is applied to user's Memori objects with the default configuration, for Deep Thought purpose only.</li> <li><code>ONLY_USER_MEMORI_ON_DEFAULT_ALL_ENABLED_PURPOSES</code>: the configuration is applied to user's Memori objects with the default configuration, for all enabled purposes.</li> <li><code>ALL_USER_MEMORI_ONLY_QA_PURPOSE</code>: the configuration is applied to all user's Memori objects, for Question &amp; Answer purpose only.</li> <li><code>ALL_USER_MEMORI_ONLY_IE_PURPOSE</code>: the configuration is applied to all user's Memori objects, for Import/Export purpose only.</li> <li><code>ALL_USER_MEMORI_ONLY_DT_PURPOSE</code>: the configuration is applied to all user's Memori objects, for Deep Thought purpose only.</li> <li><code>ALL_USER_MEMORI_ALL_ENABLED_PURPOSES</code>: the configuration is applied to all user's Memori objects, for all enabled purposes.</li> <li><code>ONLY_TENANT_MEMORI_ON_DEFAULT_ONLY_QA_PURPOSE</code>: the configuration is applied to the Tenant's Memori objects with the default configuration, for Question &amp; Answer purpose only.</li> <li><code>ONLY_TENANT_MEMORI_ON_DEFAULT_ONLY_IE_PURPOSE</code>: the configuration is applied to the Tenant's Memori objects with the default configuration, for Import/Export purpose only.</li> <li><code>ONLY_TENANT_MEMORI_ON_DEFAULT_ONLY_DT_PURPOSE</code>: the configuration is applied to the Tenant's Memori objects with the default configuration, for Deep Thought purpose only.</li> <li><code>ONLY_TENANT_MEMORI_ON_DEFAULT_ALL_ENABLED_PURPOSES</code>: the configuration is applied to the Tenant's Memori objects with the default configuration, for all enabled purposes.</li> <li><code>ALL_TENANT_MEMORI_ONLY_QA_PURPOSE</code>: the configuration is applied to all the Tenant's Memori objects, for Question &amp; Answer purpose only.</li> <li><code>ALL_TENANT_MEMORI_ONLY_IE_PURPOSE</code>: the configuration is applied to all the Tenant's Memori objects, for Import/Export purpose only.</li> <li><code>ALL_TENANT_MEMORI_ONLY_DT_PURPOSE</code>: the configuration is applied to all the Tenant's Memori objects, for Deep Thought purpose only.</li> <li><code>ALL_TENANT_MEMORI_ALL_ENABLED_PURPOSES</code>: the configuration is applied to all the Tenant's Memori objects, for all enabled purposes.</li> </ul>","nullable":true}},"additionalProperties":false,"description":"Specifications of a Completion Config object."}}}}
````

## The AnalysisStatusSpecs object

````json
{"openapi":"3.0.1","info":{"title":"Memori.ai Web API V2","version":"v2"},"components":{"schemas":{"AnalysisStatusSpecs":{"type":"object","properties":{"analysisType":{"type":"string","description":"Analysis type. Required. <br> Can be one of the following:<ul> <li><code>UserQuery</code>: for Deep Thought User/query Match analysis</li> </ul>","nullable":true},"query":{"type":"string","description":"Query to be used in the analysis.\r\nUsed when AnalysisType is ```UserQuery```.","nullable":true},"analysisWarningsCount":{"type":"integer","description":"Number of Import Warning objects","format":"int32"},"analysisWarnings":{"type":"array","items":{"$ref":"#/components/schemas/AnalysisWarning"},"description":"List of Import Warning objects.\r\nMay be empty.","nullable":true},"processID":{"type":"string","description":"Process ID.","nullable":true},"memoriID":{"type":"string","description":"ID of the Memori object this Process refers to.","nullable":true},"processUserName":{"type":"string","description":"Name of the user that started the Process.","nullable":true},"processType":{"type":"string","description":"Process type. <br> Can be one of the following:<ul> <li><code>Import</code>: for file import processes</li> <li><code>Analysis</code>: for Deep Thought user/query analysis processes</li> </ul>","nullable":true},"status":{"type":"string","description":"Current status of the Process (starting, running etc.). <br> May be one of the following:<ul> <li><code>Starting</code>: the Process is preparing to start, but has not started yet. Will advance to <code>Running</code> automatically.</li> <li><code>Running</code>: the Process has been started and is actively processing elements.</li> <li><code>Stopped</code>: the Process has been stopped manually, not all elements may have been processed.</li> <li><code>Completed</code>: the Process finished successfully, all the elements have been processed.</li> <li><code>Failed</code>: the Process terminated due to an unexpected error, not all elements may have been processed.</li> </ul>","nullable":true},"error":{"type":"string","description":"If the Status is ```Failed```, reports the error that\r\ncaused the Process to fail.\r\nNull otherwise.","nullable":true},"totalElements":{"type":"integer","description":"Total elements this Process is processing.","format":"int32"},"processedElements":{"type":"integer","description":"Number of elements this Process has processed so far.","format":"int32"},"progress":{"type":"number","description":"Progress of the Process as a fraction of 1.","format":"float"},"processSpecsJSON":{"type":"string","description":"Original parameters of the Process request, as a JSON structure,\r\nexcluding the elements (e.g. document rows for an Import process).","nullable":true},"begin":{"type":"string","description":"Timestamp of start of the Process.\r\nNull until the Process is in ```Starting``` status.","format":"date-time","nullable":true},"end":{"type":"string","description":"Timestamp of end of the Process.\r\nNull until the Process is in ```Starting``` or\r\n```Running``` status.","format":"date-time","nullable":true},"eta":{"type":"number","description":"Estimated time required to complete the Process,\r\nin seconds.","format":"float","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true}},"additionalProperties":false},"AnalysisWarning":{"type":"object","properties":{"warningType":{"type":"string","description":"Type of warning. <br> <ul>Currently supported types are: <li><code>Error</code>: an error occurred while performing analysis</li> </ul>","nullable":true},"text":{"type":"string","description":"When ```WarningType``` is ```Error``` reports the\r\ntext of the error.","nullable":true}},"additionalProperties":false,"description":"Description of a possible problem during an Analysis operation."}}}}
````

## The AnalysisStatusSpecsProcessStatusResponse object

````json
{"openapi":"3.0.1","info":{"title":"Memori.ai Web API V2","version":"v2"},"components":{"schemas":{"AnalysisStatusSpecsProcessStatusResponse":{"type":"object","properties":{"status":{"$ref":"#/components/schemas/AnalysisStatusSpecs"},"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 reponse.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous reponse.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is indicative of the actual\r\nerror.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response of an Import, Analysis or Get Process Status requests."},"AnalysisStatusSpecs":{"type":"object","properties":{"analysisType":{"type":"string","description":"Analysis type. Required. <br> Can be one of the following:<ul> <li><code>UserQuery</code>: for Deep Thought User/query Match analysis</li> </ul>","nullable":true},"query":{"type":"string","description":"Query to be used in the analysis.\r\nUsed when AnalysisType is ```UserQuery```.","nullable":true},"analysisWarningsCount":{"type":"integer","description":"Number of Import Warning objects","format":"int32"},"analysisWarnings":{"type":"array","items":{"$ref":"#/components/schemas/AnalysisWarning"},"description":"List of Import Warning objects.\r\nMay be empty.","nullable":true},"processID":{"type":"string","description":"Process ID.","nullable":true},"memoriID":{"type":"string","description":"ID of the Memori object this Process refers to.","nullable":true},"processUserName":{"type":"string","description":"Name of the user that started the Process.","nullable":true},"processType":{"type":"string","description":"Process type. <br> Can be one of the following:<ul> <li><code>Import</code>: for file import processes</li> <li><code>Analysis</code>: for Deep Thought user/query analysis processes</li> </ul>","nullable":true},"status":{"type":"string","description":"Current status of the Process (starting, running etc.). <br> May be one of the following:<ul> <li><code>Starting</code>: the Process is preparing to start, but has not started yet. Will advance to <code>Running</code> automatically.</li> <li><code>Running</code>: the Process has been started and is actively processing elements.</li> <li><code>Stopped</code>: the Process has been stopped manually, not all elements may have been processed.</li> <li><code>Completed</code>: the Process finished successfully, all the elements have been processed.</li> <li><code>Failed</code>: the Process terminated due to an unexpected error, not all elements may have been processed.</li> </ul>","nullable":true},"error":{"type":"string","description":"If the Status is ```Failed```, reports the error that\r\ncaused the Process to fail.\r\nNull otherwise.","nullable":true},"totalElements":{"type":"integer","description":"Total elements this Process is processing.","format":"int32"},"processedElements":{"type":"integer","description":"Number of elements this Process has processed so far.","format":"int32"},"progress":{"type":"number","description":"Progress of the Process as a fraction of 1.","format":"float"},"processSpecsJSON":{"type":"string","description":"Original parameters of the Process request, as a JSON structure,\r\nexcluding the elements (e.g. document rows for an Import process).","nullable":true},"begin":{"type":"string","description":"Timestamp of start of the Process.\r\nNull until the Process is in ```Starting``` status.","format":"date-time","nullable":true},"end":{"type":"string","description":"Timestamp of end of the Process.\r\nNull until the Process is in ```Starting``` or\r\n```Running``` status.","format":"date-time","nullable":true},"eta":{"type":"number","description":"Estimated time required to complete the Process,\r\nin seconds.","format":"float","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true}},"additionalProperties":false},"AnalysisWarning":{"type":"object","properties":{"warningType":{"type":"string","description":"Type of warning. <br> <ul>Currently supported types are: <li><code>Error</code>: an error occurred while performing analysis</li> </ul>","nullable":true},"text":{"type":"string","description":"When ```WarningType``` is ```Error``` reports the\r\ntext of the error.","nullable":true}},"additionalProperties":false,"description":"Description of a possible problem during an Analysis operation."}}}}
````

## The AnalysisWarning object

````json
{"openapi":"3.0.1","info":{"title":"Memori.ai Web API V2","version":"v2"},"components":{"schemas":{"AnalysisWarning":{"type":"object","properties":{"warningType":{"type":"string","description":"Type of warning. <br> <ul>Currently supported types are: <li><code>Error</code>: an error occurred while performing analysis</li> </ul>","nullable":true},"text":{"type":"string","description":"When ```WarningType``` is ```Error``` reports the\r\ntext of the error.","nullable":true}},"additionalProperties":false,"description":"Description of a possible problem during an Analysis operation."}}}}
````

## The AssetSpecs object

```json
{"openapi":"3.0.1","info":{"title":"Memori.ai Web API V2","version":"v2"},"components":{"schemas":{"AssetSpecs":{"type":"object","properties":{"assetID":{"type":"string","description":"Asset ID. Unique and assigned by the system.\r\nReturned during Upload operations.\r\nIgnored in other cases.","nullable":true},"assetURL":{"type":"string","description":"Public URL of the Asset file. Unique and assigned by the system.\r\nReturned during Upload operations.\r\nIgnored in other cases.","nullable":true},"mimeType":{"type":"string","description":"Extrapolated MIME type.\r\nReturned during Upload operations.\r\nIgnored in other cases.","nullable":true},"originalFileName":{"type":"string","description":"Original name of the uploaded file, without the extension.\r\nReturned during Upload operations.\r\nUsed during Update operations.","nullable":true},"memoriID":{"type":"string","description":"Optional ID of the Memori object this Asset belongs to.\r\nMay be empty for assets not belonging to a Memori object.\r\nReturned during Upload operations.\r\nIgnored in other cases.","nullable":true},"remoteSessionCheck":{"type":"boolean","description":"Optional flag to protect resource downloads with remote session control.\r\nReturned during Upload operations.\r\nUsed during Update operations.","nullable":true},"engineMemoryID":{"type":"string","description":"Optional ID of the Memory object on the Memori Engine.\r\nMay be empty for public assets. \r\nReturned during Upload operations.\r\nUsed during Update operations. To clear this property during an\r\nUpdate operation set it to a single dash character (\"-\").","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true}},"additionalProperties":false,"description":"Specifications of an Asset object."}}}}
```

## The BadgeAssignment object

```json
{"openapi":"3.0.1","info":{"title":"Memori.ai Web API V2","version":"v2"},"components":{"schemas":{"BadgeAssignment":{"required":["badgeUrl","outcome","refId"],"type":"object","properties":{"refId":{"minLength":1,"type":"string"},"outcome":{"minLength":1,"type":"string"},"badgeUrl":{"minLength":1,"type":"string"}},"additionalProperties":false}}}}
```

## The BadgeSpecs object

```json
{"openapi":"3.0.1","info":{"title":"Memori.ai Web API V2","version":"v2"},"components":{"schemas":{"BadgeSpecs":{"type":"object","properties":{"badgeID":{"type":"string","description":"Badge ID. Unique and assigned by the system.","nullable":true},"date":{"type":"string","description":"Date of assignment.","format":"date-time"},"name":{"type":"string","description":"Badge name.","nullable":true},"description":{"type":"string","description":"Badge description.","nullable":true},"imageURL":{"type":"string","description":"URL of the badge image.","nullable":true},"tags":{"type":"array","items":{"type":"string"},"description":"List of badge tags.","nullable":true},"issuerName":{"type":"string","description":"Name of the badge issuer.","nullable":true},"issuerDescription":{"type":"string","description":"Description of the badge issuer","nullable":true},"issuerEmail":{"type":"string","description":"E-mail of the badge issuer (if available).","nullable":true},"issuerURL":{"type":"string","description":"URL of the badge issuer (if available).","nullable":true}},"additionalProperties":false}}}}
```

## The CSVSpecs object

```json
{"openapi":"3.0.1","info":{"title":"Memori.ai Web API V2","version":"v2"},"components":{"schemas":{"CSVSpecs":{"type":"object","properties":{"newLine":{"type":"string","description":"New line characters to be used for CSV records.<br /> Required in Export operations.<br /> Not used in Import operations. <br> Must be one of:<ul> <li><code>\\r\\n</code>: CR-LF pair (Windows new lines)</li> <li><code>\\n</code>: LF only (Unix/macOS new lines)</li> </ul>","nullable":true},"hasHeaders":{"type":"boolean","description":"Specifies if the first row of the CSV contains the column names.<br />\r\nIn Import operations: if False column names must be specified\r\nin the HeaderNames property, if True HeaderNames is ignored.<br />\r\nIn Export operations: if True header names are generated in the\r\nfirst row, if False the first row contains the first data row."},"headerNames":{"type":"array","items":{"type":"string"},"description":"Optional column names of the CSV rows.<br />\r\nUsed only in Import operations: if not specified the\r\nHasHeaders property must be set to True, and the first row of the\r\nCSV file is assumed to contain the column names.","nullable":true},"questionColumnName":{"type":"string","description":"Name of the column with the question text.<br />\r\nUsed in both Import and Export operations.","nullable":true},"answerColumnName":{"type":"string","description":"Name of the column with the answer text.<br />\r\nUsed in both Import and Export operations.","nullable":true},"contextVarsToMatchColumnName":{"type":"string","description":"Optional name of the column with the context variables to match.<br />\r\nUsed in both Import and Export operations.","nullable":true},"contextVarsToSetColumnName":{"type":"string","description":"Optional name of the column with the context variables to set.<br />\r\nUsed in both Import and Export operations.","nullable":true},"memoryTagsColumnName":{"type":"string","description":"Optional name of the column with the memory tags.<br />\r\nUsed in both Import and Export operations.","nullable":true},"csvSeparator":{"type":"string","description":"Column separator in CSV rows.<br />\r\nUsed in both Import and Export operations.","nullable":true},"questionTitleVariantsSeparator":{"type":"string","description":"Optional question text and memory tags separator. Must be specified if\r\nthe question column contains multiple text variants, or if memory tags are being exported<br />\r\nUsed in both Import and Export operations.","nullable":true}},"additionalProperties":false,"description":"Specifications for requests involving import/export of CSV contents."}}}}
```

## The CompletionConfigChangeResult object

```json
{"openapi":"3.0.1","info":{"title":"Memori.ai Web API V2","version":"v2"},"components":{"schemas":{"CompletionConfigChangeResult":{"type":"object","properties":{"memoriId":{"type":"string","nullable":true},"memoriName":{"type":"string","nullable":true},"applied":{"type":"boolean"},"errorMessage":{"type":"string","nullable":true}},"additionalProperties":false}}}}
```

## The CompletionConfigSpecs object

```json
{"openapi":"3.0.1","info":{"title":"Memori.ai Web API V2","version":"v2"},"components":{"schemas":{"CompletionConfigSpecs":{"type":"object","properties":{"completionConfigID":{"type":"string","description":"Completion Config object ID.\r\nReturned during Get operations.\r\nIgnored in other cases.","nullable":true},"configName":{"type":"string","description":"Completion Config unique name.\r\nRequired during Creation operations.\r\nUsed during Update operations.\r\nReturned during Get operations.","nullable":true},"description":{"type":"string","description":"Optional Completion Config description.\r\nUsed during Creation operations and Update.\r\nReturned during Get operations.","nullable":true},"provider":{"type":"string","description":"Name of the Completion Provider. Required during Creation operations. Used during Update operations. Returned during Get operations. <br> Currently possible values are:<ul> <li><code>OpenAI</code></li> <li><code>Anthropic</code></li> <li><code>Mistral</code></li> <li><code>Azure_OpenAI</code></li> <li><code>Custom_OpenAI</code></li> </ul>","nullable":true},"endPoint":{"type":"string","description":"URL of the Completion Provider API end-point.\r\nUsed during Creation operations and Update.\r\nReturned during Get operations.","nullable":true},"apiKey":{"type":"string","description":"API key of the Completion Provider API end-point.\r\nRequired during Creation operations (optional for Custom_OpenAI provider).\r\nUsed during Update operations.\r\nReturned during Get operations as an obfuscated value.","nullable":true},"model":{"type":"string","description":"Name of the Completion Model. This is provider-specific,\r\nand for some providers (e.g. Azure) it is also part of\r\nthe end-point URL.\r\nRequired during Creation operations.\r\nUsed during Update operations.\r\nReturned during Get operations.","nullable":true},"questionAnsweringEnabled":{"type":"boolean","description":"If True this configuration can be used for Question & Answer operations.\r\nIf not specified False is assumed. At least one use must be enabled.\r\nUsed during Creation operations and Update operations.\r\nReturned during Get operations.","nullable":true},"importExportEnabled":{"type":"boolean","description":"If True this configuration can be used for Import/Export operations. \r\nIf not specified False is assumed. At least one use must be enabled.\r\nUsed during Creation operations and Update operations.\r\nReturned during Get operations.","nullable":true},"deepThoughtEnabled":{"type":"boolean","description":"If True this configuration can be used for Deep Thought operations. \r\nIf not specified False is assumed. At least one use must be enabled.\r\nUsed during Creation operations and Update operations.\r\nReturned during Get operations.","nullable":true},"ownerUserID":{"type":"string","description":"ID of the User this Config belongs to.\r\nReturned during Get operations if the user is the owner or an administrator.\r\nIgnored in other cases.","nullable":true},"ownerUserName":{"type":"string","description":"Name of the User this Config belongs to.\r\nReturned during Get operations.\r\nIgnored in other cases.","nullable":true},"ownerTenantName":{"type":"string","description":"Name of the Tenant of the User this Config belongs to.\r\nReturned during Get operations.\r\nIgnored in other cases.","nullable":true},"visibleToTenantUsers":{"type":"boolean","description":"If True this configuration can be used by other users of the owner's Tenant.\r\nIf not specified False is assumed.\r\nUsed during Creation operations and Update operations.\r\nReturned during Get operations.","nullable":true},"visibleToOtherUsers":{"type":"boolean","description":"If True this configuration can be used by users of other Tenants.\r\nIf not specified False is assumed.\r\nUsed during Creation operations and Update operations.\r\nReturned during Get operations.","nullable":true},"useAsDefault":{"type":"boolean","description":"If True this configuration is used as the default (for the operations it is enabled for)\r\nwhen a new Memori is created. The use as default requires that the configuration is visible\r\nat least to the owner's Tenant users.\r\nUsed during Creation operations and Update operations.\r\nReturned during Get operations.","nullable":true},"chargeable":{"type":"boolean","description":"If True the use of this configuration is chargeable to the customer.","nullable":true},"applyTo":{"type":"string","description":"During Creation and Update operations, when set forces this configuration to be applied to the specified Memori objects and purposes. Ignored during Get operations. <br> Can be one of the following:<ul> <li><code>ONLY_USER_MEMORI_ON_DEFAULT_ONLY_QA_PURPOSE</code>: the configuration is applied to user's Memori objects with the default configuration, for Question &amp; Answer purpose only.</li> <li><code>ONLY_USER_MEMORI_ON_DEFAULT_ONLY_IE_PURPOSE</code>: the configuration is applied to user's Memori objects with the default configuration, for Import/Export purpose only.</li> <li><code>ONLY_USER_MEMORI_ON_DEFAULT_ONLY_DT_PURPOSE</code>: the configuration is applied to user's Memori objects with the default configuration, for Deep Thought purpose only.</li> <li><code>ONLY_USER_MEMORI_ON_DEFAULT_ALL_ENABLED_PURPOSES</code>: the configuration is applied to user's Memori objects with the default configuration, for all enabled purposes.</li> <li><code>ALL_USER_MEMORI_ONLY_QA_PURPOSE</code>: the configuration is applied to all user's Memori objects, for Question &amp; Answer purpose only.</li> <li><code>ALL_USER_MEMORI_ONLY_IE_PURPOSE</code>: the configuration is applied to all user's Memori objects, for Import/Export purpose only.</li> <li><code>ALL_USER_MEMORI_ONLY_DT_PURPOSE</code>: the configuration is applied to all user's Memori objects, for Deep Thought purpose only.</li> <li><code>ALL_USER_MEMORI_ALL_ENABLED_PURPOSES</code>: the configuration is applied to all user's Memori objects, for all enabled purposes.</li> <li><code>ONLY_TENANT_MEMORI_ON_DEFAULT_ONLY_QA_PURPOSE</code>: the configuration is applied to the Tenant's Memori objects with the default configuration, for Question &amp; Answer purpose only.</li> <li><code>ONLY_TENANT_MEMORI_ON_DEFAULT_ONLY_IE_PURPOSE</code>: the configuration is applied to the Tenant's Memori objects with the default configuration, for Import/Export purpose only.</li> <li><code>ONLY_TENANT_MEMORI_ON_DEFAULT_ONLY_DT_PURPOSE</code>: the configuration is applied to the Tenant's Memori objects with the default configuration, for Deep Thought purpose only.</li> <li><code>ONLY_TENANT_MEMORI_ON_DEFAULT_ALL_ENABLED_PURPOSES</code>: the configuration is applied to the Tenant's Memori objects with the default configuration, for all enabled purposes.</li> <li><code>ALL_TENANT_MEMORI_ONLY_QA_PURPOSE</code>: the configuration is applied to all the Tenant's Memori objects, for Question &amp; Answer purpose only.</li> <li><code>ALL_TENANT_MEMORI_ONLY_IE_PURPOSE</code>: the configuration is applied to all the Tenant's Memori objects, for Import/Export purpose only.</li> <li><code>ALL_TENANT_MEMORI_ONLY_DT_PURPOSE</code>: the configuration is applied to all the Tenant's Memori objects, for Deep Thought purpose only.</li> <li><code>ALL_TENANT_MEMORI_ALL_ENABLED_PURPOSES</code>: the configuration is applied to all the Tenant's Memori objects, for all enabled purposes.</li> </ul>","nullable":true}},"additionalProperties":false,"description":"Specifications of a Completion Config object."}}}}
```

## The ConsumptionLogSpecs object

````json
{"openapi":"3.0.1","info":{"title":"Memori.ai Web API V2","version":"v2"},"components":{"schemas":{"ConsumptionLogSpecs":{"type":"object","properties":{"consumptionLogID":{"type":"string","description":"ID of the Consumption Log object.\r\nUnique and assigned by the system.","nullable":true},"from":{"type":"string","description":"Begin of the date interval of the Consumption Log.","format":"date-time"},"to":{"type":"string","description":"End of the date interval of the Consumption Log.","format":"date-time"},"type":{"type":"string","description":"Type of Consumption Log. <br> May be one of the following:<ul> <li><code>Daily</code></li> <li><code>Monthly</code></li> </ul>","nullable":true},"userID":{"type":"string","description":"ID of the associated User object.","nullable":true},"userName":{"type":"string","description":"Name of the associated User object.","nullable":true},"tenantName":{"type":"string","description":"Name of the Tenant of the associated User object.","nullable":true},"memoriID":{"type":"string","description":"ID of the associated Memori object.","nullable":true},"memoriName":{"type":"string","description":"Name of the associated Memori object.","nullable":true},"totalSessions":{"type":"integer","description":"Total number of sessions consumed in the interval.\r\nThese sessions are NOT counted towards the maximum number of sessions\r\navailable for the month.","format":"int32"},"validSessions":{"type":"integer","description":"Number of valid sessions consumed in the interval.\r\nThese sessions ARE counted towards the maximum number of sessions\r\navailable for the month.","format":"int32"},"completions":{"type":"integer","description":"Number of completions consumed in the interval using\r\na chargeable (i.e. non-custom) Completion Config.\r\nThese completions ARE counted towards the maximum number of completions\r\navailable for the month.","format":"int32"},"deepThoughtValidSessions":{"type":"integer","description":"Number of valid sessions consumed in the interval,\r\nwith Deep Thought enabled.\r\nThese sessions ARE counted towards the maximum number of sessions\r\navailable for the month.","format":"int32"},"deepThoughtCompletions":{"type":"integer","description":"Number of completions consumed in the interval,\r\nwith Deep Thought enabled, using a chargeable (i.e. non-custom) Completion Config.\r\nThese completions ARE counted towards the maximum number of completions\r\navailable for the month.","format":"int32"},"importedSize":{"type":"integer","description":"Number of characters imported in the interval using\r\na chargeable (i.e. non-custom) Completion Config.\r\nThis size IS counted towards the maximum size of imported characters\r\navailable for the month.","format":"int64"},"nonChargeableCompletions":{"type":"integer","description":"Number of completions consumed in the interval using\r\na non-chargeable (i.e. custom) Completion Config.\r\nThese completions are NOT counted towards the maximum number of completions\r\navailable for the month.","format":"int32"},"nonChargeableDeepThoughtCompletions":{"type":"integer","description":"Number of completions consumed in the interval,\r\nwith Deep Thought enabled, using a non-chargeable (i.e. custom) Completion Config.\r\nThese completions are NOT counted towards the maximum number of completions\r\navailable for the month.","format":"int32"},"nonChargeableImportedSize":{"type":"integer","description":"Number of characters imported in the interval using\r\na non-chargeable (i.e. custom) Completion Config.\r\nThis size is NOT counted towards the maximum size of imported characters\r\navailable for the month.","format":"int64"},"promptTokens":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"Number of prompt tokens consumed in the interval.\r\nThe key is a string formatted as ```\"provider|endpoint|API-key|model|charge|purpose\"```,\r\nwhere:<ul><li>```provider``` is the name of the Completion Provider (e.g. \"OpenAI\")</li><li>```endpoint``` is the end-point of the Completion Provider</li><li>```API-key``` is the obfuscated API key used by the Completion Provider</li><li>```model``` is the model used by the Completion Provider (e.g. \"gpt-4o)</li><li>```charge``` is a flag indicating if the token consumption comes from a chargeable\r\n(i.e. non-custom) or non-chargeable (i.e. custom) Completion Config (\"$\" for chargeable, empty otherwise)</li><li>```purpose``` is the purpose of the prompt (e.g. \"QA\" for question answering,\r\n\"DT\" for Deep Thought, \"IE\" for import/export etc.)</li></ul>\r\nThe value is the corresponding prompt tokens count.","nullable":true},"completionTokens":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"Number of completion tokens consumed in the interval.\r\nThe key is a string formatted as ```\"provider|endpoint|API-key|model|charge|purpose\"```,\r\nwhere:<ul><li>```provider``` is the name of the Completion Provider (e.g. \"OpenAI\")</li><li>```endpoint``` is the end-point of the Completion Provider</li><li>```API-key``` is the obfuscated API key used by the Completion Provider</li><li>```model``` is the model used by the Completion Provider (e.g. \"gpt-4o\")</li><li>```charge``` is a flag indicating if the token consumption comes from a chargeable\r\n(i.e. non-custom) or non-chargeable (i.e. custom) Completion Config (\"$\" for chargeable, empty otherwise)</li><li>```purpose``` is the purpose of the prompt (e.g. \"QA\" for question answering,\r\n\"DT\" for Deep Thought, \"IE\" for import/export etc.)</li></ul>\r\nThe value is the corresponding completion tokens count.","nullable":true}},"additionalProperties":false,"description":"Specifications of a Consumption Log object."}}}}
````

## The CreateNotificationResponse object

````json
{"openapi":"3.0.1","info":{"title":"Memori.ai Web API V2","version":"v2"},"components":{"schemas":{"CreateNotificationResponse":{"type":"object","properties":{"notification":{"$ref":"#/components/schemas/NotificationSpecs"},"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 reponse.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous reponse.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is indicative of the actual\r\nerror.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response of a Create User Notification request."},"NotificationSpecs":{"type":"object","properties":{"notificationID":{"type":"string","description":"Notificaiton ID. Unique and assigned by the system.","nullable":true},"timestamp":{"type":"string","description":"Timestamp UTC of the notification.","format":"date-time"},"severity":{"type":"string","description":"Severity level. <br> May be one of the following:<ul> <li><code>INFO</code>: the notification is an information</li> <li><code>AWARD</code>: the notification is an award</li> <li><code>BANNER</code>: the notification is a banner</li> <li><code>WARN</code>: the notification is a warning</li> <li><code>ALERT</code>: the notification is an alert</li> </ul>","nullable":true},"texts":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"Notification text, in different languages/cultures.\r\nThe key is the language/culture, e.g. \"en-US\" or \"it-IT\",\r\nand the value is the corresponding text.","nullable":true},"additionalInfo":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"Optional additional information, in the form of key-value pairs.","nullable":true},"type":{"type":"string","description":"Notification type. /// <br> May be one of the following:<ul> <li><code>BROADCAST</code>: the notification is a broadcast</li> <li><code>TENANT</code>: the notification is a tenant notification</li> <li><code>USER</code>: the notification is a user notification</li> </ul>","nullable":true},"tenant":{"type":"string","description":"Tenant ID of the notification.","nullable":true},"userName":{"type":"string","description":"The Username of the user that the notification is addressed to.","nullable":true},"validFrom":{"type":"string","description":"The date and time from which the notification is valid. <br> Used when creating and modifying the notification. Ignored otherwise.","format":"date-time","nullable":true},"validTo":{"type":"string","description":"The date and time until which the notification is valid. <br> Used when creating and modifying the notification. Ignored otherwise.","format":"date-time","nullable":true}},"additionalProperties":false,"description":"Specifications of a Notification object."}}}}
````

## The CreateTrustedApplicationResponse object

````json
{"openapi":"3.0.1","info":{"title":"Memori.ai Web API V2","version":"v2"},"components":{"schemas":{"CreateTrustedApplicationResponse":{"type":"object","properties":{"trustedApplication":{"$ref":"#/components/schemas/TrustedApplicationSpecs"},"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 reponse.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous reponse.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is indicative of the actual\r\nerror.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response of a Create TrustedApplication request."},"TrustedApplicationSpecs":{"required":["authorizationToken","isEnabled","name"],"type":"object","properties":{"trustedApplicationID":{"type":"string","description":"TrustedApplication ID. Unique and assigned by the system.\r\nReturned during Get operations. Ignored in other cases.","nullable":true},"tenantID":{"type":"string","description":"Tenant ID this TrustedApplication belongs to.\r\nRequired during Create operations. Returned during Get operations.","nullable":true},"name":{"maxLength":255,"minLength":1,"type":"string","description":"Name of the TrustedApplication. Must be unique within the tenant.\r\nRequired during Create operations. Used during Update operations.\r\nReturned during Get operations."},"description":{"maxLength":1000,"type":"string","description":"Description of the TrustedApplication.\r\nOptional during Create and Update operations.\r\nReturned during Get operations.","nullable":true},"baseUrl":{"maxLength":500,"type":"string","description":"Base URL of the TrustedApplication.\r\nOptional during Create and Update operations.\r\nReturned during Get operations.","nullable":true},"authorizationToken":{"maxLength":1000,"minLength":1,"type":"string","description":"Authorization token for the TrustedApplication.\r\nRequired during Create operations. Used during Update operations.\r\nReturned during Get operations."},"isEnabled":{"type":"boolean","description":"Whether the TrustedApplication is enabled.\r\nRequired during Create operations. Used during Update operations.\r\nReturned during Get operations."},"createdByUserID":{"type":"string","description":"User ID who created this TrustedApplication.\r\nReturned during Get operations. Ignored in other cases.","nullable":true},"lastModifiedByUserID":{"type":"string","description":"User ID who last modified this TrustedApplication.\r\nReturned during Get operations. Ignored in other cases.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true}},"additionalProperties":false,"description":"Specifications of a TrustedApplication object."}}}}
````

## The CreateUserResponse object

````json
{"openapi":"3.0.1","info":{"title":"Memori.ai Web API V2","version":"v2"},"components":{"schemas":{"CreateUserResponse":{"type":"object","properties":{"temporaryPassword":{"type":"string","description":"Temporary password of the user. Returned only during Creation\r\noperations, and only if the ```DontSendInvitationEmail```\r\nflag is ```True```.","nullable":true},"loginToken":{"type":"string","description":"The login token of the user.\r\nReturned only if DontSendInvitationEmail flag was set to true.","nullable":true},"user":{"$ref":"#/components/schemas/UserSpecs"},"requestID":{"type":"integer","description":"Progressive number of the request (since the Server started).\r\nUse this number, together with the RequestDateTime property,\r\nto report an anomalous reponse.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous reponse.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is indicative of the actual\r\nerror.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response of a Create User request."},"UserSpecs":{"type":"object","properties":{"tenant":{"type":"string","description":"Name of the Tenant this user is associated to. Required during \r\nLogin and Registration operations. Returned during Get operations.\r\nIgnored in other cases.","nullable":true},"userID":{"type":"string","description":"User ID. Unique and assigned by the system.\r\nReturned during Login and Get operations. Ignored in other cases.","nullable":true},"userName":{"type":"string","description":"User name. Must be unique. Required during Login and Registration\r\noperations. Returned during Get operations.\r\nIgnored in other cases.","nullable":true},"eMail":{"type":"string","description":"E-mail address. Required during Registration operations. Used during Update operations. May be used as an alternative to UserName during Login operations. Returned during Get operations. <br> The address is checked via a verification code.","nullable":true},"avatarURL":{"type":"string","description":"URL of the avatar image representing the User.\r\nMay be provided during Registration and Update operations.\r\nReturned during Login and Get operations.","nullable":true},"avatar3DURL":{"type":"string","description":"URL of the avatar 3D model representing the User.\r\nMay be provided during Registration and Update operations.\r\nReturned during Login and Get operations.","nullable":true},"avatar3DURLType":{"type":"string","description":"Additional information about the avatar 3D model URL, e.g. if it's a head-only, full-body avatar, custom model etc. <br> Sample possible values are: <ul> <li><code>readyplayerme</code>: the avatar 3D URL points a half-body ReadyPlayerMe GLB model</li> <li><code>readyplayerme-full</code>: the avatar 3D URL points a full-body ReadyPlayerMe GLB model</li> <li><code>customglb</code>: the avatar 3D URL points to a custom GLB model</li> </ul>","nullable":true},"dontSendInvitationEmail":{"type":"boolean","description":"If ```True``` during a Creation operation, the automatic\r\ninvitation e-mail is not sent, and the temporary password is\r\nreturned as part of the operation response.\r\nUsed during Creation operations. Ignored in other cases.","nullable":true},"referral":{"type":"string","description":"Optional referral URL from which the User reached the registration\r\npage.","nullable":true},"couponCode":{"type":"string","description":"Optional coupon code used by the User during Registration.","nullable":true},"newsletterSubscribed":{"type":"boolean","description":"```True``` if the e-mail address is subscribed to the newsletter.\r\n            Used during Registration and Update operations.\r\n            Returned during Get operations.","nullable":true},"notificationPrefs":{"type":"array","items":{"$ref":"#/components/schemas/NotificationPrefsSpecs"},"description":"List of Notification Preferences objects.\r\nUsed Update operations. Returned during Get operations.\r\nIgnored in other cases.","nullable":true},"admin":{"type":"boolean","description":"```True``` if the User is an administrator, i.e. can administer\r\n            the tenant they are part of.\r\n            Used during Creation and Update operations by a super administrator.\r\n            Returned during Login and Get operations.","nullable":true},"superAdmin":{"type":"boolean","description":"```True``` if the User is a super administrator, i.e. can\r\n            administer all tenants.\r\n            Returned during Login and Get operations.\r\n            Ignored in other cases.","nullable":true},"numMemori":{"type":"integer","description":"The current number of Memori objects belonging to this User. Returned during Get and Login operations. Ignored in other cases. <br> Visible only to administrators and the user themself.","format":"int32","nullable":true},"maxMemori":{"type":"integer","description":"Maximum number of Memori objects this User can create.\r\nIf ```0``` it means unlimited.\r\nUsed during Creation and Update operations by a super administrator.\r\nReturned during Get and Login operations.","format":"int32","nullable":true},"monthSessions":{"type":"integer","description":"Number of sessions in the current month for this User. Returned during Get and Login operations. Ignored in other cases. <br> Visible only to administrators and the user themself.","format":"int32","nullable":true},"monthValidSessions":{"type":"integer","description":"Number of valid sessions in the current month for this User. Valid sessions are performed by a not Giver user with at least one request/response pair. Returned during Get and Login operations. Ignored in other cases. <br> Visible only to administrators and the user themself.","format":"int32","nullable":true},"monthDeepThoughtValidSessions":{"type":"integer","description":"Number of valid sessions in the current month for this User, with Deep Thought enabled. Returned during Get and Login operations. Ignored in other cases. <br> Visible only to administrators and the user themself.","format":"int32","nullable":true},"maxFreeSessions":{"type":"integer","description":"Maximum number of free Memori sessions this User can open per month.\r\nif ```0>``` it means unlimited.\r\nUsed during Creation and Update operations by a super administrator.\r\nReturned during Get and Login operations.","format":"int32","nullable":true},"nonFreeSessionCost":{"type":"number","description":"The cost of each new session above the max free sessions threshold.","format":"double","nullable":true},"monthCompletions":{"type":"integer","description":"Number of completions in the current month for this User. Returned during Get and Login operations. Ignored in other cases. <br> Visible only to administrators and the user itself.","format":"int32","nullable":true},"monthDeepThoughtCompletions":{"type":"integer","description":"Number of completions in the current month for this User, with Deep Thought enabled. Returned during Get and Login operations. Ignored in other cases. <br> Visible only to administrators and the user itself.","format":"int32","nullable":true},"monthImportedSize":{"type":"integer","description":"Number of characters imported in the current month for this User. Returned during Get and Login operations. Ignored in other cases. <br> Visible only to administrators and the user itself.","format":"int64","nullable":true},"maxCompletions":{"type":"integer","description":"Maximum number of completions for this User per month.\r\nif ```0``` it means unlimited.\r\nUsed during Creation and Update operations by a super administrator.\r\nReturned during Get and Login operations.","format":"int32","nullable":true},"maxImportSize":{"type":"integer","description":"Maximum number of characters that can imported be by this User per month.\r\nif ```0``` it means unlimited.\r\nUsed during Creation and Update operations by a super administrator.\r\nReturned during Get and Login operations.","format":"int64","nullable":true},"paying":{"type":"boolean","description":"If ```True``` means this User has an actual payment\r\ncontract in effect and non-free sessions (i.e. sessions above\r\nthe max free session threshold) can be performed.","nullable":true},"enableMemoriCreation":{"type":"boolean","description":"```True``` if the User can create new Memori objects.\r\n            Used during Creation and Update operations by an administrator.\r\n            Returned during Get and Login operations.","nullable":true},"enableBoardOfExperts":{"type":"boolean","description":"```True``` if the User can access the Board of Experts feature.\r\n            Used during Creation and Update operations by an administrator.\r\n            Returned during Get and Login operations.","nullable":true},"enableDCMIntegration":{"type":"boolean","description":"```True``` if the User access the DCM integration feature.\r\n            Used during Creation and Update operations by an administrator.\r\n            Returned during Get and Login operations.","nullable":true},"enableBadges":{"type":"boolean","description":"If ```True``` this User accepts DCM outcomes and\r\nconsequently can receive badges in the Open Badge format.\r\nUsed during Creation and Update operations by an administrator.\r\nReturned during Get and Login operations.","nullable":true},"enableDeepThought":{"type":"boolean","description":"```True``` if the User can access the Deep Thought feature.\r\n            Used during Creation and Update operations by an administrator.\r\n            Returned during Get and Login operations.","nullable":true},"enableVirtualSpaces":{"type":"boolean","description":"```True``` if the User can access the Virtual Spaces feature.\r\n            Used during Creation and Update operations by an administrator.\r\n            Returned during Get and Login operations.","nullable":true},"birthDate":{"type":"string","description":"User date of birth. Necessary of age-restricted features, such as\r\nenabling completions or accessing NSFW content.\r\nUsed during Registration and Update operations.\r\nReturned during Get operations.","format":"date-time","nullable":true},"age":{"type":"integer","description":"Age computed from the birth date.\r\nReturned during Get operations.\r\nIgnored in other cases.","format":"int32"},"tnCAndPPAccepted":{"type":"boolean","description":"Terms & Conditions and Privacy Policy acceptance flag.\r\nMay be reset to False in case of T. & C. and/or P. P. change.\r\nWhen False all operations that imply a change are blocked.\r\nMandatory during Registration. Used during Update operations.\r\nReturned during Get operations.","nullable":true},"tnCAndPPAcceptanceDate":{"type":"string","description":"Date of acceptance of Terms & Conditions and Privacy Policy.\r\nReturned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true},"pAndCUAccepted":{"type":"boolean","description":"Profiling & Commercial Use acceptance flag.\r\nMay be reset to False in case of T. & C. and/or P. P. change.\r\nWhen False features that require profiling and may imply commercial\r\ncommunication to the User (e.g. Deep Thought) are disabled.\r\nUsed during Registration and Update operations.\r\nReturned during Get operations.","nullable":true},"pAndCUAcceptanceDate":{"type":"string","description":"Date of acceptance of Profiling & Commercial Use.\r\nReturned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true},"magicLinkURL":{"type":"string","description":"Optional magic link URL. If not set a default one is used.\r\nThe URL is invoked appending the Session ID at the end.\r\nUsed during Login and Create operations.\r\nIgnored in other cases.","nullable":true},"redirectTo":{"type":"string","description":"Optional RedirectTo.\r\nIf set the user will be redirected to the specified page.\r\nIgnored in other cases.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true}},"additionalProperties":false,"description":"Specifications of a User object."},"NotificationPrefsSpecs":{"type":"object","properties":{"chatLogExtractionPeriod":{"type":"string","description":"Periodicity of chat log extraction (hourly, daily, weekly or none). When chat log extraction is enabled (i.e. not <code>None</code>) chats performed on Memori owned or managed by the User will be periodically collected and sent via e-mail. Required. <br> Can be one of the following:<ul> <li><code>None</code></li>: no chat log extraction is performed. <li><code>Hourly</code></li>: chat log extraction is performed every hour. <li><code>Hourly</code></li>: chat log extraction is performed daily. <li><code>Hourly</code></li>: chat log extraction is performed weekly. </ul>","nullable":true},"chatLogExtractionMinLines":{"type":"integer","description":"Minimum lines for an extracted chat to be sent via e-mail to\r\nthe User. If ```0``` no filter is applied.\r\nDefault is ```5```.","format":"int32","nullable":true},"memoriID":{"type":"string","description":"Memori ID to which these preferences apply to.\r\nIf ```Null``` these preferences have default value\r\nand apply to all Memori objects not specified with other\r\npreferences.","nullable":true}},"additionalProperties":false,"description":"Specifications of a Notificattion Preferences object."}}}}
````

## The DeleteCompletionConfigResponse object

````json
{"openapi":"3.0.1","info":{"title":"Memori.ai Web API V2","version":"v2"},"components":{"schemas":{"DeleteCompletionConfigResponse":{"type":"object","properties":{"completionConfigChangeResults":{"type":"array","items":{"$ref":"#/components/schemas/CompletionConfigChangeResult"},"nullable":true},"requestID":{"type":"integer","description":"Progressive number of the request (since the Server started).\r\nUse this number, together with the RequestDateTime property,\r\nto report an anomalous reponse.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous reponse.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is indicative of the actual\r\nerror.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false},"CompletionConfigChangeResult":{"type":"object","properties":{"memoriId":{"type":"string","nullable":true},"memoriName":{"type":"string","nullable":true},"applied":{"type":"boolean"},"errorMessage":{"type":"string","nullable":true}},"additionalProperties":false}}}}
````

## The DictionarySpecs object

```json
{"openapi":"3.0.1","info":{"title":"Memori.ai Web API V2","version":"v2"},"components":{"schemas":{"DictionarySpecs":{"type":"object","properties":{"words":{"type":"array","items":{"type":"string"},"description":"If specified the dictionary will be exported with the specified words if present.","nullable":true}},"additionalProperties":false}}}}
```

## The ExportCSVSpecs object

```json
{"openapi":"3.0.1","info":{"title":"Memori.ai Web API V2","version":"v2"},"components":{"schemas":{"ExportCSVSpecs":{"type":"object","properties":{"csvSpecs":{"$ref":"#/components/schemas/CSVSpecs"},"password":{"type":"string","description":"Memori password, if its privacy model is set to Secret.","nullable":true}},"additionalProperties":false,"description":"Specifications for an Export CSV request."},"CSVSpecs":{"type":"object","properties":{"newLine":{"type":"string","description":"New line characters to be used for CSV records.<br /> Required in Export operations.<br /> Not used in Import operations. <br> Must be one of:<ul> <li><code>\\r\\n</code>: CR-LF pair (Windows new lines)</li> <li><code>\\n</code>: LF only (Unix/macOS new lines)</li> </ul>","nullable":true},"hasHeaders":{"type":"boolean","description":"Specifies if the first row of the CSV contains the column names.<br />\r\nIn Import operations: if False column names must be specified\r\nin the HeaderNames property, if True HeaderNames is ignored.<br />\r\nIn Export operations: if True header names are generated in the\r\nfirst row, if False the first row contains the first data row."},"headerNames":{"type":"array","items":{"type":"string"},"description":"Optional column names of the CSV rows.<br />\r\nUsed only in Import operations: if not specified the\r\nHasHeaders property must be set to True, and the first row of the\r\nCSV file is assumed to contain the column names.","nullable":true},"questionColumnName":{"type":"string","description":"Name of the column with the question text.<br />\r\nUsed in both Import and Export operations.","nullable":true},"answerColumnName":{"type":"string","description":"Name of the column with the answer text.<br />\r\nUsed in both Import and Export operations.","nullable":true},"contextVarsToMatchColumnName":{"type":"string","description":"Optional name of the column with the context variables to match.<br />\r\nUsed in both Import and Export operations.","nullable":true},"contextVarsToSetColumnName":{"type":"string","description":"Optional name of the column with the context variables to set.<br />\r\nUsed in both Import and Export operations.","nullable":true},"memoryTagsColumnName":{"type":"string","description":"Optional name of the column with the memory tags.<br />\r\nUsed in both Import and Export operations.","nullable":true},"csvSeparator":{"type":"string","description":"Column separator in CSV rows.<br />\r\nUsed in both Import and Export operations.","nullable":true},"questionTitleVariantsSeparator":{"type":"string","description":"Optional question text and memory tags separator. Must be specified if\r\nthe question column contains multiple text variants, or if memory tags are being exported<br />\r\nUsed in both Import and Export operations.","nullable":true}},"additionalProperties":false,"description":"Specifications for requests involving import/export of CSV contents."}}}}
```

## The ExportDictionarySpecs object

```json
{"openapi":"3.0.1","info":{"title":"Memori.ai Web API V2","version":"v2"},"components":{"schemas":{"ExportDictionarySpecs":{"type":"object","properties":{"dictionarySpecs":{"$ref":"#/components/schemas/DictionarySpecs"},"password":{"type":"string","description":"Memori password, if its privacy model is set to Secret.","nullable":true}},"additionalProperties":false},"DictionarySpecs":{"type":"object","properties":{"words":{"type":"array","items":{"type":"string"},"description":"If specified the dictionary will be exported with the specified words if present.","nullable":true}},"additionalProperties":false}}}}
```

## The ExportFunctionsIntentsSpecs object

```json
{"openapi":"3.0.1","info":{"title":"Memori.ai Web API V2","version":"v2"},"components":{"schemas":{"ExportFunctionsIntentsSpecs":{"type":"object","properties":{"exportFunctions":{"type":"boolean","description":"If true, export functions."},"exportIntents":{"type":"boolean","description":"If true, export intents."},"exportIntentSlots":{"type":"boolean","description":"If true, export intent slots."},"functionsIds":{"type":"array","items":{"type":"string"},"description":"If specified only the functions with the given IDs will be exported.","nullable":true},"intentsIds":{"type":"array","items":{"type":"string"},"description":"If specified only the intents with the given IDs will be exported.","nullable":true},"intentSlotsIds":{"type":"array","items":{"type":"string"},"description":"If specified only the intent slots with the given IDs will be exported.","nullable":true},"password":{"type":"string","description":"Memori password, if its privacy model is set to Secret.","nullable":true}},"additionalProperties":false}}}}
```

## The ExportJSONLSpecs object

```json
{"openapi":"3.0.1","info":{"title":"Memori.ai Web API V2","version":"v2"},"components":{"schemas":{"ExportJSONLSpecs":{"type":"object","properties":{"jsonlSpecs":{"$ref":"#/components/schemas/JSONLSpecs"},"password":{"type":"string","description":"Memori password, if its privacy model is set to Secret.","nullable":true}},"additionalProperties":false,"description":"Specifications for an Export JSONL request."},"JSONLSpecs":{"type":"object","properties":{"platform":{"type":"string","description":"Name of the platform for which the JSONL is intended. <br> Currently supported values are:<ul> <li><code>OpenAI</code>: the OpenAI platform</li> </ul>","nullable":true},"includeInstructions":{"type":"boolean","description":"If True the JSONL includes the instructions for the generative AI,\r\ni.e. the \"System\" role of each message.\r\nUsed only in Export operations."},"createdOrChangedAfter":{"type":"string","description":"If specified, only contents created or changed after this date will be\r\nincluded in the export.","format":"date-time","nullable":true}},"additionalProperties":false,"description":"Specifications for requests involving import/export of JSONL contents."}}}}
```

## The ExportMemoriSpecs object

```json
{"openapi":"3.0.1","info":{"title":"Memori.ai Web API V2","version":"v2"},"components":{"schemas":{"ExportMemoriSpecs":{"type":"object","properties":{"password":{"type":"string","description":"Memori password, if its privacy model is set to Secret.","nullable":true}},"additionalProperties":false}}}}
```

## The FilterMemoriesSpecs object

```json
{"openapi":"3.0.1","info":{"title":"Memori.ai Web API V2","version":"v2"},"components":{"schemas":{"FilterMemoriesSpecs":{"type":"object","properties":{"type":{"type":"string","description":"Agent Type: \"Agents\", \"Boe\"   \r\nFor different string value, or for null value, filter is not applied","nullable":true},"text":{"type":"string","description":"A search query to filter by agent by name and/or description","nullable":true},"categories":{"type":"array","items":{"type":"string"},"description":"A search query to filter by categories","nullable":true},"startFrom":{"type":"integer","description":"Optional initial result index, 0-based. If omitted defaults to 0.\r\nUsed for Search, Filter Memories and Memory Hints.\r\nIgnored for Random picking.","format":"int32"},"numberOfResults":{"type":"integer","description":"Optional number of results. If omitted defaults to max int value.","format":"int32"}},"additionalProperties":false}}}}
```

## The FilterUsersSpecs object

```json
{"openapi":"3.0.1","info":{"title":"Memori.ai Web API V2","version":"v2"},"components":{"schemas":{"FilterUsersSpecs":{"type":"object","properties":{"periodFrom":{"type":"string","description":"The starting date of the filter","format":"date-time","nullable":true},"periodTo":{"type":"string","description":"The end date of the filter","format":"date-time","nullable":true},"tenantName":{"type":"string","description":"The tenant name to filter the users.","nullable":true},"text":{"type":"string","description":"A search query to filter the users","nullable":true},"numberOfResults":{"type":"integer","description":"Optional number of results. If omitted defaults to 5.","format":"int32","nullable":true},"startFrom":{"type":"integer","description":"Optional initial result index, 0-based. If omitted defaults to 0.\r\nUsed for Search, Filter Memories and Memory Hints.\r\nIgnored for Random picking.","format":"int32","nullable":true},"orderBy":{"type":"string","description":"Optional order by field. If omitted defaults to <code>CreationDate</code>. <br> Can be one of the following:<ul> <li><code>CreationDateAscending</code></li>: the results are ordered by creation date in ascending order. <li><code>CreationDateDescending</code></li>: the results are ordered by creation date in descending order. <li><code>MemoriCountAscending</code></li>: the results are ordered by Memori count in ascending order. <li><code>MemoriCountDescending</code></li>: the results are ordered by Memori count in descending order. <li><code>MonthCompletionsAscending</code></li>: the results are ordered by month completions in ascending order. <li><code>MonthCompletionsDescending</code></li>: the results are ordered by month completions in descending order. <li><code>MonthImportSizeAscending</code></li>: the results are ordered by month import size in ascending order. <li><code>MonthImportSizeDescending</code></li>: the results are ordered by month import size in descending order. </ul>","nullable":true}},"additionalProperties":false}}}}
```

## The GetAssetDetailsResponse object

````json
{"openapi":"3.0.1","info":{"title":"Memori.ai Web API V2","version":"v2"},"components":{"schemas":{"GetAssetDetailsResponse":{"type":"object","properties":{"asset":{"$ref":"#/components/schemas/AssetSpecs"},"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 reponse.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous reponse.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is indicative of the actual\r\nerror.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response of a Get Asset Details request."},"AssetSpecs":{"type":"object","properties":{"assetID":{"type":"string","description":"Asset ID. Unique and assigned by the system.\r\nReturned during Upload operations.\r\nIgnored in other cases.","nullable":true},"assetURL":{"type":"string","description":"Public URL of the Asset file. Unique and assigned by the system.\r\nReturned during Upload operations.\r\nIgnored in other cases.","nullable":true},"mimeType":{"type":"string","description":"Extrapolated MIME type.\r\nReturned during Upload operations.\r\nIgnored in other cases.","nullable":true},"originalFileName":{"type":"string","description":"Original name of the uploaded file, without the extension.\r\nReturned during Upload operations.\r\nUsed during Update operations.","nullable":true},"memoriID":{"type":"string","description":"Optional ID of the Memori object this Asset belongs to.\r\nMay be empty for assets not belonging to a Memori object.\r\nReturned during Upload operations.\r\nIgnored in other cases.","nullable":true},"remoteSessionCheck":{"type":"boolean","description":"Optional flag to protect resource downloads with remote session control.\r\nReturned during Upload operations.\r\nUsed during Update operations.","nullable":true},"engineMemoryID":{"type":"string","description":"Optional ID of the Memory object on the Memori Engine.\r\nMay be empty for public assets. \r\nReturned during Upload operations.\r\nUsed during Update operations. To clear this property during an\r\nUpdate operation set it to a single dash character (\"-\").","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true}},"additionalProperties":false,"description":"Specifications of an Asset object."}}}}
````

## The GetBadgeResponse object

````json
{"openapi":"3.0.1","info":{"title":"Memori.ai Web API V2","version":"v2"},"components":{"schemas":{"GetBadgeResponse":{"type":"object","properties":{"badge":{"$ref":"#/components/schemas/BadgeSpecs"},"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 reponse.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous reponse.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is indicative of the actual\r\nerror.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response of a Get Badge request."},"BadgeSpecs":{"type":"object","properties":{"badgeID":{"type":"string","description":"Badge ID. Unique and assigned by the system.","nullable":true},"date":{"type":"string","description":"Date of assignment.","format":"date-time"},"name":{"type":"string","description":"Badge name.","nullable":true},"description":{"type":"string","description":"Badge description.","nullable":true},"imageURL":{"type":"string","description":"URL of the badge image.","nullable":true},"tags":{"type":"array","items":{"type":"string"},"description":"List of badge tags.","nullable":true},"issuerName":{"type":"string","description":"Name of the badge issuer.","nullable":true},"issuerDescription":{"type":"string","description":"Description of the badge issuer","nullable":true},"issuerEmail":{"type":"string","description":"E-mail of the badge issuer (if available).","nullable":true},"issuerURL":{"type":"string","description":"URL of the badge issuer (if available).","nullable":true}},"additionalProperties":false}}}}
````

## The GetCompletionConfigResponse object

````json
{"openapi":"3.0.1","info":{"title":"Memori.ai Web API V2","version":"v2"},"components":{"schemas":{"GetCompletionConfigResponse":{"type":"object","properties":{"config":{"$ref":"#/components/schemas/CompletionConfigSpecs"},"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 reponse.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous reponse.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is indicative of the actual\r\nerror.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response of a Get Completion Config request."},"CompletionConfigSpecs":{"type":"object","properties":{"completionConfigID":{"type":"string","description":"Completion Config object ID.\r\nReturned during Get operations.\r\nIgnored in other cases.","nullable":true},"configName":{"type":"string","description":"Completion Config unique name.\r\nRequired during Creation operations.\r\nUsed during Update operations.\r\nReturned during Get operations.","nullable":true},"description":{"type":"string","description":"Optional Completion Config description.\r\nUsed during Creation operations and Update.\r\nReturned during Get operations.","nullable":true},"provider":{"type":"string","description":"Name of the Completion Provider. Required during Creation operations. Used during Update operations. Returned during Get operations. <br> Currently possible values are:<ul> <li><code>OpenAI</code></li> <li><code>Anthropic</code></li> <li><code>Mistral</code></li> <li><code>Azure_OpenAI</code></li> <li><code>Custom_OpenAI</code></li> </ul>","nullable":true},"endPoint":{"type":"string","description":"URL of the Completion Provider API end-point.\r\nUsed during Creation operations and Update.\r\nReturned during Get operations.","nullable":true},"apiKey":{"type":"string","description":"API key of the Completion Provider API end-point.\r\nRequired during Creation operations (optional for Custom_OpenAI provider).\r\nUsed during Update operations.\r\nReturned during Get operations as an obfuscated value.","nullable":true},"model":{"type":"string","description":"Name of the Completion Model. This is provider-specific,\r\nand for some providers (e.g. Azure) it is also part of\r\nthe end-point URL.\r\nRequired during Creation operations.\r\nUsed during Update operations.\r\nReturned during Get operations.","nullable":true},"questionAnsweringEnabled":{"type":"boolean","description":"If True this configuration can be used for Question & Answer operations.\r\nIf not specified False is assumed. At least one use must be enabled.\r\nUsed during Creation operations and Update operations.\r\nReturned during Get operations.","nullable":true},"importExportEnabled":{"type":"boolean","description":"If True this configuration can be used for Import/Export operations. \r\nIf not specified False is assumed. At least one use must be enabled.\r\nUsed during Creation operations and Update operations.\r\nReturned during Get operations.","nullable":true},"deepThoughtEnabled":{"type":"boolean","description":"If True this configuration can be used for Deep Thought operations. \r\nIf not specified False is assumed. At least one use must be enabled.\r\nUsed during Creation operations and Update operations.\r\nReturned during Get operations.","nullable":true},"ownerUserID":{"type":"string","description":"ID of the User this Config belongs to.\r\nReturned during Get operations if the user is the owner or an administrator.\r\nIgnored in other cases.","nullable":true},"ownerUserName":{"type":"string","description":"Name of the User this Config belongs to.\r\nReturned during Get operations.\r\nIgnored in other cases.","nullable":true},"ownerTenantName":{"type":"string","description":"Name of the Tenant of the User this Config belongs to.\r\nReturned during Get operations.\r\nIgnored in other cases.","nullable":true},"visibleToTenantUsers":{"type":"boolean","description":"If True this configuration can be used by other users of the owner's Tenant.\r\nIf not specified False is assumed.\r\nUsed during Creation operations and Update operations.\r\nReturned during Get operations.","nullable":true},"visibleToOtherUsers":{"type":"boolean","description":"If True this configuration can be used by users of other Tenants.\r\nIf not specified False is assumed.\r\nUsed during Creation operations and Update operations.\r\nReturned during Get operations.","nullable":true},"useAsDefault":{"type":"boolean","description":"If True this configuration is used as the default (for the operations it is enabled for)\r\nwhen a new Memori is created. The use as default requires that the configuration is visible\r\nat least to the owner's Tenant users.\r\nUsed during Creation operations and Update operations.\r\nReturned during Get operations.","nullable":true},"chargeable":{"type":"boolean","description":"If True the use of this configuration is chargeable to the customer.","nullable":true},"applyTo":{"type":"string","description":"During Creation and Update operations, when set forces this configuration to be applied to the specified Memori objects and purposes. Ignored during Get operations. <br> Can be one of the following:<ul> <li><code>ONLY_USER_MEMORI_ON_DEFAULT_ONLY_QA_PURPOSE</code>: the configuration is applied to user's Memori objects with the default configuration, for Question &amp; Answer purpose only.</li> <li><code>ONLY_USER_MEMORI_ON_DEFAULT_ONLY_IE_PURPOSE</code>: the configuration is applied to user's Memori objects with the default configuration, for Import/Export purpose only.</li> <li><code>ONLY_USER_MEMORI_ON_DEFAULT_ONLY_DT_PURPOSE</code>: the configuration is applied to user's Memori objects with the default configuration, for Deep Thought purpose only.</li> <li><code>ONLY_USER_MEMORI_ON_DEFAULT_ALL_ENABLED_PURPOSES</code>: the configuration is applied to user's Memori objects with the default configuration, for all enabled purposes.</li> <li><code>ALL_USER_MEMORI_ONLY_QA_PURPOSE</code>: the configuration is applied to all user's Memori objects, for Question &amp; Answer purpose only.</li> <li><code>ALL_USER_MEMORI_ONLY_IE_PURPOSE</code>: the configuration is applied to all user's Memori objects, for Import/Export purpose only.</li> <li><code>ALL_USER_MEMORI_ONLY_DT_PURPOSE</code>: the configuration is applied to all user's Memori objects, for Deep Thought purpose only.</li> <li><code>ALL_USER_MEMORI_ALL_ENABLED_PURPOSES</code>: the configuration is applied to all user's Memori objects, for all enabled purposes.</li> <li><code>ONLY_TENANT_MEMORI_ON_DEFAULT_ONLY_QA_PURPOSE</code>: the configuration is applied to the Tenant's Memori objects with the default configuration, for Question &amp; Answer purpose only.</li> <li><code>ONLY_TENANT_MEMORI_ON_DEFAULT_ONLY_IE_PURPOSE</code>: the configuration is applied to the Tenant's Memori objects with the default configuration, for Import/Export purpose only.</li> <li><code>ONLY_TENANT_MEMORI_ON_DEFAULT_ONLY_DT_PURPOSE</code>: the configuration is applied to the Tenant's Memori objects with the default configuration, for Deep Thought purpose only.</li> <li><code>ONLY_TENANT_MEMORI_ON_DEFAULT_ALL_ENABLED_PURPOSES</code>: the configuration is applied to the Tenant's Memori objects with the default configuration, for all enabled purposes.</li> <li><code>ALL_TENANT_MEMORI_ONLY_QA_PURPOSE</code>: the configuration is applied to all the Tenant's Memori objects, for Question &amp; Answer purpose only.</li> <li><code>ALL_TENANT_MEMORI_ONLY_IE_PURPOSE</code>: the configuration is applied to all the Tenant's Memori objects, for Import/Export purpose only.</li> <li><code>ALL_TENANT_MEMORI_ONLY_DT_PURPOSE</code>: the configuration is applied to all the Tenant's Memori objects, for Deep Thought purpose only.</li> <li><code>ALL_TENANT_MEMORI_ALL_ENABLED_PURPOSES</code>: the configuration is applied to all the Tenant's Memori objects, for all enabled purposes.</li> </ul>","nullable":true}},"additionalProperties":false,"description":"Specifications of a Completion Config object."}}}}
````

## The GetIntegrationResponse object

````json
{"openapi":"3.0.1","info":{"title":"Memori.ai Web API V2","version":"v2"},"components":{"schemas":{"GetIntegrationResponse":{"type":"object","properties":{"integration":{"$ref":"#/components/schemas/IntegrationSpecs"},"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 reponse.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous reponse.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is indicative of the actual\r\nerror.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response of a Get Integration request."},"IntegrationSpecs":{"type":"object","properties":{"integrationID":{"type":"string","description":"Integration ID. Unique and assigned by the system.\r\nReturned during Registration and Get operations.\r\nIgnored in other cases.","nullable":true},"memoriID":{"type":"string","description":"ID of the Memori object this Integration refers to.\r\nRequired during Registration operations. Returned during\r\nGet operations. Ignored in other cases.","nullable":true},"type":{"type":"string","description":"Type of this integration (Google, Alexa, landing home page, etc.). Required during Registration operations. Returned during Get operations. Ignored in other cases. <br> May be one of the following:<ul> <li><code>GOOGLE</code>: a Google Home integration</li> <li><code>ALEXA</code>: an Amazon Alexa integration</li> <li><code>LANDING_EXPERIENCE</code>: a public Memori home page and landing experience</li> </ul>","nullable":true},"state":{"type":"string","description":"Current state of deployment this integration. Returned during Registration and Get operations. Ignored in other cases. <br> May be one of the following:<ul> <li><code>NEW</code></li> <li><code>PROCESSING</code></li> <li><code>DONE</code></li> <li><code>REMOVED</code></li> <li><code>ERROR</code></li> <li><code>WAITING_MANUAL_ACTION</code></li> <li><code>DRAFT</code></li> <li><code>NOT_VALIDATED</code></li> <li><code>PUBLISHED</code></li> </ul>","nullable":true},"deviceEmails":{"type":"array","items":{"type":"string"},"description":"List of e-mails associated with on-device accounts.\r\nUsed during Registration and Update operations for\r\nintegration types ```GOOGLE``` and ```ALEXA```.\r\nReturned during Get operations.\r\nIgnored in other cases.","nullable":true},"invocationText":{"type":"string","description":"Text to be spoken to invoke the integration.\r\nMay be used during Registration and Update operations for\r\nintegration types ```GOOGLE``` and ```ALEXA```.\r\nReturned during Get operations.\r\nIgnored in other cases.","nullable":true},"jobID":{"type":"string","description":"ID of the deployment job of this integration.\r\nReturned during Registration and Get operations.\r\nIgnored in other cases.","nullable":true},"customData":{"type":"string","description":"JSON structure containing the data specific for this type of\r\nintegration. May be used during Registration and Update operations,\r\ndepending on the integration type.\r\nReturned during Get operations.\r\nIgnored in other cases.","nullable":true},"resources":{"type":"array","items":{"$ref":"#/components/schemas/IntegrationResourceSpecs"},"description":"Additional resources need by, or returned by, the deployment job.\r\nMay be used during Registration and Update operations, depending\r\non the integration type.\r\nReturned during Get operations.\r\nIgnored in other cases.","nullable":true},"publish":{"type":"boolean","description":"If set to True, the integration will be published on the\r\ncorresponding environment (e.g. on Amazon Alexa or Google Home)\r\nto the general public. If False the integration will remain\r\navailable only for testing.\r\nUsed during Update operations. Returned during Get operations.\r\nIgnored in other cases.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true}},"additionalProperties":false,"description":"Specifications of an Integration object."},"IntegrationResourceSpecs":{"type":"object","properties":{"name":{"type":"string","description":"Resource name.","nullable":true},"url":{"type":"string","description":"Resource URL.","nullable":true}},"additionalProperties":false,"description":"Specifications of an Integration Resource object."}}}}
````

## The GetInvitationResponse object

````json
{"openapi":"3.0.1","info":{"title":"Memori.ai Web API V2","version":"v2"},"components":{"schemas":{"GetInvitationResponse":{"type":"object","properties":{"invitation":{"$ref":"#/components/schemas/InvitationSpecs"},"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 reponse.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous reponse.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is indicative of the actual\r\nerror.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response of a Get Invitation request."},"InvitationSpecs":{"type":"object","properties":{"invitationID":{"type":"string","description":"ID of this Invitation object. Unique and assigned by the system.\r\nReturned during Send and Get operations.\r\nIgnored in other cases.","nullable":true},"memoriID":{"type":"string","description":"ID of the Memori object this Invitation refers to.\r\nRequired during Send operations. Returned during\r\nGet operations. Ignored in other cases.","nullable":true},"engineMemoriID":{"type":"string","description":"ID of the Memori object on the Memori Engine.\r\nReturned during Get operations. Ignored in other cases.","nullable":true},"isInviter":{"type":"boolean","description":"True if the requesting User sent this Invitation, and as\r\nsuch has admin (update and delete) access to this Invitation.\r\nReturned during Get operations. Ignored in other cases."},"isInvitee":{"type":"boolean","description":"True if the requesting User received this Invitation, and as\r\nsuch has accept/reject access to this Invitation.\r\nReturned during Get operations. Ignored in other cases."},"text":{"type":"string","description":"Text of this Invitation. Optional during Send operations.\r\nUsed in Update operations. Returned during Get operations.\r\nIgnored in other cases.","nullable":true},"destinationName":{"type":"string","description":"Name of the person to whom this Invitation is addressed.\r\nRequired during Send operations. Returned during Get operations.\r\nIgnored in other cases.","nullable":true},"destinationEMail":{"type":"string","description":"E-mail address to which this Invitation is addressed.\r\nRequired during Send operations. Returned during Get operations.\r\nIgnored in other cases.","nullable":true},"dontSendInvitationEmail":{"type":"boolean","description":"Flag to avoid sending the Invitation e-mail.\r\nOptional during Send operations.\r\nIgnored in other cases.","nullable":true},"tag":{"type":"string","description":"Tag associated with this Invitation. Typically an emoji symbol.\r\nRequired during Send operations. Returned during Get operations,\r\nbut visible to invitee only if the invitation has been accepted.\r\nIgnored in other cases.","nullable":true},"pin":{"type":"string","description":"PIN, or personal identification number, associated with this Invitation. Required during Send operations. Returned during Get operations, but visible to invitee only if the invitation has been accepted. Ignored in other cases. <br> Format is six digits integer number, eg. <code>012345</code>.","nullable":true},"type":{"type":"string","description":"Type of this Invitation (giver, receiver etc.). Required during Send operations. Returned during Get operations. Ignored in other cases. <br> May be one of the following:<ul> <li><code>GIVER</code>: the Giver is the unique owner, administrator and content manager of a Memori</li> <li><code>RECEIVER</code>: a Receiver is a named User that can access all the public content of a Memori, plus some specific content targeted specifically at them</li> </ul>","nullable":true},"state":{"type":"string","description":"State of this Invitation (pending, accepted, rejected etc.). Returned during Get operations. Ignored in other cases. <br> May be one of the following:<ul> <li><code>PENDING</code>: the Invitation has just been sent and no action has been perfomed yet</li> <li><code>ACCEPTED</code>: the destination of this Invitation has accepted it</li> <li><code>REJECTED</code>: the destination of this Invitation has rejected it</li> </ul>","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true}},"additionalProperties":false,"description":"Specifications of an Invitation object."}}}}
````

## The GetMemoriResponse object

````json
{"openapi":"3.0.1","info":{"title":"Memori.ai Web API V2","version":"v2"},"components":{"schemas":{"GetMemoriResponse":{"type":"object","properties":{"memori":{"$ref":"#/components/schemas/MemoriSpecs"},"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 reponse.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous reponse.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is indicative of the actual\r\nerror.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response of a Get Memori request."},"MemoriSpecs":{"type":"object","properties":{"memoriID":{"type":"string","description":"Memori ID. Unique and assigned by the system.\r\nReturned during Registration and Get operations.\r\nUsed in Update, Transfer and Delete operations.\r\nIgnored in other cases.","nullable":true},"name":{"type":"string","description":"Memori name. Required during Registration operations.\r\nUsed during Update operations. Returned during Get operations.","nullable":true},"password":{"type":"string","description":"Password. Required during Registration operations. May be required during Update operations. Ignored in other cases. <br> Must be provided in the following cases:<ul> <li>When PrivacyType is <code>SECRET</code>: during Registration and Update operations, and it can be any non-empty string</li> <li>When PrivacyType is <code>PRIVATE</code>: only during Update operations, and it must be set with the SecretToken provided during registration</li> </ul>","nullable":true},"recoveryTokens":{"type":"array","items":{"type":"string"},"description":"Recovery tokens. Returned during Registration operations if the\r\nMemori Privacy Type is set to ```SECRET``` and a\r\nTotalNumberOfRecoveryTokens is greater than 0.\r\nIgnored in other cases.","nullable":true},"newPassword":{"type":"string","description":"New password. Used during Update operations. Ignored in other cases. <br> Can be provided in the following case:<ul> <li>When PrivacyType is <code>SECRET</code>: during Update operations, and it can be any non-empty string</li> </ul>","nullable":true},"ownerUserID":{"type":"string","description":"ID of the User this Memori belongs to.\r\nReturned during Registration and Get operations.\r\nUsed in Transfer operation.\r\nIgnored in other cases.","nullable":true},"ownerUserName":{"type":"string","description":"Name of the User this Memori belongs to.\r\nReturned during Registration and Get operations.\r\nUsed in Transfer operation.\r\nIgnored in other cases.","nullable":true},"ownerTenantName":{"type":"string","description":"Name of the Tenant of the User this Memori belongs to.\r\nReturned during Registration and Get operations.\r\nUsed in Transfer operation.\r\nIgnored in other cases.","nullable":true},"memoriConfigurationID":{"type":"string","description":"Memori configuration ID. Required during Registration.\r\nReturned during Get operations.","nullable":true},"description":{"type":"string","description":"Memori description. Required during Registration and Update\r\noperations. Returned during Get operations.","nullable":true},"completionDescription":{"type":"string","description":"Memori description for completions. If specified, it is used in\r\nplace of ```Description``` when obtaining a completion\r\nvia a generative AI.\r\nMay be specified during Registration and Update operations.\r\nReturned during Get operations.","nullable":true},"dtDescription":{"type":"string","description":"Memori description for Deep Thought. If specified, it is used in\r\nplace of ```CompletionDescription``` or ```Description```\r\nwhen performing Deep Thought operations.\r\nMay be specified during Registration and Update operations.\r\nReturned during Get operations.","nullable":true},"engineMemoriID":{"type":"string","description":"ID of the corresponding object on the Memori Engine.\r\nReturned during Get operations. Ignored in other cases.","nullable":true},"isOwner":{"type":"boolean","description":"True if the requesting User is the owner of this Memori, and as\r\nsuch has admin (update and delete) access to this Memori.\r\nReturned during Get operations. Ignored in other cases."},"isGiver":{"type":"boolean","description":"True if the requesting User has Giver (full read and write) access \r\nto this Memori. Returned during Get operations.\r\nIgnored in other cases."},"isReceiver":{"type":"boolean","description":"True if the requesting User has Receiver (special read only) access \r\nto this Memori. Returned during Get operations.\r\nIgnored in other cases."},"giverTag":{"type":"string","description":"The tag of the Giver of this Memori. Returned during Registration and Get operations. Used Update operations. Ignored in other cases. <br> It is present only if this Memori belongs to the logged in User.","nullable":true},"giverPIN":{"type":"string","description":"The PIN of the Giver of this Memori. Returned during Registration and Get operations. Used Update operations. Ignored in other cases. <br> It is present only if this Memori belongs to the logged in User.","nullable":true},"privacyType":{"type":"string","description":"Type of privacy setting for this Memori (private, public or secret). Required during Registration operations. Used during Update operations. Returned during Get operations. <br> May be one of the following:<ul> <li><code>PUBLIC</code>: this Memori is not encrypted, has no password and is accessible to everyone</li> <li><code>PRIVATE</code>: this Memori is not encrypted, has a system-generated Secret Token as password and can be accessed only by providing it</li> <li><code>SECRET</code>: this Memori is encrypted, has a user-defined password and can be accessed only by providing it</li> </ul>","nullable":true},"secretToken":{"type":"string","description":"Secret Token. Assigned by the system. Must be used as Password when the PrivacyType is <code>PRIVATE</code>. Returned during Open Session and Get operations. May be required during Update operations. Ignored in other cases. <br> It is present only if this Memori is accessible to the logged in User (e.g. they are the owner, a legitimate Giver or Receiver, or an Admin/SuperAdmin) and its Privacy Type is set to <code>PRIVATE</code>.","nullable":true},"minimumNumberOfRecoveryTokens":{"type":"integer","description":"Minium number of recovery tokens. Recovery tokens allow to access a secret Memori when its original password has been lost. May be provided during Registration operations. Returned during Get operations. Ignored in other cases. <br> It is present only if this Memori belongs to the logged in User and its Privacy Type is set to <code>SECRET</code>.","format":"int32","nullable":true},"totalNumberOfRecoveryTokens":{"type":"integer","description":"Total number of recovery tokens. Recovery tokens allow to access\r\na secret Memori when its original password has been lost. If set,\r\na set of recovery tokens will be generated and returned after\r\nRegistration completes.","format":"int32","nullable":true},"sentInvitations":{"type":"array","items":{"$ref":"#/components/schemas/InvitationSpecs"},"description":"List of Invitation objects sent for this Memori. Returned during Get operations. Ignored in other cases. <br> It is present only if this Memori belongs to the logged in User.","nullable":true},"receivedInvitations":{"type":"array","items":{"$ref":"#/components/schemas/InvitationSpecs"},"description":"List of Invitation objects received for this Memori. Returned during Get operations. Ignored in other cases. <br> It is present only if this Memori is accessible to the logged in User (e.g. they are the owner or a legitimate Giver or Receiver).","nullable":true},"integrations":{"type":"array","items":{"$ref":"#/components/schemas/IntegrationSpecs"},"description":"List of Integration objects associated with this Memori.\r\nRetured during Get operations. Ignored in other cases.","nullable":true},"avatarURL":{"type":"string","description":"URL of the avatar image represting this Memori object.\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.","nullable":true},"coverURL":{"type":"string","description":"URL of the cover image represting this Memori object.\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.","nullable":true},"avatar3DURL":{"type":"string","description":"URL of the avatar 3D model represting this Memori object.\r\nIt is obtained from the CustomData property of the public home page\r\nIntegration object for this Memori, if present. To be changed, the\r\nIntegration object must be changed.\r\nReturned during Get operations. Ignored in other cases.","nullable":true},"avatarOriginal3DURL":{"type":"string","description":"Original URL of the avatar 3D model represting this Memori object.\r\nIt is obtained from the CustomData property of the public home page\r\nIntegration object for this Memori, if present. To be changed, the\r\nIntegration object must be changed.\r\nReturned during Get operations. Ignored in other cases.","nullable":true},"needsPosition":{"type":"boolean","description":"True if this Memori requires positioning to be accessed.\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.","nullable":true},"needsDateTime":{"type":"boolean","description":"True if this Memori requires current date/time to be accessed.\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.","nullable":true},"voiceType":{"type":"string","description":"Type of voice for this Memori (male or female). May be provided during Registration and Update operations. Returned during Get operations. <br> Can be one of the following:<ul> <li><code>MALE</code>: standard male voice</li> <li><code>FEMALE</code>: standard female voice</li> </ul>","nullable":true},"culture":{"type":"string","description":"Culture for dialogs and natural language processing of this Memori. Returned during Get operations. Ignored in other cases. <br> Currently supported cultures are:<ul> <li><code>it-IT</code></li> <li><code>en-US</code></li> </ul>","nullable":true},"categories":{"type":"array","items":{"type":"string"},"description":"Categories (or tags) associated with this Memori.\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.","nullable":true},"nsfw":{"type":"boolean","description":"True if this Memori content must be considered\r\nnot safe for minors of working environments.\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.","nullable":true},"requireLoginToken":{"type":"boolean","description":"When True, a Giver Tag/Pin or a valid login token is needed to open a session","nullable":true},"ageRestriction":{"type":"integer","description":"The minimum age required to open a session to this Memori.\r\nReturned during Get operations.\r\nIgnored in other cases.","format":"int32"},"exposed":{"type":"boolean","description":"True if this Memori must be exposed on the homepage\r\nof its corresponding owner User's tenant.\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.","nullable":true},"mobile":{"type":"boolean","description":"True if this Memori must be accessible from the mobile app.\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.","nullable":true},"confidenceOffset":{"type":"number","description":"The offset to be applied to confidence levels.\r\nTypically, in the range from -0.02 to 0.02.","format":"float","nullable":true},"disableR2R3Loop":{"type":"boolean","description":"True if this Memori must skip the R2-R3 loop, \r\ni.e. must consider medium confidence answers as high confidence\r\nanswers in R1.\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.","nullable":true},"disableR4Loop":{"type":"boolean","description":"True if this Memori must skip the R4 loop,\r\ni.e. must not propose randomly picked contents when a Time Out\r\nevent is received in R1.\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.","nullable":true},"disableR5Loop":{"type":"boolean","description":"True if this Memori must skip the R5 loop,\r\ni.e. must not accept the \"not what I asked\" intent in R1.\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.","nullable":true},"scorm":{"type":"boolean","description":"True if this Memori is a SCORM agent (subject to MemoriAi.WebApi.ModelV2.TenantSpecs.MaxScormMemori when billing is not delegated).\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.","nullable":true},"enableCompletions":{"type":"boolean","description":"True if this Memori must try to answer using completions from a\r\nLarge Language Model, if available, when no other answers are\r\navailable.","nullable":true},"enableDeepThought":{"type":"boolean","description":"If set to ```True``` this Memori will collect known facts about the user\r\non a special long term memory and makes use of it to improve the conversation.\r\nRequires ```EnableCompletions``` to be set to ```True``` to work appropriately.","nullable":true},"alwaysAnswerWithCompletion":{"type":"boolean","description":"If set to ```True``` this Memori will always try to answer with a completion.\r\nMemory objects will be used for generative AI prompting, but not for direct answers.\r\nRequires ```EnableCompletions``` to be set to ```True``` to work appropriately.\r\nCan't be used in conjunction with the ```Chaining``` feature.\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.","nullable":true},"disableCompletionMediaExtraction":{"type":"boolean","description":"If set to ```True``` this Memori will not try to extract related media\r\nwhen generating a response through a completion with generative AI.\r\nThis flag has no effect to user-generated content: attached media will always be provided.\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.","nullable":true},"disableAIContentCollection":{"type":"boolean","description":"If set to ```True``` this Memori does not collect AI-generated content\r\n(CompletionDraft memories) and unanswered questions.","nullable":true},"completionConfigNameForQuestionAnswering":{"type":"string","description":"Name of the Completion Configuration used for Question Answering\r\nwith a Large Language Model. If null the default is used.\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.\r\nWhen updating, set it to a single dash character (```-```) to \r\nremove a previously set configuration.","nullable":true},"completionConfigForQuestionAnswering":{"$ref":"#/components/schemas/CompletionConfigSpecs"},"completionConfigNameForImportExport":{"type":"string","description":"Name of the Completion Configuration used for Import/Export\r\nwith a Large Language Model. If null the default is used.\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.\r\nWhen updating, set it to a single dash character (```-```) to \r\nremove a previously set configuration.","nullable":true},"completionConfigForImportExport":{"$ref":"#/components/schemas/CompletionConfigSpecs"},"completionConfigNameForDeepThought":{"type":"string","description":"Name of the Completion Configuration used for Deep Thought.\r\nIf null the default is used.\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.\r\nWhen updating, set it to a single dash character (```-```) to \r\nremove a previously set configuration.","nullable":true},"completionConfigForDeepThought":{"$ref":"#/components/schemas/CompletionConfigSpecs"},"completionTemperature":{"type":"number","description":"Temperature for Completions.\r\nIf not set a default is used.\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.","format":"float","nullable":true},"completionMaxTokens":{"type":"integer","description":"Maximum number of output tokens for Completions.\r\nIf not set a default is used.\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.","format":"int32","nullable":true},"chainingMemoriID":{"type":"string","description":"Optional Engine ID of a chained Memori. If set, any time this Memori\r\ncan't find an answer to a question, it will try to ask to the chained Memori.\r\nThe chained Memori will then answer and transparently handle the subsequent dialog.\r\nThe user will not be aware of chaining.\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.\r\nWhen updating, set it to a single dash character (```-```) to \r\nremove a previously set chaining.","nullable":true},"chainingBaseURL":{"type":"string","description":"Optional base URL of a chained Memori, typically ```https://engine.memori.ai/```.\r\nRequired if ChainingMemoriID is set.\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.","nullable":true},"chainingPassword":{"type":"string","description":"Password of the chained Memori. Required if ChainingMemoriID is set.\r\nMay be provided during Registration and Update operations.\r\nIgnored in other cases.","nullable":true},"enableBoardOfExperts":{"type":"boolean","description":"If set to ```True``` this Memori will act as the chairman of\r\na board of experts, i.e. for each question will determine which expert\r\nis competent and forward the question to it.\r\nAt least an Expert Reference must then be provided for this feature to activate.","nullable":true},"enableMacroFunctions":{"type":"array","items":{"type":"string"},"description":"List of Macro Function names enabled for this Memori. <br> Currently available Macro Functions are:<ul> <li><code>Wikipedia</code>: adds functions to search for a topic on Wikipedia</li> <li><code>URLCrawling</code>: adds functions to crawl a web page</li> <li><code>ContextVariables</code>: adds functions to manage context variables</li> </ul>","nullable":true},"macroParameters":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"Key-value pairs with values for macro-parameters of enabled Macro Functions.","nullable":true},"dcmUser":{"type":"string","description":"User name of the optional integration with the DCM platform.\r\nIf set, this Memori will be able send outcomes to the DCM platform\r\nwhen specific contents are emitted during the conversation.\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.\r\nWhen updating, set it to a single dash character (```-```) to \r\nremove a previously set integration.","nullable":true},"dcmSecret":{"type":"string","description":"Shared secret of the optional integration with the DCM platform.\r\nRequired if DCMUser is set.\r\nMay be provided during Registration and Update operations.\r\nIgnored in other cases.","nullable":true},"dcmAppContext":{"type":"string","description":"Application context of the optional integration with the DCM platform.\r\nRequired if DCMUser is set.\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.","nullable":true},"blockedUntil":{"type":"string","description":"Administrative block end date. Null if no administrative block is\r\nin effect. During an administrative block a Memori can be edited\r\nwith a Giver session, but not accessed with an anonymous or\r\nReceiver session.","format":"date-time","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true}},"additionalProperties":false,"description":"Specifications of a Memori object."},"InvitationSpecs":{"type":"object","properties":{"invitationID":{"type":"string","description":"ID of this Invitation object. Unique and assigned by the system.\r\nReturned during Send and Get operations.\r\nIgnored in other cases.","nullable":true},"memoriID":{"type":"string","description":"ID of the Memori object this Invitation refers to.\r\nRequired during Send operations. Returned during\r\nGet operations. Ignored in other cases.","nullable":true},"engineMemoriID":{"type":"string","description":"ID of the Memori object on the Memori Engine.\r\nReturned during Get operations. Ignored in other cases.","nullable":true},"isInviter":{"type":"boolean","description":"True if the requesting User sent this Invitation, and as\r\nsuch has admin (update and delete) access to this Invitation.\r\nReturned during Get operations. Ignored in other cases."},"isInvitee":{"type":"boolean","description":"True if the requesting User received this Invitation, and as\r\nsuch has accept/reject access to this Invitation.\r\nReturned during Get operations. Ignored in other cases."},"text":{"type":"string","description":"Text of this Invitation. Optional during Send operations.\r\nUsed in Update operations. Returned during Get operations.\r\nIgnored in other cases.","nullable":true},"destinationName":{"type":"string","description":"Name of the person to whom this Invitation is addressed.\r\nRequired during Send operations. Returned during Get operations.\r\nIgnored in other cases.","nullable":true},"destinationEMail":{"type":"string","description":"E-mail address to which this Invitation is addressed.\r\nRequired during Send operations. Returned during Get operations.\r\nIgnored in other cases.","nullable":true},"dontSendInvitationEmail":{"type":"boolean","description":"Flag to avoid sending the Invitation e-mail.\r\nOptional during Send operations.\r\nIgnored in other cases.","nullable":true},"tag":{"type":"string","description":"Tag associated with this Invitation. Typically an emoji symbol.\r\nRequired during Send operations. Returned during Get operations,\r\nbut visible to invitee only if the invitation has been accepted.\r\nIgnored in other cases.","nullable":true},"pin":{"type":"string","description":"PIN, or personal identification number, associated with this Invitation. Required during Send operations. Returned during Get operations, but visible to invitee only if the invitation has been accepted. Ignored in other cases. <br> Format is six digits integer number, eg. <code>012345</code>.","nullable":true},"type":{"type":"string","description":"Type of this Invitation (giver, receiver etc.). Required during Send operations. Returned during Get operations. Ignored in other cases. <br> May be one of the following:<ul> <li><code>GIVER</code>: the Giver is the unique owner, administrator and content manager of a Memori</li> <li><code>RECEIVER</code>: a Receiver is a named User that can access all the public content of a Memori, plus some specific content targeted specifically at them</li> </ul>","nullable":true},"state":{"type":"string","description":"State of this Invitation (pending, accepted, rejected etc.). Returned during Get operations. Ignored in other cases. <br> May be one of the following:<ul> <li><code>PENDING</code>: the Invitation has just been sent and no action has been perfomed yet</li> <li><code>ACCEPTED</code>: the destination of this Invitation has accepted it</li> <li><code>REJECTED</code>: the destination of this Invitation has rejected it</li> </ul>","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true}},"additionalProperties":false,"description":"Specifications of an Invitation object."},"IntegrationSpecs":{"type":"object","properties":{"integrationID":{"type":"string","description":"Integration ID. Unique and assigned by the system.\r\nReturned during Registration and Get operations.\r\nIgnored in other cases.","nullable":true},"memoriID":{"type":"string","description":"ID of the Memori object this Integration refers to.\r\nRequired during Registration operations. Returned during\r\nGet operations. Ignored in other cases.","nullable":true},"type":{"type":"string","description":"Type of this integration (Google, Alexa, landing home page, etc.). Required during Registration operations. Returned during Get operations. Ignored in other cases. <br> May be one of the following:<ul> <li><code>GOOGLE</code>: a Google Home integration</li> <li><code>ALEXA</code>: an Amazon Alexa integration</li> <li><code>LANDING_EXPERIENCE</code>: a public Memori home page and landing experience</li> </ul>","nullable":true},"state":{"type":"string","description":"Current state of deployment this integration. Returned during Registration and Get operations. Ignored in other cases. <br> May be one of the following:<ul> <li><code>NEW</code></li> <li><code>PROCESSING</code></li> <li><code>DONE</code></li> <li><code>REMOVED</code></li> <li><code>ERROR</code></li> <li><code>WAITING_MANUAL_ACTION</code></li> <li><code>DRAFT</code></li> <li><code>NOT_VALIDATED</code></li> <li><code>PUBLISHED</code></li> </ul>","nullable":true},"deviceEmails":{"type":"array","items":{"type":"string"},"description":"List of e-mails associated with on-device accounts.\r\nUsed during Registration and Update operations for\r\nintegration types ```GOOGLE``` and ```ALEXA```.\r\nReturned during Get operations.\r\nIgnored in other cases.","nullable":true},"invocationText":{"type":"string","description":"Text to be spoken to invoke the integration.\r\nMay be used during Registration and Update operations for\r\nintegration types ```GOOGLE``` and ```ALEXA```.\r\nReturned during Get operations.\r\nIgnored in other cases.","nullable":true},"jobID":{"type":"string","description":"ID of the deployment job of this integration.\r\nReturned during Registration and Get operations.\r\nIgnored in other cases.","nullable":true},"customData":{"type":"string","description":"JSON structure containing the data specific for this type of\r\nintegration. May be used during Registration and Update operations,\r\ndepending on the integration type.\r\nReturned during Get operations.\r\nIgnored in other cases.","nullable":true},"resources":{"type":"array","items":{"$ref":"#/components/schemas/IntegrationResourceSpecs"},"description":"Additional resources need by, or returned by, the deployment job.\r\nMay be used during Registration and Update operations, depending\r\non the integration type.\r\nReturned during Get operations.\r\nIgnored in other cases.","nullable":true},"publish":{"type":"boolean","description":"If set to True, the integration will be published on the\r\ncorresponding environment (e.g. on Amazon Alexa or Google Home)\r\nto the general public. If False the integration will remain\r\navailable only for testing.\r\nUsed during Update operations. Returned during Get operations.\r\nIgnored in other cases.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true}},"additionalProperties":false,"description":"Specifications of an Integration object."},"IntegrationResourceSpecs":{"type":"object","properties":{"name":{"type":"string","description":"Resource name.","nullable":true},"url":{"type":"string","description":"Resource URL.","nullable":true}},"additionalProperties":false,"description":"Specifications of an Integration Resource object."},"CompletionConfigSpecs":{"type":"object","properties":{"completionConfigID":{"type":"string","description":"Completion Config object ID.\r\nReturned during Get operations.\r\nIgnored in other cases.","nullable":true},"configName":{"type":"string","description":"Completion Config unique name.\r\nRequired during Creation operations.\r\nUsed during Update operations.\r\nReturned during Get operations.","nullable":true},"description":{"type":"string","description":"Optional Completion Config description.\r\nUsed during Creation operations and Update.\r\nReturned during Get operations.","nullable":true},"provider":{"type":"string","description":"Name of the Completion Provider. Required during Creation operations. Used during Update operations. Returned during Get operations. <br> Currently possible values are:<ul> <li><code>OpenAI</code></li> <li><code>Anthropic</code></li> <li><code>Mistral</code></li> <li><code>Azure_OpenAI</code></li> <li><code>Custom_OpenAI</code></li> </ul>","nullable":true},"endPoint":{"type":"string","description":"URL of the Completion Provider API end-point.\r\nUsed during Creation operations and Update.\r\nReturned during Get operations.","nullable":true},"apiKey":{"type":"string","description":"API key of the Completion Provider API end-point.\r\nRequired during Creation operations (optional for Custom_OpenAI provider).\r\nUsed during Update operations.\r\nReturned during Get operations as an obfuscated value.","nullable":true},"model":{"type":"string","description":"Name of the Completion Model. This is provider-specific,\r\nand for some providers (e.g. Azure) it is also part of\r\nthe end-point URL.\r\nRequired during Creation operations.\r\nUsed during Update operations.\r\nReturned during Get operations.","nullable":true},"questionAnsweringEnabled":{"type":"boolean","description":"If True this configuration can be used for Question & Answer operations.\r\nIf not specified False is assumed. At least one use must be enabled.\r\nUsed during Creation operations and Update operations.\r\nReturned during Get operations.","nullable":true},"importExportEnabled":{"type":"boolean","description":"If True this configuration can be used for Import/Export operations. \r\nIf not specified False is assumed. At least one use must be enabled.\r\nUsed during Creation operations and Update operations.\r\nReturned during Get operations.","nullable":true},"deepThoughtEnabled":{"type":"boolean","description":"If True this configuration can be used for Deep Thought operations. \r\nIf not specified False is assumed. At least one use must be enabled.\r\nUsed during Creation operations and Update operations.\r\nReturned during Get operations.","nullable":true},"ownerUserID":{"type":"string","description":"ID of the User this Config belongs to.\r\nReturned during Get operations if the user is the owner or an administrator.\r\nIgnored in other cases.","nullable":true},"ownerUserName":{"type":"string","description":"Name of the User this Config belongs to.\r\nReturned during Get operations.\r\nIgnored in other cases.","nullable":true},"ownerTenantName":{"type":"string","description":"Name of the Tenant of the User this Config belongs to.\r\nReturned during Get operations.\r\nIgnored in other cases.","nullable":true},"visibleToTenantUsers":{"type":"boolean","description":"If True this configuration can be used by other users of the owner's Tenant.\r\nIf not specified False is assumed.\r\nUsed during Creation operations and Update operations.\r\nReturned during Get operations.","nullable":true},"visibleToOtherUsers":{"type":"boolean","description":"If True this configuration can be used by users of other Tenants.\r\nIf not specified False is assumed.\r\nUsed during Creation operations and Update operations.\r\nReturned during Get operations.","nullable":true},"useAsDefault":{"type":"boolean","description":"If True this configuration is used as the default (for the operations it is enabled for)\r\nwhen a new Memori is created. The use as default requires that the configuration is visible\r\nat least to the owner's Tenant users.\r\nUsed during Creation operations and Update operations.\r\nReturned during Get operations.","nullable":true},"chargeable":{"type":"boolean","description":"If True the use of this configuration is chargeable to the customer.","nullable":true},"applyTo":{"type":"string","description":"During Creation and Update operations, when set forces this configuration to be applied to the specified Memori objects and purposes. Ignored during Get operations. <br> Can be one of the following:<ul> <li><code>ONLY_USER_MEMORI_ON_DEFAULT_ONLY_QA_PURPOSE</code>: the configuration is applied to user's Memori objects with the default configuration, for Question &amp; Answer purpose only.</li> <li><code>ONLY_USER_MEMORI_ON_DEFAULT_ONLY_IE_PURPOSE</code>: the configuration is applied to user's Memori objects with the default configuration, for Import/Export purpose only.</li> <li><code>ONLY_USER_MEMORI_ON_DEFAULT_ONLY_DT_PURPOSE</code>: the configuration is applied to user's Memori objects with the default configuration, for Deep Thought purpose only.</li> <li><code>ONLY_USER_MEMORI_ON_DEFAULT_ALL_ENABLED_PURPOSES</code>: the configuration is applied to user's Memori objects with the default configuration, for all enabled purposes.</li> <li><code>ALL_USER_MEMORI_ONLY_QA_PURPOSE</code>: the configuration is applied to all user's Memori objects, for Question &amp; Answer purpose only.</li> <li><code>ALL_USER_MEMORI_ONLY_IE_PURPOSE</code>: the configuration is applied to all user's Memori objects, for Import/Export purpose only.</li> <li><code>ALL_USER_MEMORI_ONLY_DT_PURPOSE</code>: the configuration is applied to all user's Memori objects, for Deep Thought purpose only.</li> <li><code>ALL_USER_MEMORI_ALL_ENABLED_PURPOSES</code>: the configuration is applied to all user's Memori objects, for all enabled purposes.</li> <li><code>ONLY_TENANT_MEMORI_ON_DEFAULT_ONLY_QA_PURPOSE</code>: the configuration is applied to the Tenant's Memori objects with the default configuration, for Question &amp; Answer purpose only.</li> <li><code>ONLY_TENANT_MEMORI_ON_DEFAULT_ONLY_IE_PURPOSE</code>: the configuration is applied to the Tenant's Memori objects with the default configuration, for Import/Export purpose only.</li> <li><code>ONLY_TENANT_MEMORI_ON_DEFAULT_ONLY_DT_PURPOSE</code>: the configuration is applied to the Tenant's Memori objects with the default configuration, for Deep Thought purpose only.</li> <li><code>ONLY_TENANT_MEMORI_ON_DEFAULT_ALL_ENABLED_PURPOSES</code>: the configuration is applied to the Tenant's Memori objects with the default configuration, for all enabled purposes.</li> <li><code>ALL_TENANT_MEMORI_ONLY_QA_PURPOSE</code>: the configuration is applied to all the Tenant's Memori objects, for Question &amp; Answer purpose only.</li> <li><code>ALL_TENANT_MEMORI_ONLY_IE_PURPOSE</code>: the configuration is applied to all the Tenant's Memori objects, for Import/Export purpose only.</li> <li><code>ALL_TENANT_MEMORI_ONLY_DT_PURPOSE</code>: the configuration is applied to all the Tenant's Memori objects, for Deep Thought purpose only.</li> <li><code>ALL_TENANT_MEMORI_ALL_ENABLED_PURPOSES</code>: the configuration is applied to all the Tenant's Memori objects, for all enabled purposes.</li> </ul>","nullable":true}},"additionalProperties":false,"description":"Specifications of a Completion Config object."}}}}
````

## The GetMemoriSessionsResponse object

````json
{"openapi":"3.0.1","info":{"title":"Memori.ai Web API V2","version":"v2"},"components":{"schemas":{"GetMemoriSessionsResponse":{"type":"object","properties":{"totalSessions":{"type":"integer","description":"The total number of sessions in the interval.","format":"int32"},"validSessions":{"type":"integer","description":"The number of valid sessions in the interval.\r\nA session is considered valid if there has been at least\r\na question posed to the Memori object.","format":"int32"},"requestID":{"type":"integer","description":"Progressive number of the request (since the Server started).\r\nUse this number, together with the RequestDateTime property,\r\nto report an anomalous reponse.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous reponse.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is indicative of the actual\r\nerror.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false}}}}
````

## The GetNotificationResponse object

````json
{"openapi":"3.0.1","info":{"title":"Memori.ai Web API V2","version":"v2"},"components":{"schemas":{"GetNotificationResponse":{"type":"object","properties":{"notification":{"$ref":"#/components/schemas/NotificationSpecs"},"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 reponse.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous reponse.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is indicative of the actual\r\nerror.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false},"NotificationSpecs":{"type":"object","properties":{"notificationID":{"type":"string","description":"Notificaiton ID. Unique and assigned by the system.","nullable":true},"timestamp":{"type":"string","description":"Timestamp UTC of the notification.","format":"date-time"},"severity":{"type":"string","description":"Severity level. <br> May be one of the following:<ul> <li><code>INFO</code>: the notification is an information</li> <li><code>AWARD</code>: the notification is an award</li> <li><code>BANNER</code>: the notification is a banner</li> <li><code>WARN</code>: the notification is a warning</li> <li><code>ALERT</code>: the notification is an alert</li> </ul>","nullable":true},"texts":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"Notification text, in different languages/cultures.\r\nThe key is the language/culture, e.g. \"en-US\" or \"it-IT\",\r\nand the value is the corresponding text.","nullable":true},"additionalInfo":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"Optional additional information, in the form of key-value pairs.","nullable":true},"type":{"type":"string","description":"Notification type. /// <br> May be one of the following:<ul> <li><code>BROADCAST</code>: the notification is a broadcast</li> <li><code>TENANT</code>: the notification is a tenant notification</li> <li><code>USER</code>: the notification is a user notification</li> </ul>","nullable":true},"tenant":{"type":"string","description":"Tenant ID of the notification.","nullable":true},"userName":{"type":"string","description":"The Username of the user that the notification is addressed to.","nullable":true},"validFrom":{"type":"string","description":"The date and time from which the notification is valid. <br> Used when creating and modifying the notification. Ignored otherwise.","format":"date-time","nullable":true},"validTo":{"type":"string","description":"The date and time until which the notification is valid. <br> Used when creating and modifying the notification. Ignored otherwise.","format":"date-time","nullable":true}},"additionalProperties":false,"description":"Specifications of a Notification object."}}}}
````

## The GetTenantResponse object

````json
{"openapi":"3.0.1","info":{"title":"Memori.ai Web API V2","version":"v2"},"components":{"schemas":{"GetTenantResponse":{"type":"object","properties":{"tenant":{"$ref":"#/components/schemas/TenantSpecs"},"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 reponse.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous reponse.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is indicative of the actual\r\nerror.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response of a Get Tenant request."},"TenantSpecs":{"type":"object","properties":{"tenantID":{"type":"string","description":"Tenant ID.\r\nReturned during Get operations.\r\nIgnored in other cases.","nullable":true},"name":{"type":"string","description":"Tenant name. Usually a host name, e.g. ```app.memorytwin.com```.\r\nReturned during Get operations.\r\nUsed during Duplicate operations.\r\nIgnored in other cases.","nullable":true},"aliases":{"type":"array","items":{"type":"string"},"description":"Additional Tenant names. Usually host names, e.g. ```app.memorytwin.com```.\r\nReturned during Get operations.\r\nUsed during Update operations.\r\nIgnored in other cases.","nullable":true},"tenantType":{"type":"string","description":"Type of the Tenant. <br> The following values are possible: <ul> <li><code>Owned</code>: the tenant is owned Memori</li> <li><code>Customer</code>: the tenant is owned by a customer</li> </ul>","nullable":true},"description":{"type":"string","description":"Tenant description. Usually a human-readable name, e.g. ```MemoryTwin```.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","nullable":true},"logoURL":{"type":"string","description":"URL of the Tenant logo.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","nullable":true},"squareLogoURL":{"type":"string","description":"URL of the Tenant Icons logo.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","nullable":true},"adminEmail":{"type":"string","description":"Administrative e-mail for the Tenant.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","nullable":true},"theme":{"type":"string","description":"Color theme to be used for the Tenant.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","nullable":true},"feedbackURL":{"type":"string","description":"URL for the feedback form for the Tenant.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","nullable":true},"privacyPolicyURL":{"type":"string","description":"URL of the Privacy Policy page for the Tenant.","nullable":true},"speechProvider":{"type":"string","description":"Text to speech provider for the Tenant.","nullable":true},"speechAPIKey":{"type":"string","description":"API key for the text to speech provider.","nullable":true},"perplexityAPIKey":{"type":"string","description":"API key for Perplexity Search LLM Engine.","nullable":true},"adminCount":{"type":"integer","description":"Current number of administrative Users.\r\nReturned during Get operations.\r\nIgnored in other cases.","format":"int32"},"userCount":{"type":"integer","description":"Current number of normal Users.\r\nReturned during Get operations.\r\nIgnored in other cases.","format":"int32"},"memoriCount":{"type":"integer","description":"Current number of Memori objects.\r\nReturned during Get operations.\r\nIgnored in other cases.","format":"int32"},"scormMemoriCount":{"type":"integer","description":"Current number of Memori objects with SCORM enabled.\r\nReturned during Get operations.\r\nIgnored in other cases.\r\nOmitted when MemoriAi.WebApi.ModelV2.TenantSpecs.MaxScormMemori is not greater than zero.","format":"int32","nullable":true},"disableRegistration":{"type":"boolean","description":"If ```True``` no new User can be registered for this Tenant.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","nullable":true},"maxMemoriPerAdmin":{"type":"integer","description":"Maximum number of Memori objects per administrative User.\r\nIf ```0``` it means unlimited.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","format":"int32","nullable":true},"maxMemoriPerUser":{"type":"integer","description":"Maximum number of Memori objects per normal User.\r\nIf ```0``` it means unlimited.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","format":"int32","nullable":true},"maxTotalMemori":{"type":"integer","description":"Maximum total number of Memori objects.\r\nIf ```0``` it means unlimited.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","format":"int32","nullable":true},"maxAdmins":{"type":"integer","description":"Maximum number of administrative Users.\r\nIf ```0``` it means unlimited.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","format":"int32","nullable":true},"maxUsers":{"type":"integer","description":"Maximum number of normal Users.\r\nIf ```0``` it means unlimited.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","format":"int32","nullable":true},"maxFreeSessions":{"type":"integer","description":"Maximum total number of free sessions across all users of this Tenant.\r\nIf ```0``` it means unlimited.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","format":"int32","nullable":true},"maxFreeSessionsPerUser":{"type":"integer","description":"Maximum number of free sessions for a User.\r\nIf ```0``` it means unlimited.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","format":"int32","nullable":true},"nonFreeSessionCost":{"type":"number","description":"Cost of each new session above the max free sessions threshold.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","format":"double","nullable":true},"maxCompletions":{"type":"integer","description":"Maximum total number of completions across all users of this Tenant.\r\nif ```0``` it means unlimited.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","format":"int32","nullable":true},"maxCompletionsPerUser":{"type":"integer","description":"Maximum number of completions for a User.\r\nif ```0``` it means unlimited.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","format":"int32","nullable":true},"maxImportSize":{"type":"integer","description":"Maximum total number of characters that can be imported across\r\nall users of this Tenant.\r\nif ```0``` it means unlimited.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","format":"int64","nullable":true},"maxImportSizePerUser":{"type":"integer","description":"Maximum number of characters that can be imported by a User.\r\nif ```0``` it means unlimited.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","format":"int64","nullable":true},"maxScormMemori":{"type":"integer","description":"Maximum number of SCORM Memori for this Tenant.\r\nIf ```0``` it means unlimited.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","format":"int32","nullable":true},"paying":{"type":"boolean","description":"If ```True``` means this Tenant has an actual payment\r\ncontract in effect and non-free sessions (i.e. sessions above\r\nthe max free session thresholds) can be performed.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","nullable":true},"enableUserMemoriCreation":{"type":"boolean","description":"If ```True``` normal Users can create new Memori objects.\r\nAdministrative Users always can.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","nullable":true},"enableBoardOfExperts":{"type":"boolean","description":"If ```True``` the Board of Experts feature is enabled.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","nullable":true},"enableDCMIntegration":{"type":"boolean","description":"If ```True``` the DCM integration feature is enabled\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","nullable":true},"enableBadges":{"type":"boolean","description":"If ```True``` this Tenant accepts DCM outcomes and\r\nconsequently can receive badges in the Open Badge format.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","nullable":true},"enableDeepThought":{"type":"boolean","description":"If ```True``` the Deep Thought feature is enabled.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","nullable":true},"enableVirtualSpaces":{"type":"boolean","description":"If ```True``` the Virtual Spaces feature is enabled.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","nullable":true},"enableScorm":{"type":"boolean","description":"If ```True```, SCORM Memori may be created or enabled on this Tenant (subject to MemoriAi.WebApi.ModelV2.TenantSpecs.MaxScormMemori when billing is not delegated).\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations (SuperAdmin only).","nullable":true},"billingDelegation":{"type":"boolean","description":"If ```True``` the Tenant costs and limits are\r\ncomputed from the configured Billing interface.","nullable":true},"ssoLogin":{"type":"boolean","description":"When ```True```, SSO login is enabled for this tenant.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","nullable":true},"ssoRedirect":{"type":"string","description":"Optional redirect URL for SSO. Omitted when null.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","nullable":true},"chatLogsRetentionDays":{"type":"integer","description":"Number of days to retain chat logs. Must be at least 1.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","format":"int32","nullable":true},"smtpConfig":{"$ref":"#/components/schemas/SMTPConfig"},"translationServiceConfig":{"$ref":"#/components/schemas/TranslationServiceConfig"},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true}},"additionalProperties":false,"description":"Specifications of a Tenant object."},"SMTPConfig":{"type":"object","properties":{"server":{"type":"string","nullable":true},"user":{"type":"string","nullable":true},"password":{"type":"string","nullable":true},"port":{"type":"integer","format":"int32"},"socketSecurity":{"type":"string","nullable":true},"senderEmail":{"type":"string","nullable":true},"senderName":{"type":"string","nullable":true}},"additionalProperties":false},"TranslationServiceConfig":{"type":"object","properties":{"apiKey":{"type":"string","nullable":true},"url":{"type":"string","nullable":true}},"additionalProperties":false}}}}
````

## The GetTrustedApplicationResponse object

````json
{"openapi":"3.0.1","info":{"title":"Memori.ai Web API V2","version":"v2"},"components":{"schemas":{"GetTrustedApplicationResponse":{"type":"object","properties":{"trustedApplication":{"$ref":"#/components/schemas/TrustedApplicationSpecs"},"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 reponse.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous reponse.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is indicative of the actual\r\nerror.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response of a Get TrustedApplication request."},"TrustedApplicationSpecs":{"required":["authorizationToken","isEnabled","name"],"type":"object","properties":{"trustedApplicationID":{"type":"string","description":"TrustedApplication ID. Unique and assigned by the system.\r\nReturned during Get operations. Ignored in other cases.","nullable":true},"tenantID":{"type":"string","description":"Tenant ID this TrustedApplication belongs to.\r\nRequired during Create operations. Returned during Get operations.","nullable":true},"name":{"maxLength":255,"minLength":1,"type":"string","description":"Name of the TrustedApplication. Must be unique within the tenant.\r\nRequired during Create operations. Used during Update operations.\r\nReturned during Get operations."},"description":{"maxLength":1000,"type":"string","description":"Description of the TrustedApplication.\r\nOptional during Create and Update operations.\r\nReturned during Get operations.","nullable":true},"baseUrl":{"maxLength":500,"type":"string","description":"Base URL of the TrustedApplication.\r\nOptional during Create and Update operations.\r\nReturned during Get operations.","nullable":true},"authorizationToken":{"maxLength":1000,"minLength":1,"type":"string","description":"Authorization token for the TrustedApplication.\r\nRequired during Create operations. Used during Update operations.\r\nReturned during Get operations."},"isEnabled":{"type":"boolean","description":"Whether the TrustedApplication is enabled.\r\nRequired during Create operations. Used during Update operations.\r\nReturned during Get operations."},"createdByUserID":{"type":"string","description":"User ID who created this TrustedApplication.\r\nReturned during Get operations. Ignored in other cases.","nullable":true},"lastModifiedByUserID":{"type":"string","description":"User ID who last modified this TrustedApplication.\r\nReturned during Get operations. Ignored in other cases.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true}},"additionalProperties":false,"description":"Specifications of a TrustedApplication object."}}}}
````

## The GetUserResponse object

````json
{"openapi":"3.0.1","info":{"title":"Memori.ai Web API V2","version":"v2"},"components":{"schemas":{"GetUserResponse":{"type":"object","properties":{"user":{"$ref":"#/components/schemas/UserSpecs"},"requestID":{"type":"integer","description":"Progressive number of the request (since the Server started).\r\nUse this number, together with the RequestDateTime property,\r\nto report an anomalous reponse.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous reponse.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is indicative of the actual\r\nerror.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response of a Get User request."},"UserSpecs":{"type":"object","properties":{"tenant":{"type":"string","description":"Name of the Tenant this user is associated to. Required during \r\nLogin and Registration operations. Returned during Get operations.\r\nIgnored in other cases.","nullable":true},"userID":{"type":"string","description":"User ID. Unique and assigned by the system.\r\nReturned during Login and Get operations. Ignored in other cases.","nullable":true},"userName":{"type":"string","description":"User name. Must be unique. Required during Login and Registration\r\noperations. Returned during Get operations.\r\nIgnored in other cases.","nullable":true},"eMail":{"type":"string","description":"E-mail address. Required during Registration operations. Used during Update operations. May be used as an alternative to UserName during Login operations. Returned during Get operations. <br> The address is checked via a verification code.","nullable":true},"avatarURL":{"type":"string","description":"URL of the avatar image representing the User.\r\nMay be provided during Registration and Update operations.\r\nReturned during Login and Get operations.","nullable":true},"avatar3DURL":{"type":"string","description":"URL of the avatar 3D model representing the User.\r\nMay be provided during Registration and Update operations.\r\nReturned during Login and Get operations.","nullable":true},"avatar3DURLType":{"type":"string","description":"Additional information about the avatar 3D model URL, e.g. if it's a head-only, full-body avatar, custom model etc. <br> Sample possible values are: <ul> <li><code>readyplayerme</code>: the avatar 3D URL points a half-body ReadyPlayerMe GLB model</li> <li><code>readyplayerme-full</code>: the avatar 3D URL points a full-body ReadyPlayerMe GLB model</li> <li><code>customglb</code>: the avatar 3D URL points to a custom GLB model</li> </ul>","nullable":true},"dontSendInvitationEmail":{"type":"boolean","description":"If ```True``` during a Creation operation, the automatic\r\ninvitation e-mail is not sent, and the temporary password is\r\nreturned as part of the operation response.\r\nUsed during Creation operations. Ignored in other cases.","nullable":true},"referral":{"type":"string","description":"Optional referral URL from which the User reached the registration\r\npage.","nullable":true},"couponCode":{"type":"string","description":"Optional coupon code used by the User during Registration.","nullable":true},"newsletterSubscribed":{"type":"boolean","description":"```True``` if the e-mail address is subscribed to the newsletter.\r\n            Used during Registration and Update operations.\r\n            Returned during Get operations.","nullable":true},"notificationPrefs":{"type":"array","items":{"$ref":"#/components/schemas/NotificationPrefsSpecs"},"description":"List of Notification Preferences objects.\r\nUsed Update operations. Returned during Get operations.\r\nIgnored in other cases.","nullable":true},"admin":{"type":"boolean","description":"```True``` if the User is an administrator, i.e. can administer\r\n            the tenant they are part of.\r\n            Used during Creation and Update operations by a super administrator.\r\n            Returned during Login and Get operations.","nullable":true},"superAdmin":{"type":"boolean","description":"```True``` if the User is a super administrator, i.e. can\r\n            administer all tenants.\r\n            Returned during Login and Get operations.\r\n            Ignored in other cases.","nullable":true},"numMemori":{"type":"integer","description":"The current number of Memori objects belonging to this User. Returned during Get and Login operations. Ignored in other cases. <br> Visible only to administrators and the user themself.","format":"int32","nullable":true},"maxMemori":{"type":"integer","description":"Maximum number of Memori objects this User can create.\r\nIf ```0``` it means unlimited.\r\nUsed during Creation and Update operations by a super administrator.\r\nReturned during Get and Login operations.","format":"int32","nullable":true},"monthSessions":{"type":"integer","description":"Number of sessions in the current month for this User. Returned during Get and Login operations. Ignored in other cases. <br> Visible only to administrators and the user themself.","format":"int32","nullable":true},"monthValidSessions":{"type":"integer","description":"Number of valid sessions in the current month for this User. Valid sessions are performed by a not Giver user with at least one request/response pair. Returned during Get and Login operations. Ignored in other cases. <br> Visible only to administrators and the user themself.","format":"int32","nullable":true},"monthDeepThoughtValidSessions":{"type":"integer","description":"Number of valid sessions in the current month for this User, with Deep Thought enabled. Returned during Get and Login operations. Ignored in other cases. <br> Visible only to administrators and the user themself.","format":"int32","nullable":true},"maxFreeSessions":{"type":"integer","description":"Maximum number of free Memori sessions this User can open per month.\r\nif ```0>``` it means unlimited.\r\nUsed during Creation and Update operations by a super administrator.\r\nReturned during Get and Login operations.","format":"int32","nullable":true},"nonFreeSessionCost":{"type":"number","description":"The cost of each new session above the max free sessions threshold.","format":"double","nullable":true},"monthCompletions":{"type":"integer","description":"Number of completions in the current month for this User. Returned during Get and Login operations. Ignored in other cases. <br> Visible only to administrators and the user itself.","format":"int32","nullable":true},"monthDeepThoughtCompletions":{"type":"integer","description":"Number of completions in the current month for this User, with Deep Thought enabled. Returned during Get and Login operations. Ignored in other cases. <br> Visible only to administrators and the user itself.","format":"int32","nullable":true},"monthImportedSize":{"type":"integer","description":"Number of characters imported in the current month for this User. Returned during Get and Login operations. Ignored in other cases. <br> Visible only to administrators and the user itself.","format":"int64","nullable":true},"maxCompletions":{"type":"integer","description":"Maximum number of completions for this User per month.\r\nif ```0``` it means unlimited.\r\nUsed during Creation and Update operations by a super administrator.\r\nReturned during Get and Login operations.","format":"int32","nullable":true},"maxImportSize":{"type":"integer","description":"Maximum number of characters that can imported be by this User per month.\r\nif ```0``` it means unlimited.\r\nUsed during Creation and Update operations by a super administrator.\r\nReturned during Get and Login operations.","format":"int64","nullable":true},"paying":{"type":"boolean","description":"If ```True``` means this User has an actual payment\r\ncontract in effect and non-free sessions (i.e. sessions above\r\nthe max free session threshold) can be performed.","nullable":true},"enableMemoriCreation":{"type":"boolean","description":"```True``` if the User can create new Memori objects.\r\n            Used during Creation and Update operations by an administrator.\r\n            Returned during Get and Login operations.","nullable":true},"enableBoardOfExperts":{"type":"boolean","description":"```True``` if the User can access the Board of Experts feature.\r\n            Used during Creation and Update operations by an administrator.\r\n            Returned during Get and Login operations.","nullable":true},"enableDCMIntegration":{"type":"boolean","description":"```True``` if the User access the DCM integration feature.\r\n            Used during Creation and Update operations by an administrator.\r\n            Returned during Get and Login operations.","nullable":true},"enableBadges":{"type":"boolean","description":"If ```True``` this User accepts DCM outcomes and\r\nconsequently can receive badges in the Open Badge format.\r\nUsed during Creation and Update operations by an administrator.\r\nReturned during Get and Login operations.","nullable":true},"enableDeepThought":{"type":"boolean","description":"```True``` if the User can access the Deep Thought feature.\r\n            Used during Creation and Update operations by an administrator.\r\n            Returned during Get and Login operations.","nullable":true},"enableVirtualSpaces":{"type":"boolean","description":"```True``` if the User can access the Virtual Spaces feature.\r\n            Used during Creation and Update operations by an administrator.\r\n            Returned during Get and Login operations.","nullable":true},"birthDate":{"type":"string","description":"User date of birth. Necessary of age-restricted features, such as\r\nenabling completions or accessing NSFW content.\r\nUsed during Registration and Update operations.\r\nReturned during Get operations.","format":"date-time","nullable":true},"age":{"type":"integer","description":"Age computed from the birth date.\r\nReturned during Get operations.\r\nIgnored in other cases.","format":"int32"},"tnCAndPPAccepted":{"type":"boolean","description":"Terms & Conditions and Privacy Policy acceptance flag.\r\nMay be reset to False in case of T. & C. and/or P. P. change.\r\nWhen False all operations that imply a change are blocked.\r\nMandatory during Registration. Used during Update operations.\r\nReturned during Get operations.","nullable":true},"tnCAndPPAcceptanceDate":{"type":"string","description":"Date of acceptance of Terms & Conditions and Privacy Policy.\r\nReturned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true},"pAndCUAccepted":{"type":"boolean","description":"Profiling & Commercial Use acceptance flag.\r\nMay be reset to False in case of T. & C. and/or P. P. change.\r\nWhen False features that require profiling and may imply commercial\r\ncommunication to the User (e.g. Deep Thought) are disabled.\r\nUsed during Registration and Update operations.\r\nReturned during Get operations.","nullable":true},"pAndCUAcceptanceDate":{"type":"string","description":"Date of acceptance of Profiling & Commercial Use.\r\nReturned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true},"magicLinkURL":{"type":"string","description":"Optional magic link URL. If not set a default one is used.\r\nThe URL is invoked appending the Session ID at the end.\r\nUsed during Login and Create operations.\r\nIgnored in other cases.","nullable":true},"redirectTo":{"type":"string","description":"Optional RedirectTo.\r\nIf set the user will be redirected to the specified page.\r\nIgnored in other cases.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true}},"additionalProperties":false,"description":"Specifications of a User object."},"NotificationPrefsSpecs":{"type":"object","properties":{"chatLogExtractionPeriod":{"type":"string","description":"Periodicity of chat log extraction (hourly, daily, weekly or none). When chat log extraction is enabled (i.e. not <code>None</code>) chats performed on Memori owned or managed by the User will be periodically collected and sent via e-mail. Required. <br> Can be one of the following:<ul> <li><code>None</code></li>: no chat log extraction is performed. <li><code>Hourly</code></li>: chat log extraction is performed every hour. <li><code>Hourly</code></li>: chat log extraction is performed daily. <li><code>Hourly</code></li>: chat log extraction is performed weekly. </ul>","nullable":true},"chatLogExtractionMinLines":{"type":"integer","description":"Minimum lines for an extracted chat to be sent via e-mail to\r\nthe User. If ```0``` no filter is applied.\r\nDefault is ```5```.","format":"int32","nullable":true},"memoriID":{"type":"string","description":"Memori ID to which these preferences apply to.\r\nIf ```Null``` these preferences have default value\r\nand apply to all Memori objects not specified with other\r\npreferences.","nullable":true}},"additionalProperties":false,"description":"Specifications of a Notificattion Preferences object."}}}}
````

## The ImportCSVSpecs object

````json
{"openapi":"3.0.1","info":{"title":"Memori.ai Web API V2","version":"v2"},"components":{"schemas":{"ImportCSVSpecs":{"type":"object","properties":{"csvSpecs":{"$ref":"#/components/schemas/CSVSpecs"},"conclusive":{"type":"boolean","description":"If ```True``` all the imported questions will have\r\nthe ```Conclusive``` flag set."},"notPickable":{"type":"boolean","description":"If ```True``` all the imported questions will have\r\nthe ```NotPickable``` flag set."},"contextVarsToSet":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"If set, all imported questions will have the\r\n```ContextVarsToSet``` property set to this values.","nullable":true},"contextVarsToMatch":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"If set, all imported questions will have the\r\n```ContextVarsToMatch``` property set to this values.","nullable":true},"memoryTags":{"type":"array","items":{"type":"string"},"description":"If set, all imported questions will have the\r\n```MemoryTags``` property set to these values.","nullable":true},"receiverID":{"type":"string","description":"If set, all the imported questions will be associated\r\nwith the specified receiver.\r\nMust be an existing receiver ID.","nullable":true},"addMediaLink":{"type":"string","description":"If set, all the imported questions will have an additional\r\nmedium with the specified link.","nullable":true},"linkTitleHandling":{"type":"string","description":"Specifications for the TXT import. <br> Can be one of the following:<ul> <li><code>FixedTitle</code>: the title of the link will be the one specified in LinkTitleHandling or \"Link\" if not set</li> <li><code>FetchFromUrl</code>: the title of the link will be the one fetched from the URL</li> <li><code>Hostname</code>: the title of the link will be the hostname of the URL</li></ul>","nullable":true},"linkTitle":{"type":"string","description":"The title of the links to be added to the imported questions, it will be used \"Link\" if not set","nullable":true},"rows":{"type":"array","items":{"type":"string"},"description":"Rows of the file to be imported.\r\nRequired.\r\nExcept when importing an agent, in which case this field must be left empty.","nullable":true},"importName":{"type":"string","description":"Optional name of this import.","nullable":true},"forceImport":{"type":"boolean","description":"Specifies if questions having a high similarity with already stored\r\nquestions have to be imported.\r\nIf true, all questions are imported without checking the similarity."},"notes":{"type":"string","description":"Additional notes about the import.","nullable":true}},"additionalProperties":false,"description":"Specifications and content for an Import CSV request."},"CSVSpecs":{"type":"object","properties":{"newLine":{"type":"string","description":"New line characters to be used for CSV records.<br /> Required in Export operations.<br /> Not used in Import operations. <br> Must be one of:<ul> <li><code>\\r\\n</code>: CR-LF pair (Windows new lines)</li> <li><code>\\n</code>: LF only (Unix/macOS new lines)</li> </ul>","nullable":true},"hasHeaders":{"type":"boolean","description":"Specifies if the first row of the CSV contains the column names.<br />\r\nIn Import operations: if False column names must be specified\r\nin the HeaderNames property, if True HeaderNames is ignored.<br />\r\nIn Export operations: if True header names are generated in the\r\nfirst row, if False the first row contains the first data row."},"headerNames":{"type":"array","items":{"type":"string"},"description":"Optional column names of the CSV rows.<br />\r\nUsed only in Import operations: if not specified the\r\nHasHeaders property must be set to True, and the first row of the\r\nCSV file is assumed to contain the column names.","nullable":true},"questionColumnName":{"type":"string","description":"Name of the column with the question text.<br />\r\nUsed in both Import and Export operations.","nullable":true},"answerColumnName":{"type":"string","description":"Name of the column with the answer text.<br />\r\nUsed in both Import and Export operations.","nullable":true},"contextVarsToMatchColumnName":{"type":"string","description":"Optional name of the column with the context variables to match.<br />\r\nUsed in both Import and Export operations.","nullable":true},"contextVarsToSetColumnName":{"type":"string","description":"Optional name of the column with the context variables to set.<br />\r\nUsed in both Import and Export operations.","nullable":true},"memoryTagsColumnName":{"type":"string","description":"Optional name of the column with the memory tags.<br />\r\nUsed in both Import and Export operations.","nullable":true},"csvSeparator":{"type":"string","description":"Column separator in CSV rows.<br />\r\nUsed in both Import and Export operations.","nullable":true},"questionTitleVariantsSeparator":{"type":"string","description":"Optional question text and memory tags separator. Must be specified if\r\nthe question column contains multiple text variants, or if memory tags are being exported<br />\r\nUsed in both Import and Export operations.","nullable":true}},"additionalProperties":false,"description":"Specifications for requests involving import/export of CSV contents."}}}}
````

## The ImportDictionarySpecs object

```json
{"openapi":"3.0.1","info":{"title":"Memori.ai Web API V2","version":"v2"},"components":{"schemas":{"ImportDictionarySpecs":{"type":"object","properties":{"rows":{"type":"array","items":{"type":"string"},"description":"Rows of the file to be imported.\r\nRequired.\r\nExcept when importing an agent, in which case this field must be left empty.","nullable":true},"importName":{"type":"string","description":"Optional name of this import.","nullable":true},"forceImport":{"type":"boolean","description":"Specifies if questions having a high similarity with already stored\r\nquestions have to be imported.\r\nIf true, all questions are imported without checking the similarity."},"notes":{"type":"string","description":"Additional notes about the import.","nullable":true}},"additionalProperties":false,"description":"Specifications for an Import Dictionary request."}}}}
```

## The ImportFunctionsIntentsSpecs object

```json
{"openapi":"3.0.1","info":{"title":"Memori.ai Web API V2","version":"v2"},"components":{"schemas":{"ImportFunctionsIntentsSpecs":{"type":"object","properties":{"rows":{"type":"array","items":{"type":"string"},"description":"Rows of the file to be imported.\r\nRequired.\r\nExcept when importing an agent, in which case this field must be left empty.","nullable":true},"importName":{"type":"string","description":"Optional name of this import.","nullable":true},"forceImport":{"type":"boolean","description":"Specifies if questions having a high similarity with already stored\r\nquestions have to be imported.\r\nIf true, all questions are imported without checking the similarity."},"notes":{"type":"string","description":"Additional notes about the import.","nullable":true}},"additionalProperties":false,"description":"Specifications for an Import Functions/Intents request."}}}}
```

## The ImportMemoriSpecs object

```json
{"openapi":"3.0.1","info":{"title":"Memori.ai Web API V2","version":"v2"},"components":{"schemas":{"ImportMemoriSpecs":{"type":"object","properties":{"memoriName":{"type":"string","description":"The name of the memori that will be created during the import process.","nullable":true},"memoriPassword":{"type":"string","description":"Password. Required during Registration operations. May be required during Update operations. Ignored in other cases. <br> Must be provided in the following cases:<ul> <li>When PrivacyType is <code>SECRET</code>: during Registration and Update operations, and it can be any non-empty string</li> <li>When PrivacyType is <code>PRIVATE</code>: only during Update operations, and it must be set with the SecretToken provided during registration</li> </ul>","nullable":true},"privacyType":{"type":"string","description":"Type of privacy setting for this Memori (private, public or secret). Required during Registration operations. Used during Update operations. Returned during Get operations. <br> May be one of the following:<ul> <li><code>PUBLIC</code>: this Memori is not encrypted, has no password and is accessible to everyone</li> <li><code>PRIVATE</code>: this Memori is not encrypted, has a system-generated Secret Token as password and can be accessed only by providing it</li> <li><code>SECRET</code>: this Memori is encrypted, has a user-defined password and can be accessed only by providing it</li> </ul>","nullable":true},"memoriZipAssetId":{"type":"string","description":"The ID of the uploaded asset containing the zip file to import.","nullable":true},"rows":{"type":"array","items":{"type":"string"},"description":"Rows of the file to be imported.\r\nRequired.\r\nExcept when importing an agent, in which case this field must be left empty.","nullable":true},"importName":{"type":"string","description":"Optional name of this import.","nullable":true},"forceImport":{"type":"boolean","description":"Specifies if questions having a high similarity with already stored\r\nquestions have to be imported.\r\nIf true, all questions are imported without checking the similarity."},"notes":{"type":"string","description":"Additional notes about the import.","nullable":true}},"additionalProperties":false}}}}
```

## The ImportStatusSpecs object

````json
{"openapi":"3.0.1","info":{"title":"Memori.ai Web API V2","version":"v2"},"components":{"schemas":{"ImportStatusSpecs":{"type":"object","properties":{"importType":{"type":"string","description":"Import type. <br> Can be one of the following:<ul> <li><code>CSV</code>: for tabular documents</li> <li><code>TXT</code>: for text documents</li> </ul>","nullable":true},"importSize":{"type":"integer","description":"Size of the imported document in characters.","format":"int64"},"importName":{"type":"string","description":"Name of this import, if set when the Import process was requested.","nullable":true},"importedMemories":{"type":"integer","description":"Number of Imported Memory objects so far.","format":"int32"},"importWarningsCount":{"type":"integer","description":"Number of Import Warning objects","format":"int32"},"importWarnings":{"type":"array","items":{"$ref":"#/components/schemas/ImportWarning"},"description":"List of Import Warning objects.\r\nMay be empty.","nullable":true},"processID":{"type":"string","description":"Process ID.","nullable":true},"memoriID":{"type":"string","description":"ID of the Memori object this Process refers to.","nullable":true},"processUserName":{"type":"string","description":"Name of the user that started the Process.","nullable":true},"processType":{"type":"string","description":"Process type. <br> Can be one of the following:<ul> <li><code>Import</code>: for file import processes</li> <li><code>Analysis</code>: for Deep Thought user/query analysis processes</li> </ul>","nullable":true},"status":{"type":"string","description":"Current status of the Process (starting, running etc.). <br> May be one of the following:<ul> <li><code>Starting</code>: the Process is preparing to start, but has not started yet. Will advance to <code>Running</code> automatically.</li> <li><code>Running</code>: the Process has been started and is actively processing elements.</li> <li><code>Stopped</code>: the Process has been stopped manually, not all elements may have been processed.</li> <li><code>Completed</code>: the Process finished successfully, all the elements have been processed.</li> <li><code>Failed</code>: the Process terminated due to an unexpected error, not all elements may have been processed.</li> </ul>","nullable":true},"error":{"type":"string","description":"If the Status is ```Failed```, reports the error that\r\ncaused the Process to fail.\r\nNull otherwise.","nullable":true},"totalElements":{"type":"integer","description":"Total elements this Process is processing.","format":"int32"},"processedElements":{"type":"integer","description":"Number of elements this Process has processed so far.","format":"int32"},"progress":{"type":"number","description":"Progress of the Process as a fraction of 1.","format":"float"},"processSpecsJSON":{"type":"string","description":"Original parameters of the Process request, as a JSON structure,\r\nexcluding the elements (e.g. document rows for an Import process).","nullable":true},"begin":{"type":"string","description":"Timestamp of start of the Process.\r\nNull until the Process is in ```Starting``` status.","format":"date-time","nullable":true},"end":{"type":"string","description":"Timestamp of end of the Process.\r\nNull until the Process is in ```Starting``` or\r\n```Running``` status.","format":"date-time","nullable":true},"eta":{"type":"number","description":"Estimated time required to complete the Process,\r\nin seconds.","format":"float","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true}},"additionalProperties":false,"description":"Specifications of an Import Status object."},"ImportWarning":{"type":"object","properties":{"warningType":{"type":"string","description":"Type of warning. <br> <ul>Currently supported types are: <li><code>Existing Similar Memory</code>: a memory exists with a text similar to the question in this row</li> <li><code>Error</code>: an error occurred while importing the row</li> </ul>","nullable":true},"rowNumber":{"type":"integer","description":"The number of thr row object of the warning.","format":"int32"},"text":{"type":"string","description":"When ```WarningType``` is ```Existing Similar\r\nMemory``` reports the text of the imported memory.\r\nWhen ```WarningType``` is ```Error``` reports the\r\ntext of the error.","nullable":true},"similarTexts":{"type":"array","items":{"$ref":"#/components/schemas/SimilarText"},"description":"List of similar texts in existing memories.\r\nUsed when ```WarningType``` is ```Existing Similar\r\nMemory```.","nullable":true}},"additionalProperties":false,"description":"Description of a possible problem during an Import operation."},"SimilarText":{"type":"object","properties":{"memoryID":{"type":"string","description":"Memory ID of the similar memory.","nullable":true},"text":{"type":"string","description":"Similar text of an existing memory.","nullable":true},"similarityLevel":{"type":"string","description":"Similarity level between the existing memory text and the imported memory text.\r\nEither \"HIGH\", \"MEDIUM\" or \"LOW.","nullable":true}},"additionalProperties":false}}}}
````

## The ImportStatusSpecsProcessStatusResponse object

````json
{"openapi":"3.0.1","info":{"title":"Memori.ai Web API V2","version":"v2"},"components":{"schemas":{"ImportStatusSpecsProcessStatusResponse":{"type":"object","properties":{"status":{"$ref":"#/components/schemas/ImportStatusSpecs"},"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 reponse.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous reponse.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is indicative of the actual\r\nerror.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response of an Import, Analysis or Get Process Status requests."},"ImportStatusSpecs":{"type":"object","properties":{"importType":{"type":"string","description":"Import type. <br> Can be one of the following:<ul> <li><code>CSV</code>: for tabular documents</li> <li><code>TXT</code>: for text documents</li> </ul>","nullable":true},"importSize":{"type":"integer","description":"Size of the imported document in characters.","format":"int64"},"importName":{"type":"string","description":"Name of this import, if set when the Import process was requested.","nullable":true},"importedMemories":{"type":"integer","description":"Number of Imported Memory objects so far.","format":"int32"},"importWarningsCount":{"type":"integer","description":"Number of Import Warning objects","format":"int32"},"importWarnings":{"type":"array","items":{"$ref":"#/components/schemas/ImportWarning"},"description":"List of Import Warning objects.\r\nMay be empty.","nullable":true},"processID":{"type":"string","description":"Process ID.","nullable":true},"memoriID":{"type":"string","description":"ID of the Memori object this Process refers to.","nullable":true},"processUserName":{"type":"string","description":"Name of the user that started the Process.","nullable":true},"processType":{"type":"string","description":"Process type. <br> Can be one of the following:<ul> <li><code>Import</code>: for file import processes</li> <li><code>Analysis</code>: for Deep Thought user/query analysis processes</li> </ul>","nullable":true},"status":{"type":"string","description":"Current status of the Process (starting, running etc.). <br> May be one of the following:<ul> <li><code>Starting</code>: the Process is preparing to start, but has not started yet. Will advance to <code>Running</code> automatically.</li> <li><code>Running</code>: the Process has been started and is actively processing elements.</li> <li><code>Stopped</code>: the Process has been stopped manually, not all elements may have been processed.</li> <li><code>Completed</code>: the Process finished successfully, all the elements have been processed.</li> <li><code>Failed</code>: the Process terminated due to an unexpected error, not all elements may have been processed.</li> </ul>","nullable":true},"error":{"type":"string","description":"If the Status is ```Failed```, reports the error that\r\ncaused the Process to fail.\r\nNull otherwise.","nullable":true},"totalElements":{"type":"integer","description":"Total elements this Process is processing.","format":"int32"},"processedElements":{"type":"integer","description":"Number of elements this Process has processed so far.","format":"int32"},"progress":{"type":"number","description":"Progress of the Process as a fraction of 1.","format":"float"},"processSpecsJSON":{"type":"string","description":"Original parameters of the Process request, as a JSON structure,\r\nexcluding the elements (e.g. document rows for an Import process).","nullable":true},"begin":{"type":"string","description":"Timestamp of start of the Process.\r\nNull until the Process is in ```Starting``` status.","format":"date-time","nullable":true},"end":{"type":"string","description":"Timestamp of end of the Process.\r\nNull until the Process is in ```Starting``` or\r\n```Running``` status.","format":"date-time","nullable":true},"eta":{"type":"number","description":"Estimated time required to complete the Process,\r\nin seconds.","format":"float","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true}},"additionalProperties":false,"description":"Specifications of an Import Status object."},"ImportWarning":{"type":"object","properties":{"warningType":{"type":"string","description":"Type of warning. <br> <ul>Currently supported types are: <li><code>Existing Similar Memory</code>: a memory exists with a text similar to the question in this row</li> <li><code>Error</code>: an error occurred while importing the row</li> </ul>","nullable":true},"rowNumber":{"type":"integer","description":"The number of thr row object of the warning.","format":"int32"},"text":{"type":"string","description":"When ```WarningType``` is ```Existing Similar\r\nMemory``` reports the text of the imported memory.\r\nWhen ```WarningType``` is ```Error``` reports the\r\ntext of the error.","nullable":true},"similarTexts":{"type":"array","items":{"$ref":"#/components/schemas/SimilarText"},"description":"List of similar texts in existing memories.\r\nUsed when ```WarningType``` is ```Existing Similar\r\nMemory```.","nullable":true}},"additionalProperties":false,"description":"Description of a possible problem during an Import operation."},"SimilarText":{"type":"object","properties":{"memoryID":{"type":"string","description":"Memory ID of the similar memory.","nullable":true},"text":{"type":"string","description":"Similar text of an existing memory.","nullable":true},"similarityLevel":{"type":"string","description":"Similarity level between the existing memory text and the imported memory text.\r\nEither \"HIGH\", \"MEDIUM\" or \"LOW.","nullable":true}},"additionalProperties":false}}}}
````

## The ImportTXTSpecs object

````json
{"openapi":"3.0.1","info":{"title":"Memori.ai Web API V2","version":"v2"},"components":{"schemas":{"ImportTXTSpecs":{"type":"object","properties":{"txtSpecs":{"$ref":"#/components/schemas/TXTSpecs"},"conclusive":{"type":"boolean","description":"If ```True``` all the imported questions will have\r\nthe ```Conclusive``` flag set."},"notPickable":{"type":"boolean","description":"If ```True``` all the imported questions will have\r\nthe ```NotPickable``` flag set."},"contextVarsToSet":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"If set, all imported questions will have the\r\n```ContextVarsToSet``` property set to this values.","nullable":true},"contextVarsToMatch":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"If set, all imported questions will have the\r\n```ContextVarsToMatch``` property set to this values.","nullable":true},"memoryTags":{"type":"array","items":{"type":"string"},"description":"If set, all imported questions will have the\r\n```MemoryTags``` property set to these values.","nullable":true},"receiverID":{"type":"string","description":"If set, all the imported questions will be associated\r\nwith the specified receiver.\r\nMust be an existing receiver ID.","nullable":true},"addMediaLink":{"type":"string","description":"If set, all the imported questions will have an additional\r\nmedium with the specified link.","nullable":true},"linkTitleHandling":{"type":"string","description":"Specifications for the TXT import. <br> Can be one of the following:<ul> <li><code>FixedTitle</code>: the title of the link will be the one specified in LinkTitleHandling or \"Link\" if not set</li> <li><code>FetchFromUrl</code>: the title of the link will be the one fetched from the URL</li> <li><code>Hostname</code>: the title of the link will be the hostname of the URL</li></ul>","nullable":true},"linkTitle":{"type":"string","description":"The title of the links to be added to the imported questions, it will be used \"Link\" if not set","nullable":true},"rows":{"type":"array","items":{"type":"string"},"description":"Rows of the file to be imported.\r\nRequired.\r\nExcept when importing an agent, in which case this field must be left empty.","nullable":true},"importName":{"type":"string","description":"Optional name of this import.","nullable":true},"forceImport":{"type":"boolean","description":"Specifies if questions having a high similarity with already stored\r\nquestions have to be imported.\r\nIf true, all questions are imported without checking the similarity."},"notes":{"type":"string","description":"Additional notes about the import.","nullable":true}},"additionalProperties":false,"description":"Specifications and content for an Import TXT request."},"TXTSpecs":{"type":"object","properties":{"granularity":{"type":"string","description":"Proportion between the text size and the number of question-answers generated. If not specified it is assumed as MEDIUM. <br> Must be one of:<ul> <li><code>LOW</code>: generates ~10 questions every 10K characters</li> <li><code>MEDIUM</code>: generates ~20 questions every 10K characters</li> <li><code>HIGH</code>: generates ~30 questions every 10K characters</li> </ul>","nullable":true},"questionsGenerationInstructions":{"type":"string","description":"If specified, these instructions are provided as part of the\r\ncompletion prompt to the generative AI when generating questions\r\nfrom the document.","nullable":true},"attachSource":{"type":"boolean","description":"If True, for every question-answer the excerpt of the original\r\ntext from which they have been generated is included as an\r\nattachment.\r\nIf not specified it is assumed as False."},"sourceAttachmentTitle":{"type":"string","description":"Title of the source attachment, when enabled with ```AttachSource```.\r\nIf not specified it will have no title.","nullable":true}},"additionalProperties":false,"description":"Specifications for requests involving import/export of TXT contents."}}}}
````

## The ImportWarning object

````json
{"openapi":"3.0.1","info":{"title":"Memori.ai Web API V2","version":"v2"},"components":{"schemas":{"ImportWarning":{"type":"object","properties":{"warningType":{"type":"string","description":"Type of warning. <br> <ul>Currently supported types are: <li><code>Existing Similar Memory</code>: a memory exists with a text similar to the question in this row</li> <li><code>Error</code>: an error occurred while importing the row</li> </ul>","nullable":true},"rowNumber":{"type":"integer","description":"The number of thr row object of the warning.","format":"int32"},"text":{"type":"string","description":"When ```WarningType``` is ```Existing Similar\r\nMemory``` reports the text of the imported memory.\r\nWhen ```WarningType``` is ```Error``` reports the\r\ntext of the error.","nullable":true},"similarTexts":{"type":"array","items":{"$ref":"#/components/schemas/SimilarText"},"description":"List of similar texts in existing memories.\r\nUsed when ```WarningType``` is ```Existing Similar\r\nMemory```.","nullable":true}},"additionalProperties":false,"description":"Description of a possible problem during an Import operation."},"SimilarText":{"type":"object","properties":{"memoryID":{"type":"string","description":"Memory ID of the similar memory.","nullable":true},"text":{"type":"string","description":"Similar text of an existing memory.","nullable":true},"similarityLevel":{"type":"string","description":"Similarity level between the existing memory text and the imported memory text.\r\nEither \"HIGH\", \"MEDIUM\" or \"LOW.","nullable":true}},"additionalProperties":false}}}}
````

## The IntegrationResourceSpecs object

```json
{"openapi":"3.0.1","info":{"title":"Memori.ai Web API V2","version":"v2"},"components":{"schemas":{"IntegrationResourceSpecs":{"type":"object","properties":{"name":{"type":"string","description":"Resource name.","nullable":true},"url":{"type":"string","description":"Resource URL.","nullable":true}},"additionalProperties":false,"description":"Specifications of an Integration Resource object."}}}}
```

## The IntegrationSpecs object

````json
{"openapi":"3.0.1","info":{"title":"Memori.ai Web API V2","version":"v2"},"components":{"schemas":{"IntegrationSpecs":{"type":"object","properties":{"integrationID":{"type":"string","description":"Integration ID. Unique and assigned by the system.\r\nReturned during Registration and Get operations.\r\nIgnored in other cases.","nullable":true},"memoriID":{"type":"string","description":"ID of the Memori object this Integration refers to.\r\nRequired during Registration operations. Returned during\r\nGet operations. Ignored in other cases.","nullable":true},"type":{"type":"string","description":"Type of this integration (Google, Alexa, landing home page, etc.). Required during Registration operations. Returned during Get operations. Ignored in other cases. <br> May be one of the following:<ul> <li><code>GOOGLE</code>: a Google Home integration</li> <li><code>ALEXA</code>: an Amazon Alexa integration</li> <li><code>LANDING_EXPERIENCE</code>: a public Memori home page and landing experience</li> </ul>","nullable":true},"state":{"type":"string","description":"Current state of deployment this integration. Returned during Registration and Get operations. Ignored in other cases. <br> May be one of the following:<ul> <li><code>NEW</code></li> <li><code>PROCESSING</code></li> <li><code>DONE</code></li> <li><code>REMOVED</code></li> <li><code>ERROR</code></li> <li><code>WAITING_MANUAL_ACTION</code></li> <li><code>DRAFT</code></li> <li><code>NOT_VALIDATED</code></li> <li><code>PUBLISHED</code></li> </ul>","nullable":true},"deviceEmails":{"type":"array","items":{"type":"string"},"description":"List of e-mails associated with on-device accounts.\r\nUsed during Registration and Update operations for\r\nintegration types ```GOOGLE``` and ```ALEXA```.\r\nReturned during Get operations.\r\nIgnored in other cases.","nullable":true},"invocationText":{"type":"string","description":"Text to be spoken to invoke the integration.\r\nMay be used during Registration and Update operations for\r\nintegration types ```GOOGLE``` and ```ALEXA```.\r\nReturned during Get operations.\r\nIgnored in other cases.","nullable":true},"jobID":{"type":"string","description":"ID of the deployment job of this integration.\r\nReturned during Registration and Get operations.\r\nIgnored in other cases.","nullable":true},"customData":{"type":"string","description":"JSON structure containing the data specific for this type of\r\nintegration. May be used during Registration and Update operations,\r\ndepending on the integration type.\r\nReturned during Get operations.\r\nIgnored in other cases.","nullable":true},"resources":{"type":"array","items":{"$ref":"#/components/schemas/IntegrationResourceSpecs"},"description":"Additional resources need by, or returned by, the deployment job.\r\nMay be used during Registration and Update operations, depending\r\non the integration type.\r\nReturned during Get operations.\r\nIgnored in other cases.","nullable":true},"publish":{"type":"boolean","description":"If set to True, the integration will be published on the\r\ncorresponding environment (e.g. on Amazon Alexa or Google Home)\r\nto the general public. If False the integration will remain\r\navailable only for testing.\r\nUsed during Update operations. Returned during Get operations.\r\nIgnored in other cases.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true}},"additionalProperties":false,"description":"Specifications of an Integration object."},"IntegrationResourceSpecs":{"type":"object","properties":{"name":{"type":"string","description":"Resource name.","nullable":true},"url":{"type":"string","description":"Resource URL.","nullable":true}},"additionalProperties":false,"description":"Specifications of an Integration Resource object."}}}}
````

## The InvitationSpecs object

```json
{"openapi":"3.0.1","info":{"title":"Memori.ai Web API V2","version":"v2"},"components":{"schemas":{"InvitationSpecs":{"type":"object","properties":{"invitationID":{"type":"string","description":"ID of this Invitation object. Unique and assigned by the system.\r\nReturned during Send and Get operations.\r\nIgnored in other cases.","nullable":true},"memoriID":{"type":"string","description":"ID of the Memori object this Invitation refers to.\r\nRequired during Send operations. Returned during\r\nGet operations. Ignored in other cases.","nullable":true},"engineMemoriID":{"type":"string","description":"ID of the Memori object on the Memori Engine.\r\nReturned during Get operations. Ignored in other cases.","nullable":true},"isInviter":{"type":"boolean","description":"True if the requesting User sent this Invitation, and as\r\nsuch has admin (update and delete) access to this Invitation.\r\nReturned during Get operations. Ignored in other cases."},"isInvitee":{"type":"boolean","description":"True if the requesting User received this Invitation, and as\r\nsuch has accept/reject access to this Invitation.\r\nReturned during Get operations. Ignored in other cases."},"text":{"type":"string","description":"Text of this Invitation. Optional during Send operations.\r\nUsed in Update operations. Returned during Get operations.\r\nIgnored in other cases.","nullable":true},"destinationName":{"type":"string","description":"Name of the person to whom this Invitation is addressed.\r\nRequired during Send operations. Returned during Get operations.\r\nIgnored in other cases.","nullable":true},"destinationEMail":{"type":"string","description":"E-mail address to which this Invitation is addressed.\r\nRequired during Send operations. Returned during Get operations.\r\nIgnored in other cases.","nullable":true},"dontSendInvitationEmail":{"type":"boolean","description":"Flag to avoid sending the Invitation e-mail.\r\nOptional during Send operations.\r\nIgnored in other cases.","nullable":true},"tag":{"type":"string","description":"Tag associated with this Invitation. Typically an emoji symbol.\r\nRequired during Send operations. Returned during Get operations,\r\nbut visible to invitee only if the invitation has been accepted.\r\nIgnored in other cases.","nullable":true},"pin":{"type":"string","description":"PIN, or personal identification number, associated with this Invitation. Required during Send operations. Returned during Get operations, but visible to invitee only if the invitation has been accepted. Ignored in other cases. <br> Format is six digits integer number, eg. <code>012345</code>.","nullable":true},"type":{"type":"string","description":"Type of this Invitation (giver, receiver etc.). Required during Send operations. Returned during Get operations. Ignored in other cases. <br> May be one of the following:<ul> <li><code>GIVER</code>: the Giver is the unique owner, administrator and content manager of a Memori</li> <li><code>RECEIVER</code>: a Receiver is a named User that can access all the public content of a Memori, plus some specific content targeted specifically at them</li> </ul>","nullable":true},"state":{"type":"string","description":"State of this Invitation (pending, accepted, rejected etc.). Returned during Get operations. Ignored in other cases. <br> May be one of the following:<ul> <li><code>PENDING</code>: the Invitation has just been sent and no action has been perfomed yet</li> <li><code>ACCEPTED</code>: the destination of this Invitation has accepted it</li> <li><code>REJECTED</code>: the destination of this Invitation has rejected it</li> </ul>","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true}},"additionalProperties":false,"description":"Specifications of an Invitation object."}}}}
```

## The JSONLSpecs object

```json
{"openapi":"3.0.1","info":{"title":"Memori.ai Web API V2","version":"v2"},"components":{"schemas":{"JSONLSpecs":{"type":"object","properties":{"platform":{"type":"string","description":"Name of the platform for which the JSONL is intended. <br> Currently supported values are:<ul> <li><code>OpenAI</code>: the OpenAI platform</li> </ul>","nullable":true},"includeInstructions":{"type":"boolean","description":"If True the JSONL includes the instructions for the generative AI,\r\ni.e. the \"System\" role of each message.\r\nUsed only in Export operations."},"createdOrChangedAfter":{"type":"string","description":"If specified, only contents created or changed after this date will be\r\nincluded in the export.","format":"date-time","nullable":true}},"additionalProperties":false,"description":"Specifications for requests involving import/export of JSONL contents."}}}}
```

## The JWTLoginSpecs object

```json
{"openapi":"3.0.1","info":{"title":"Memori.ai Web API V2","version":"v2"},"components":{"schemas":{"JWTLoginSpecs":{"required":["jwtToken","tenant"],"type":"object","properties":{"jwtToken":{"minLength":1,"type":"string","description":"JWT token containing user information.\r\nRequired for JWT login."},"tenant":{"minLength":1,"type":"string","description":"Name of the Tenant to login to.\r\nRequired for JWT login."}},"additionalProperties":false,"description":"Specifications for JWT-based login."}}}}
```

## The ListActionLogsResponse object

````json
{"openapi":"3.0.1","info":{"title":"Memori.ai Web API V2","version":"v2"},"components":{"schemas":{"ListActionLogsResponse":{"type":"object","properties":{"actionLogs":{"type":"array","items":{"$ref":"#/components/schemas/ActionLogSpecs"},"description":"The list of Action Logs objects.","nullable":true},"requestID":{"type":"integer","description":"Progressive number of the request (since the Server started).\r\nUse this number, together with the RequestDateTime property,\r\nto report an anomalous reponse.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous reponse.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is indicative of the actual\r\nerror.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response of a List Action Logs request."},"ActionLogSpecs":{"type":"object","properties":{"actionLogID":{"type":"string","description":"ID of the Action Log object.\r\nUnique and assigned by the system.","nullable":true},"timestamp":{"type":"string","description":"Timestamp UTC of the Action Log.","format":"date-time"},"type":{"type":"string","description":"Type of Action Log. <br> May be one of the following:<ul> <li><code>UserCreated</code></li> <li><code>UserUpdated</code></li> <li><code>UserDeleted</code> (obsolete)</li> <li><code>UserLoggedIn</code></li> <li><code>UserLoggedOut</code></li> <li><code>MemoriCreated</code></li> <li><code>MemoriUpdated</code></li> <li><code>MemoriDeleted</code> (obsolete)</li> <li><code>MemoriOpen</code> (obsolete)</li> <li><code>MemoriClosed</code> (obsolete)</li> <li><code>IntegrationCreated</code></li> <li><code>IntegrationUpdated</code></li> <li><code>IntegrationDeleted</code> (obsolete)</li> <li><code>InvitationSent</code></li> <li><code>InvitationUpdated</code></li> <li><code>InvitationAccepted</code></li> <li><code>InvitationRejected</code></li> <li><code>AssetUploaded</code></li> <li><code>AssetUpdated</code></li> <li><code>Talk</code> (obsolete)</li> </ul>","nullable":true},"userID":{"type":"string","description":"ID of the associated User object.","nullable":true},"loginToken":{"type":"string","description":"Login token of the session where the Action\r\nhes been perfomred.","nullable":true},"memoriID":{"type":"string","description":"ID of the associated Memori object.","nullable":true},"integrationID":{"type":"string","description":"ID of the associated Integration object.","nullable":true},"invitationID":{"type":"string","description":"ID of the associated Invitation object.","nullable":true},"assetURL":{"type":"string","description":"URL of the associated Asset object.","nullable":true},"userAgent":{"type":"string","description":"User agent of the original HTTP request that performed the action.","nullable":true},"ipAddress":{"type":"string","description":"IP address of the remote host that performed the action.","nullable":true}},"additionalProperties":false,"description":"Specifications of an Action Log object."}}}}
````

## The ListAssetsResponse object

````json
{"openapi":"3.0.1","info":{"title":"Memori.ai Web API V2","version":"v2"},"components":{"schemas":{"ListAssetsResponse":{"type":"object","properties":{"assets":{"type":"array","items":{"$ref":"#/components/schemas/AssetSpecs"},"description":"The list of Asset objects.","nullable":true},"requestID":{"type":"integer","description":"Progressive number of the request (since the Server started).\r\nUse this number, together with the RequestDateTime property,\r\nto report an anomalous reponse.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous reponse.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is indicative of the actual\r\nerror.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response of a List Assets request."},"AssetSpecs":{"type":"object","properties":{"assetID":{"type":"string","description":"Asset ID. Unique and assigned by the system.\r\nReturned during Upload operations.\r\nIgnored in other cases.","nullable":true},"assetURL":{"type":"string","description":"Public URL of the Asset file. Unique and assigned by the system.\r\nReturned during Upload operations.\r\nIgnored in other cases.","nullable":true},"mimeType":{"type":"string","description":"Extrapolated MIME type.\r\nReturned during Upload operations.\r\nIgnored in other cases.","nullable":true},"originalFileName":{"type":"string","description":"Original name of the uploaded file, without the extension.\r\nReturned during Upload operations.\r\nUsed during Update operations.","nullable":true},"memoriID":{"type":"string","description":"Optional ID of the Memori object this Asset belongs to.\r\nMay be empty for assets not belonging to a Memori object.\r\nReturned during Upload operations.\r\nIgnored in other cases.","nullable":true},"remoteSessionCheck":{"type":"boolean","description":"Optional flag to protect resource downloads with remote session control.\r\nReturned during Upload operations.\r\nUsed during Update operations.","nullable":true},"engineMemoryID":{"type":"string","description":"Optional ID of the Memory object on the Memori Engine.\r\nMay be empty for public assets. \r\nReturned during Upload operations.\r\nUsed during Update operations. To clear this property during an\r\nUpdate operation set it to a single dash character (\"-\").","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true}},"additionalProperties":false,"description":"Specifications of an Asset object."}}}}
````

## The ListBadgesResponse object

````json
{"openapi":"3.0.1","info":{"title":"Memori.ai Web API V2","version":"v2"},"components":{"schemas":{"ListBadgesResponse":{"type":"object","properties":{"badges":{"type":"array","items":{"$ref":"#/components/schemas/BadgeSpecs"},"description":"The list of Badge objects.","nullable":true},"requestID":{"type":"integer","description":"Progressive number of the request (since the Server started).\r\nUse this number, together with the RequestDateTime property,\r\nto report an anomalous reponse.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous reponse.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is indicative of the actual\r\nerror.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response of a List Badges request."},"BadgeSpecs":{"type":"object","properties":{"badgeID":{"type":"string","description":"Badge ID. Unique and assigned by the system.","nullable":true},"date":{"type":"string","description":"Date of assignment.","format":"date-time"},"name":{"type":"string","description":"Badge name.","nullable":true},"description":{"type":"string","description":"Badge description.","nullable":true},"imageURL":{"type":"string","description":"URL of the badge image.","nullable":true},"tags":{"type":"array","items":{"type":"string"},"description":"List of badge tags.","nullable":true},"issuerName":{"type":"string","description":"Name of the badge issuer.","nullable":true},"issuerDescription":{"type":"string","description":"Description of the badge issuer","nullable":true},"issuerEmail":{"type":"string","description":"E-mail of the badge issuer (if available).","nullable":true},"issuerURL":{"type":"string","description":"URL of the badge issuer (if available).","nullable":true}},"additionalProperties":false}}}}
````

## The ListCompletionConfigsResponse object

````json
{"openapi":"3.0.1","info":{"title":"Memori.ai Web API V2","version":"v2"},"components":{"schemas":{"ListCompletionConfigsResponse":{"type":"object","properties":{"configs":{"type":"array","items":{"$ref":"#/components/schemas/CompletionConfigSpecs"},"description":"The list of Completion Config objects.","nullable":true},"requestID":{"type":"integer","description":"Progressive number of the request (since the Server started).\r\nUse this number, together with the RequestDateTime property,\r\nto report an anomalous reponse.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous reponse.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is indicative of the actual\r\nerror.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response of a List Completion Configs request."},"CompletionConfigSpecs":{"type":"object","properties":{"completionConfigID":{"type":"string","description":"Completion Config object ID.\r\nReturned during Get operations.\r\nIgnored in other cases.","nullable":true},"configName":{"type":"string","description":"Completion Config unique name.\r\nRequired during Creation operations.\r\nUsed during Update operations.\r\nReturned during Get operations.","nullable":true},"description":{"type":"string","description":"Optional Completion Config description.\r\nUsed during Creation operations and Update.\r\nReturned during Get operations.","nullable":true},"provider":{"type":"string","description":"Name of the Completion Provider. Required during Creation operations. Used during Update operations. Returned during Get operations. <br> Currently possible values are:<ul> <li><code>OpenAI</code></li> <li><code>Anthropic</code></li> <li><code>Mistral</code></li> <li><code>Azure_OpenAI</code></li> <li><code>Custom_OpenAI</code></li> </ul>","nullable":true},"endPoint":{"type":"string","description":"URL of the Completion Provider API end-point.\r\nUsed during Creation operations and Update.\r\nReturned during Get operations.","nullable":true},"apiKey":{"type":"string","description":"API key of the Completion Provider API end-point.\r\nRequired during Creation operations (optional for Custom_OpenAI provider).\r\nUsed during Update operations.\r\nReturned during Get operations as an obfuscated value.","nullable":true},"model":{"type":"string","description":"Name of the Completion Model. This is provider-specific,\r\nand for some providers (e.g. Azure) it is also part of\r\nthe end-point URL.\r\nRequired during Creation operations.\r\nUsed during Update operations.\r\nReturned during Get operations.","nullable":true},"questionAnsweringEnabled":{"type":"boolean","description":"If True this configuration can be used for Question & Answer operations.\r\nIf not specified False is assumed. At least one use must be enabled.\r\nUsed during Creation operations and Update operations.\r\nReturned during Get operations.","nullable":true},"importExportEnabled":{"type":"boolean","description":"If True this configuration can be used for Import/Export operations. \r\nIf not specified False is assumed. At least one use must be enabled.\r\nUsed during Creation operations and Update operations.\r\nReturned during Get operations.","nullable":true},"deepThoughtEnabled":{"type":"boolean","description":"If True this configuration can be used for Deep Thought operations. \r\nIf not specified False is assumed. At least one use must be enabled.\r\nUsed during Creation operations and Update operations.\r\nReturned during Get operations.","nullable":true},"ownerUserID":{"type":"string","description":"ID of the User this Config belongs to.\r\nReturned during Get operations if the user is the owner or an administrator.\r\nIgnored in other cases.","nullable":true},"ownerUserName":{"type":"string","description":"Name of the User this Config belongs to.\r\nReturned during Get operations.\r\nIgnored in other cases.","nullable":true},"ownerTenantName":{"type":"string","description":"Name of the Tenant of the User this Config belongs to.\r\nReturned during Get operations.\r\nIgnored in other cases.","nullable":true},"visibleToTenantUsers":{"type":"boolean","description":"If True this configuration can be used by other users of the owner's Tenant.\r\nIf not specified False is assumed.\r\nUsed during Creation operations and Update operations.\r\nReturned during Get operations.","nullable":true},"visibleToOtherUsers":{"type":"boolean","description":"If True this configuration can be used by users of other Tenants.\r\nIf not specified False is assumed.\r\nUsed during Creation operations and Update operations.\r\nReturned during Get operations.","nullable":true},"useAsDefault":{"type":"boolean","description":"If True this configuration is used as the default (for the operations it is enabled for)\r\nwhen a new Memori is created. The use as default requires that the configuration is visible\r\nat least to the owner's Tenant users.\r\nUsed during Creation operations and Update operations.\r\nReturned during Get operations.","nullable":true},"chargeable":{"type":"boolean","description":"If True the use of this configuration is chargeable to the customer.","nullable":true},"applyTo":{"type":"string","description":"During Creation and Update operations, when set forces this configuration to be applied to the specified Memori objects and purposes. Ignored during Get operations. <br> Can be one of the following:<ul> <li><code>ONLY_USER_MEMORI_ON_DEFAULT_ONLY_QA_PURPOSE</code>: the configuration is applied to user's Memori objects with the default configuration, for Question &amp; Answer purpose only.</li> <li><code>ONLY_USER_MEMORI_ON_DEFAULT_ONLY_IE_PURPOSE</code>: the configuration is applied to user's Memori objects with the default configuration, for Import/Export purpose only.</li> <li><code>ONLY_USER_MEMORI_ON_DEFAULT_ONLY_DT_PURPOSE</code>: the configuration is applied to user's Memori objects with the default configuration, for Deep Thought purpose only.</li> <li><code>ONLY_USER_MEMORI_ON_DEFAULT_ALL_ENABLED_PURPOSES</code>: the configuration is applied to user's Memori objects with the default configuration, for all enabled purposes.</li> <li><code>ALL_USER_MEMORI_ONLY_QA_PURPOSE</code>: the configuration is applied to all user's Memori objects, for Question &amp; Answer purpose only.</li> <li><code>ALL_USER_MEMORI_ONLY_IE_PURPOSE</code>: the configuration is applied to all user's Memori objects, for Import/Export purpose only.</li> <li><code>ALL_USER_MEMORI_ONLY_DT_PURPOSE</code>: the configuration is applied to all user's Memori objects, for Deep Thought purpose only.</li> <li><code>ALL_USER_MEMORI_ALL_ENABLED_PURPOSES</code>: the configuration is applied to all user's Memori objects, for all enabled purposes.</li> <li><code>ONLY_TENANT_MEMORI_ON_DEFAULT_ONLY_QA_PURPOSE</code>: the configuration is applied to the Tenant's Memori objects with the default configuration, for Question &amp; Answer purpose only.</li> <li><code>ONLY_TENANT_MEMORI_ON_DEFAULT_ONLY_IE_PURPOSE</code>: the configuration is applied to the Tenant's Memori objects with the default configuration, for Import/Export purpose only.</li> <li><code>ONLY_TENANT_MEMORI_ON_DEFAULT_ONLY_DT_PURPOSE</code>: the configuration is applied to the Tenant's Memori objects with the default configuration, for Deep Thought purpose only.</li> <li><code>ONLY_TENANT_MEMORI_ON_DEFAULT_ALL_ENABLED_PURPOSES</code>: the configuration is applied to the Tenant's Memori objects with the default configuration, for all enabled purposes.</li> <li><code>ALL_TENANT_MEMORI_ONLY_QA_PURPOSE</code>: the configuration is applied to all the Tenant's Memori objects, for Question &amp; Answer purpose only.</li> <li><code>ALL_TENANT_MEMORI_ONLY_IE_PURPOSE</code>: the configuration is applied to all the Tenant's Memori objects, for Import/Export purpose only.</li> <li><code>ALL_TENANT_MEMORI_ONLY_DT_PURPOSE</code>: the configuration is applied to all the Tenant's Memori objects, for Deep Thought purpose only.</li> <li><code>ALL_TENANT_MEMORI_ALL_ENABLED_PURPOSES</code>: the configuration is applied to all the Tenant's Memori objects, for all enabled purposes.</li> </ul>","nullable":true}},"additionalProperties":false,"description":"Specifications of a Completion Config object."}}}}
````

## The ListConsumptionLogsResponse object

````json
{"openapi":"3.0.1","info":{"title":"Memori.ai Web API V2","version":"v2"},"components":{"schemas":{"ListConsumptionLogsResponse":{"type":"object","properties":{"consumptionLogs":{"type":"array","items":{"$ref":"#/components/schemas/ConsumptionLogSpecs"},"description":"The list of Consumption Logs objects.","nullable":true},"requestID":{"type":"integer","description":"Progressive number of the request (since the Server started).\r\nUse this number, together with the RequestDateTime property,\r\nto report an anomalous reponse.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous reponse.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is indicative of the actual\r\nerror.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response of a List Consumption Logs request."},"ConsumptionLogSpecs":{"type":"object","properties":{"consumptionLogID":{"type":"string","description":"ID of the Consumption Log object.\r\nUnique and assigned by the system.","nullable":true},"from":{"type":"string","description":"Begin of the date interval of the Consumption Log.","format":"date-time"},"to":{"type":"string","description":"End of the date interval of the Consumption Log.","format":"date-time"},"type":{"type":"string","description":"Type of Consumption Log. <br> May be one of the following:<ul> <li><code>Daily</code></li> <li><code>Monthly</code></li> </ul>","nullable":true},"userID":{"type":"string","description":"ID of the associated User object.","nullable":true},"userName":{"type":"string","description":"Name of the associated User object.","nullable":true},"tenantName":{"type":"string","description":"Name of the Tenant of the associated User object.","nullable":true},"memoriID":{"type":"string","description":"ID of the associated Memori object.","nullable":true},"memoriName":{"type":"string","description":"Name of the associated Memori object.","nullable":true},"totalSessions":{"type":"integer","description":"Total number of sessions consumed in the interval.\r\nThese sessions are NOT counted towards the maximum number of sessions\r\navailable for the month.","format":"int32"},"validSessions":{"type":"integer","description":"Number of valid sessions consumed in the interval.\r\nThese sessions ARE counted towards the maximum number of sessions\r\navailable for the month.","format":"int32"},"completions":{"type":"integer","description":"Number of completions consumed in the interval using\r\na chargeable (i.e. non-custom) Completion Config.\r\nThese completions ARE counted towards the maximum number of completions\r\navailable for the month.","format":"int32"},"deepThoughtValidSessions":{"type":"integer","description":"Number of valid sessions consumed in the interval,\r\nwith Deep Thought enabled.\r\nThese sessions ARE counted towards the maximum number of sessions\r\navailable for the month.","format":"int32"},"deepThoughtCompletions":{"type":"integer","description":"Number of completions consumed in the interval,\r\nwith Deep Thought enabled, using a chargeable (i.e. non-custom) Completion Config.\r\nThese completions ARE counted towards the maximum number of completions\r\navailable for the month.","format":"int32"},"importedSize":{"type":"integer","description":"Number of characters imported in the interval using\r\na chargeable (i.e. non-custom) Completion Config.\r\nThis size IS counted towards the maximum size of imported characters\r\navailable for the month.","format":"int64"},"nonChargeableCompletions":{"type":"integer","description":"Number of completions consumed in the interval using\r\na non-chargeable (i.e. custom) Completion Config.\r\nThese completions are NOT counted towards the maximum number of completions\r\navailable for the month.","format":"int32"},"nonChargeableDeepThoughtCompletions":{"type":"integer","description":"Number of completions consumed in the interval,\r\nwith Deep Thought enabled, using a non-chargeable (i.e. custom) Completion Config.\r\nThese completions are NOT counted towards the maximum number of completions\r\navailable for the month.","format":"int32"},"nonChargeableImportedSize":{"type":"integer","description":"Number of characters imported in the interval using\r\na non-chargeable (i.e. custom) Completion Config.\r\nThis size is NOT counted towards the maximum size of imported characters\r\navailable for the month.","format":"int64"},"promptTokens":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"Number of prompt tokens consumed in the interval.\r\nThe key is a string formatted as ```\"provider|endpoint|API-key|model|charge|purpose\"```,\r\nwhere:<ul><li>```provider``` is the name of the Completion Provider (e.g. \"OpenAI\")</li><li>```endpoint``` is the end-point of the Completion Provider</li><li>```API-key``` is the obfuscated API key used by the Completion Provider</li><li>```model``` is the model used by the Completion Provider (e.g. \"gpt-4o)</li><li>```charge``` is a flag indicating if the token consumption comes from a chargeable\r\n(i.e. non-custom) or non-chargeable (i.e. custom) Completion Config (\"$\" for chargeable, empty otherwise)</li><li>```purpose``` is the purpose of the prompt (e.g. \"QA\" for question answering,\r\n\"DT\" for Deep Thought, \"IE\" for import/export etc.)</li></ul>\r\nThe value is the corresponding prompt tokens count.","nullable":true},"completionTokens":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"Number of completion tokens consumed in the interval.\r\nThe key is a string formatted as ```\"provider|endpoint|API-key|model|charge|purpose\"```,\r\nwhere:<ul><li>```provider``` is the name of the Completion Provider (e.g. \"OpenAI\")</li><li>```endpoint``` is the end-point of the Completion Provider</li><li>```API-key``` is the obfuscated API key used by the Completion Provider</li><li>```model``` is the model used by the Completion Provider (e.g. \"gpt-4o\")</li><li>```charge``` is a flag indicating if the token consumption comes from a chargeable\r\n(i.e. non-custom) or non-chargeable (i.e. custom) Completion Config (\"$\" for chargeable, empty otherwise)</li><li>```purpose``` is the purpose of the prompt (e.g. \"QA\" for question answering,\r\n\"DT\" for Deep Thought, \"IE\" for import/export etc.)</li></ul>\r\nThe value is the corresponding completion tokens count.","nullable":true}},"additionalProperties":false,"description":"Specifications of a Consumption Log object."}}}}
````

## The ListIntegrationsResponse object

````json
{"openapi":"3.0.1","info":{"title":"Memori.ai Web API V2","version":"v2"},"components":{"schemas":{"ListIntegrationsResponse":{"type":"object","properties":{"integrations":{"type":"array","items":{"$ref":"#/components/schemas/IntegrationSpecs"},"description":"The list of Integration objects.","nullable":true},"requestID":{"type":"integer","description":"Progressive number of the request (since the Server started).\r\nUse this number, together with the RequestDateTime property,\r\nto report an anomalous reponse.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous reponse.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is indicative of the actual\r\nerror.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response of a List Integrations request."},"IntegrationSpecs":{"type":"object","properties":{"integrationID":{"type":"string","description":"Integration ID. Unique and assigned by the system.\r\nReturned during Registration and Get operations.\r\nIgnored in other cases.","nullable":true},"memoriID":{"type":"string","description":"ID of the Memori object this Integration refers to.\r\nRequired during Registration operations. Returned during\r\nGet operations. Ignored in other cases.","nullable":true},"type":{"type":"string","description":"Type of this integration (Google, Alexa, landing home page, etc.). Required during Registration operations. Returned during Get operations. Ignored in other cases. <br> May be one of the following:<ul> <li><code>GOOGLE</code>: a Google Home integration</li> <li><code>ALEXA</code>: an Amazon Alexa integration</li> <li><code>LANDING_EXPERIENCE</code>: a public Memori home page and landing experience</li> </ul>","nullable":true},"state":{"type":"string","description":"Current state of deployment this integration. Returned during Registration and Get operations. Ignored in other cases. <br> May be one of the following:<ul> <li><code>NEW</code></li> <li><code>PROCESSING</code></li> <li><code>DONE</code></li> <li><code>REMOVED</code></li> <li><code>ERROR</code></li> <li><code>WAITING_MANUAL_ACTION</code></li> <li><code>DRAFT</code></li> <li><code>NOT_VALIDATED</code></li> <li><code>PUBLISHED</code></li> </ul>","nullable":true},"deviceEmails":{"type":"array","items":{"type":"string"},"description":"List of e-mails associated with on-device accounts.\r\nUsed during Registration and Update operations for\r\nintegration types ```GOOGLE``` and ```ALEXA```.\r\nReturned during Get operations.\r\nIgnored in other cases.","nullable":true},"invocationText":{"type":"string","description":"Text to be spoken to invoke the integration.\r\nMay be used during Registration and Update operations for\r\nintegration types ```GOOGLE``` and ```ALEXA```.\r\nReturned during Get operations.\r\nIgnored in other cases.","nullable":true},"jobID":{"type":"string","description":"ID of the deployment job of this integration.\r\nReturned during Registration and Get operations.\r\nIgnored in other cases.","nullable":true},"customData":{"type":"string","description":"JSON structure containing the data specific for this type of\r\nintegration. May be used during Registration and Update operations,\r\ndepending on the integration type.\r\nReturned during Get operations.\r\nIgnored in other cases.","nullable":true},"resources":{"type":"array","items":{"$ref":"#/components/schemas/IntegrationResourceSpecs"},"description":"Additional resources need by, or returned by, the deployment job.\r\nMay be used during Registration and Update operations, depending\r\non the integration type.\r\nReturned during Get operations.\r\nIgnored in other cases.","nullable":true},"publish":{"type":"boolean","description":"If set to True, the integration will be published on the\r\ncorresponding environment (e.g. on Amazon Alexa or Google Home)\r\nto the general public. If False the integration will remain\r\navailable only for testing.\r\nUsed during Update operations. Returned during Get operations.\r\nIgnored in other cases.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true}},"additionalProperties":false,"description":"Specifications of an Integration object."},"IntegrationResourceSpecs":{"type":"object","properties":{"name":{"type":"string","description":"Resource name.","nullable":true},"url":{"type":"string","description":"Resource URL.","nullable":true}},"additionalProperties":false,"description":"Specifications of an Integration Resource object."}}}}
````

## The ListInvitationsResponse object

````json
{"openapi":"3.0.1","info":{"title":"Memori.ai Web API V2","version":"v2"},"components":{"schemas":{"ListInvitationsResponse":{"type":"object","properties":{"invitations":{"type":"array","items":{"$ref":"#/components/schemas/InvitationSpecs"},"description":"The list of Invitation objects.","nullable":true},"requestID":{"type":"integer","description":"Progressive number of the request (since the Server started).\r\nUse this number, together with the RequestDateTime property,\r\nto report an anomalous reponse.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous reponse.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is indicative of the actual\r\nerror.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response of a List Sent Invitations or List Received Invitations\r\nrequests."},"InvitationSpecs":{"type":"object","properties":{"invitationID":{"type":"string","description":"ID of this Invitation object. Unique and assigned by the system.\r\nReturned during Send and Get operations.\r\nIgnored in other cases.","nullable":true},"memoriID":{"type":"string","description":"ID of the Memori object this Invitation refers to.\r\nRequired during Send operations. Returned during\r\nGet operations. Ignored in other cases.","nullable":true},"engineMemoriID":{"type":"string","description":"ID of the Memori object on the Memori Engine.\r\nReturned during Get operations. Ignored in other cases.","nullable":true},"isInviter":{"type":"boolean","description":"True if the requesting User sent this Invitation, and as\r\nsuch has admin (update and delete) access to this Invitation.\r\nReturned during Get operations. Ignored in other cases."},"isInvitee":{"type":"boolean","description":"True if the requesting User received this Invitation, and as\r\nsuch has accept/reject access to this Invitation.\r\nReturned during Get operations. Ignored in other cases."},"text":{"type":"string","description":"Text of this Invitation. Optional during Send operations.\r\nUsed in Update operations. Returned during Get operations.\r\nIgnored in other cases.","nullable":true},"destinationName":{"type":"string","description":"Name of the person to whom this Invitation is addressed.\r\nRequired during Send operations. Returned during Get operations.\r\nIgnored in other cases.","nullable":true},"destinationEMail":{"type":"string","description":"E-mail address to which this Invitation is addressed.\r\nRequired during Send operations. Returned during Get operations.\r\nIgnored in other cases.","nullable":true},"dontSendInvitationEmail":{"type":"boolean","description":"Flag to avoid sending the Invitation e-mail.\r\nOptional during Send operations.\r\nIgnored in other cases.","nullable":true},"tag":{"type":"string","description":"Tag associated with this Invitation. Typically an emoji symbol.\r\nRequired during Send operations. Returned during Get operations,\r\nbut visible to invitee only if the invitation has been accepted.\r\nIgnored in other cases.","nullable":true},"pin":{"type":"string","description":"PIN, or personal identification number, associated with this Invitation. Required during Send operations. Returned during Get operations, but visible to invitee only if the invitation has been accepted. Ignored in other cases. <br> Format is six digits integer number, eg. <code>012345</code>.","nullable":true},"type":{"type":"string","description":"Type of this Invitation (giver, receiver etc.). Required during Send operations. Returned during Get operations. Ignored in other cases. <br> May be one of the following:<ul> <li><code>GIVER</code>: the Giver is the unique owner, administrator and content manager of a Memori</li> <li><code>RECEIVER</code>: a Receiver is a named User that can access all the public content of a Memori, plus some specific content targeted specifically at them</li> </ul>","nullable":true},"state":{"type":"string","description":"State of this Invitation (pending, accepted, rejected etc.). Returned during Get operations. Ignored in other cases. <br> May be one of the following:<ul> <li><code>PENDING</code>: the Invitation has just been sent and no action has been perfomed yet</li> <li><code>ACCEPTED</code>: the destination of this Invitation has accepted it</li> <li><code>REJECTED</code>: the destination of this Invitation has rejected it</li> </ul>","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true}},"additionalProperties":false,"description":"Specifications of an Invitation object."}}}}
````

## The ListMemoriCategoriesResponse object

````json
{"openapi":"3.0.1","info":{"title":"Memori.ai Web API V2","version":"v2"},"components":{"schemas":{"ListMemoriCategoriesResponse":{"type":"object","properties":{"memoriCategories":{"type":"array","items":{"type":"string"},"description":"The list of known Memori categories (or tags).","nullable":true},"requestID":{"type":"integer","description":"Progressive number of the request (since the Server started).\r\nUse this number, together with the RequestDateTime property,\r\nto report an anomalous reponse.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous reponse.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is indicative of the actual\r\nerror.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response of a List Memori Categories request."}}}}
````

## The ListMemoriConfigsResponse object

````json
{"openapi":"3.0.1","info":{"title":"Memori.ai Web API V2","version":"v2"},"components":{"schemas":{"ListMemoriConfigsResponse":{"type":"object","properties":{"memoriConfigs":{"type":"array","items":{"$ref":"#/components/schemas/MemoriConfigSpecs"},"description":"The list of Memori Configuration objects.","nullable":true},"requestID":{"type":"integer","description":"Progressive number of the request (since the Server started).\r\nUse this number, together with the RequestDateTime property,\r\nto report an anomalous reponse.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous reponse.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is indicative of the actual\r\nerror.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response of a List Memori Configurations request."},"MemoriConfigSpecs":{"type":"object","properties":{"memoriConfigID":{"type":"string","description":"Memori Configuration ID.","nullable":true},"useCase":{"type":"string","description":"Typical use case for this configuration (business, personal etc.). <br> May be one of the following:<ul> <li><code>BUSINESS</code></li> <li><code>PERSONAL</code></li> </ul>","nullable":true},"culture":{"type":"string","description":"Culture for dialogs and natural language processing of this configuration. <br> Currently supported cultures are:<ul> <li><code>it-IT</code></li> <li><code>en-US</code></li> </ul>","nullable":true},"descriptions":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"Descriptions of this configuration, by culture (italian, english etc.). <br> Currently supported cultures are:<ul> <li><code>it-IT</code></li> <li><code>en-US</code></li> </ul>","nullable":true},"logoURL":{"type":"string","description":"URL of the logo representing this configuration.","nullable":true}},"additionalProperties":false,"description":"Specifications of a Memori Configuration object."}}}}
````

## The ListMemoriResponse object

````json
{"openapi":"3.0.1","info":{"title":"Memori.ai Web API V2","version":"v2"},"components":{"schemas":{"ListMemoriResponse":{"type":"object","properties":{"memori":{"type":"array","items":{"$ref":"#/components/schemas/MemoriSpecs"},"description":"The list of Memori objects.","nullable":true},"totalCount":{"type":"integer","description":"The total count of Memori objects (after filters, before pagination).","format":"int32"},"requestID":{"type":"integer","description":"Progressive number of the request (since the Server started).\r\nUse this number, together with the RequestDateTime property,\r\nto report an anomalous reponse.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous reponse.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is indicative of the actual\r\nerror.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response of a List Memori request."},"MemoriSpecs":{"type":"object","properties":{"memoriID":{"type":"string","description":"Memori ID. Unique and assigned by the system.\r\nReturned during Registration and Get operations.\r\nUsed in Update, Transfer and Delete operations.\r\nIgnored in other cases.","nullable":true},"name":{"type":"string","description":"Memori name. Required during Registration operations.\r\nUsed during Update operations. Returned during Get operations.","nullable":true},"password":{"type":"string","description":"Password. Required during Registration operations. May be required during Update operations. Ignored in other cases. <br> Must be provided in the following cases:<ul> <li>When PrivacyType is <code>SECRET</code>: during Registration and Update operations, and it can be any non-empty string</li> <li>When PrivacyType is <code>PRIVATE</code>: only during Update operations, and it must be set with the SecretToken provided during registration</li> </ul>","nullable":true},"recoveryTokens":{"type":"array","items":{"type":"string"},"description":"Recovery tokens. Returned during Registration operations if the\r\nMemori Privacy Type is set to ```SECRET``` and a\r\nTotalNumberOfRecoveryTokens is greater than 0.\r\nIgnored in other cases.","nullable":true},"newPassword":{"type":"string","description":"New password. Used during Update operations. Ignored in other cases. <br> Can be provided in the following case:<ul> <li>When PrivacyType is <code>SECRET</code>: during Update operations, and it can be any non-empty string</li> </ul>","nullable":true},"ownerUserID":{"type":"string","description":"ID of the User this Memori belongs to.\r\nReturned during Registration and Get operations.\r\nUsed in Transfer operation.\r\nIgnored in other cases.","nullable":true},"ownerUserName":{"type":"string","description":"Name of the User this Memori belongs to.\r\nReturned during Registration and Get operations.\r\nUsed in Transfer operation.\r\nIgnored in other cases.","nullable":true},"ownerTenantName":{"type":"string","description":"Name of the Tenant of the User this Memori belongs to.\r\nReturned during Registration and Get operations.\r\nUsed in Transfer operation.\r\nIgnored in other cases.","nullable":true},"memoriConfigurationID":{"type":"string","description":"Memori configuration ID. Required during Registration.\r\nReturned during Get operations.","nullable":true},"description":{"type":"string","description":"Memori description. Required during Registration and Update\r\noperations. Returned during Get operations.","nullable":true},"completionDescription":{"type":"string","description":"Memori description for completions. If specified, it is used in\r\nplace of ```Description``` when obtaining a completion\r\nvia a generative AI.\r\nMay be specified during Registration and Update operations.\r\nReturned during Get operations.","nullable":true},"dtDescription":{"type":"string","description":"Memori description for Deep Thought. If specified, it is used in\r\nplace of ```CompletionDescription``` or ```Description```\r\nwhen performing Deep Thought operations.\r\nMay be specified during Registration and Update operations.\r\nReturned during Get operations.","nullable":true},"engineMemoriID":{"type":"string","description":"ID of the corresponding object on the Memori Engine.\r\nReturned during Get operations. Ignored in other cases.","nullable":true},"isOwner":{"type":"boolean","description":"True if the requesting User is the owner of this Memori, and as\r\nsuch has admin (update and delete) access to this Memori.\r\nReturned during Get operations. Ignored in other cases."},"isGiver":{"type":"boolean","description":"True if the requesting User has Giver (full read and write) access \r\nto this Memori. Returned during Get operations.\r\nIgnored in other cases."},"isReceiver":{"type":"boolean","description":"True if the requesting User has Receiver (special read only) access \r\nto this Memori. Returned during Get operations.\r\nIgnored in other cases."},"giverTag":{"type":"string","description":"The tag of the Giver of this Memori. Returned during Registration and Get operations. Used Update operations. Ignored in other cases. <br> It is present only if this Memori belongs to the logged in User.","nullable":true},"giverPIN":{"type":"string","description":"The PIN of the Giver of this Memori. Returned during Registration and Get operations. Used Update operations. Ignored in other cases. <br> It is present only if this Memori belongs to the logged in User.","nullable":true},"privacyType":{"type":"string","description":"Type of privacy setting for this Memori (private, public or secret). Required during Registration operations. Used during Update operations. Returned during Get operations. <br> May be one of the following:<ul> <li><code>PUBLIC</code>: this Memori is not encrypted, has no password and is accessible to everyone</li> <li><code>PRIVATE</code>: this Memori is not encrypted, has a system-generated Secret Token as password and can be accessed only by providing it</li> <li><code>SECRET</code>: this Memori is encrypted, has a user-defined password and can be accessed only by providing it</li> </ul>","nullable":true},"secretToken":{"type":"string","description":"Secret Token. Assigned by the system. Must be used as Password when the PrivacyType is <code>PRIVATE</code>. Returned during Open Session and Get operations. May be required during Update operations. Ignored in other cases. <br> It is present only if this Memori is accessible to the logged in User (e.g. they are the owner, a legitimate Giver or Receiver, or an Admin/SuperAdmin) and its Privacy Type is set to <code>PRIVATE</code>.","nullable":true},"minimumNumberOfRecoveryTokens":{"type":"integer","description":"Minium number of recovery tokens. Recovery tokens allow to access a secret Memori when its original password has been lost. May be provided during Registration operations. Returned during Get operations. Ignored in other cases. <br> It is present only if this Memori belongs to the logged in User and its Privacy Type is set to <code>SECRET</code>.","format":"int32","nullable":true},"totalNumberOfRecoveryTokens":{"type":"integer","description":"Total number of recovery tokens. Recovery tokens allow to access\r\na secret Memori when its original password has been lost. If set,\r\na set of recovery tokens will be generated and returned after\r\nRegistration completes.","format":"int32","nullable":true},"sentInvitations":{"type":"array","items":{"$ref":"#/components/schemas/InvitationSpecs"},"description":"List of Invitation objects sent for this Memori. Returned during Get operations. Ignored in other cases. <br> It is present only if this Memori belongs to the logged in User.","nullable":true},"receivedInvitations":{"type":"array","items":{"$ref":"#/components/schemas/InvitationSpecs"},"description":"List of Invitation objects received for this Memori. Returned during Get operations. Ignored in other cases. <br> It is present only if this Memori is accessible to the logged in User (e.g. they are the owner or a legitimate Giver or Receiver).","nullable":true},"integrations":{"type":"array","items":{"$ref":"#/components/schemas/IntegrationSpecs"},"description":"List of Integration objects associated with this Memori.\r\nRetured during Get operations. Ignored in other cases.","nullable":true},"avatarURL":{"type":"string","description":"URL of the avatar image represting this Memori object.\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.","nullable":true},"coverURL":{"type":"string","description":"URL of the cover image represting this Memori object.\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.","nullable":true},"avatar3DURL":{"type":"string","description":"URL of the avatar 3D model represting this Memori object.\r\nIt is obtained from the CustomData property of the public home page\r\nIntegration object for this Memori, if present. To be changed, the\r\nIntegration object must be changed.\r\nReturned during Get operations. Ignored in other cases.","nullable":true},"avatarOriginal3DURL":{"type":"string","description":"Original URL of the avatar 3D model represting this Memori object.\r\nIt is obtained from the CustomData property of the public home page\r\nIntegration object for this Memori, if present. To be changed, the\r\nIntegration object must be changed.\r\nReturned during Get operations. Ignored in other cases.","nullable":true},"needsPosition":{"type":"boolean","description":"True if this Memori requires positioning to be accessed.\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.","nullable":true},"needsDateTime":{"type":"boolean","description":"True if this Memori requires current date/time to be accessed.\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.","nullable":true},"voiceType":{"type":"string","description":"Type of voice for this Memori (male or female). May be provided during Registration and Update operations. Returned during Get operations. <br> Can be one of the following:<ul> <li><code>MALE</code>: standard male voice</li> <li><code>FEMALE</code>: standard female voice</li> </ul>","nullable":true},"culture":{"type":"string","description":"Culture for dialogs and natural language processing of this Memori. Returned during Get operations. Ignored in other cases. <br> Currently supported cultures are:<ul> <li><code>it-IT</code></li> <li><code>en-US</code></li> </ul>","nullable":true},"categories":{"type":"array","items":{"type":"string"},"description":"Categories (or tags) associated with this Memori.\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.","nullable":true},"nsfw":{"type":"boolean","description":"True if this Memori content must be considered\r\nnot safe for minors of working environments.\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.","nullable":true},"requireLoginToken":{"type":"boolean","description":"When True, a Giver Tag/Pin or a valid login token is needed to open a session","nullable":true},"ageRestriction":{"type":"integer","description":"The minimum age required to open a session to this Memori.\r\nReturned during Get operations.\r\nIgnored in other cases.","format":"int32"},"exposed":{"type":"boolean","description":"True if this Memori must be exposed on the homepage\r\nof its corresponding owner User's tenant.\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.","nullable":true},"mobile":{"type":"boolean","description":"True if this Memori must be accessible from the mobile app.\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.","nullable":true},"confidenceOffset":{"type":"number","description":"The offset to be applied to confidence levels.\r\nTypically, in the range from -0.02 to 0.02.","format":"float","nullable":true},"disableR2R3Loop":{"type":"boolean","description":"True if this Memori must skip the R2-R3 loop, \r\ni.e. must consider medium confidence answers as high confidence\r\nanswers in R1.\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.","nullable":true},"disableR4Loop":{"type":"boolean","description":"True if this Memori must skip the R4 loop,\r\ni.e. must not propose randomly picked contents when a Time Out\r\nevent is received in R1.\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.","nullable":true},"disableR5Loop":{"type":"boolean","description":"True if this Memori must skip the R5 loop,\r\ni.e. must not accept the \"not what I asked\" intent in R1.\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.","nullable":true},"scorm":{"type":"boolean","description":"True if this Memori is a SCORM agent (subject to MemoriAi.WebApi.ModelV2.TenantSpecs.MaxScormMemori when billing is not delegated).\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.","nullable":true},"enableCompletions":{"type":"boolean","description":"True if this Memori must try to answer using completions from a\r\nLarge Language Model, if available, when no other answers are\r\navailable.","nullable":true},"enableDeepThought":{"type":"boolean","description":"If set to ```True``` this Memori will collect known facts about the user\r\non a special long term memory and makes use of it to improve the conversation.\r\nRequires ```EnableCompletions``` to be set to ```True``` to work appropriately.","nullable":true},"alwaysAnswerWithCompletion":{"type":"boolean","description":"If set to ```True``` this Memori will always try to answer with a completion.\r\nMemory objects will be used for generative AI prompting, but not for direct answers.\r\nRequires ```EnableCompletions``` to be set to ```True``` to work appropriately.\r\nCan't be used in conjunction with the ```Chaining``` feature.\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.","nullable":true},"disableCompletionMediaExtraction":{"type":"boolean","description":"If set to ```True``` this Memori will not try to extract related media\r\nwhen generating a response through a completion with generative AI.\r\nThis flag has no effect to user-generated content: attached media will always be provided.\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.","nullable":true},"disableAIContentCollection":{"type":"boolean","description":"If set to ```True``` this Memori does not collect AI-generated content\r\n(CompletionDraft memories) and unanswered questions.","nullable":true},"completionConfigNameForQuestionAnswering":{"type":"string","description":"Name of the Completion Configuration used for Question Answering\r\nwith a Large Language Model. If null the default is used.\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.\r\nWhen updating, set it to a single dash character (```-```) to \r\nremove a previously set configuration.","nullable":true},"completionConfigForQuestionAnswering":{"$ref":"#/components/schemas/CompletionConfigSpecs"},"completionConfigNameForImportExport":{"type":"string","description":"Name of the Completion Configuration used for Import/Export\r\nwith a Large Language Model. If null the default is used.\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.\r\nWhen updating, set it to a single dash character (```-```) to \r\nremove a previously set configuration.","nullable":true},"completionConfigForImportExport":{"$ref":"#/components/schemas/CompletionConfigSpecs"},"completionConfigNameForDeepThought":{"type":"string","description":"Name of the Completion Configuration used for Deep Thought.\r\nIf null the default is used.\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.\r\nWhen updating, set it to a single dash character (```-```) to \r\nremove a previously set configuration.","nullable":true},"completionConfigForDeepThought":{"$ref":"#/components/schemas/CompletionConfigSpecs"},"completionTemperature":{"type":"number","description":"Temperature for Completions.\r\nIf not set a default is used.\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.","format":"float","nullable":true},"completionMaxTokens":{"type":"integer","description":"Maximum number of output tokens for Completions.\r\nIf not set a default is used.\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.","format":"int32","nullable":true},"chainingMemoriID":{"type":"string","description":"Optional Engine ID of a chained Memori. If set, any time this Memori\r\ncan't find an answer to a question, it will try to ask to the chained Memori.\r\nThe chained Memori will then answer and transparently handle the subsequent dialog.\r\nThe user will not be aware of chaining.\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.\r\nWhen updating, set it to a single dash character (```-```) to \r\nremove a previously set chaining.","nullable":true},"chainingBaseURL":{"type":"string","description":"Optional base URL of a chained Memori, typically ```https://engine.memori.ai/```.\r\nRequired if ChainingMemoriID is set.\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.","nullable":true},"chainingPassword":{"type":"string","description":"Password of the chained Memori. Required if ChainingMemoriID is set.\r\nMay be provided during Registration and Update operations.\r\nIgnored in other cases.","nullable":true},"enableBoardOfExperts":{"type":"boolean","description":"If set to ```True``` this Memori will act as the chairman of\r\na board of experts, i.e. for each question will determine which expert\r\nis competent and forward the question to it.\r\nAt least an Expert Reference must then be provided for this feature to activate.","nullable":true},"enableMacroFunctions":{"type":"array","items":{"type":"string"},"description":"List of Macro Function names enabled for this Memori. <br> Currently available Macro Functions are:<ul> <li><code>Wikipedia</code>: adds functions to search for a topic on Wikipedia</li> <li><code>URLCrawling</code>: adds functions to crawl a web page</li> <li><code>ContextVariables</code>: adds functions to manage context variables</li> </ul>","nullable":true},"macroParameters":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"Key-value pairs with values for macro-parameters of enabled Macro Functions.","nullable":true},"dcmUser":{"type":"string","description":"User name of the optional integration with the DCM platform.\r\nIf set, this Memori will be able send outcomes to the DCM platform\r\nwhen specific contents are emitted during the conversation.\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.\r\nWhen updating, set it to a single dash character (```-```) to \r\nremove a previously set integration.","nullable":true},"dcmSecret":{"type":"string","description":"Shared secret of the optional integration with the DCM platform.\r\nRequired if DCMUser is set.\r\nMay be provided during Registration and Update operations.\r\nIgnored in other cases.","nullable":true},"dcmAppContext":{"type":"string","description":"Application context of the optional integration with the DCM platform.\r\nRequired if DCMUser is set.\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.","nullable":true},"blockedUntil":{"type":"string","description":"Administrative block end date. Null if no administrative block is\r\nin effect. During an administrative block a Memori can be edited\r\nwith a Giver session, but not accessed with an anonymous or\r\nReceiver session.","format":"date-time","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true}},"additionalProperties":false,"description":"Specifications of a Memori object."},"InvitationSpecs":{"type":"object","properties":{"invitationID":{"type":"string","description":"ID of this Invitation object. Unique and assigned by the system.\r\nReturned during Send and Get operations.\r\nIgnored in other cases.","nullable":true},"memoriID":{"type":"string","description":"ID of the Memori object this Invitation refers to.\r\nRequired during Send operations. Returned during\r\nGet operations. Ignored in other cases.","nullable":true},"engineMemoriID":{"type":"string","description":"ID of the Memori object on the Memori Engine.\r\nReturned during Get operations. Ignored in other cases.","nullable":true},"isInviter":{"type":"boolean","description":"True if the requesting User sent this Invitation, and as\r\nsuch has admin (update and delete) access to this Invitation.\r\nReturned during Get operations. Ignored in other cases."},"isInvitee":{"type":"boolean","description":"True if the requesting User received this Invitation, and as\r\nsuch has accept/reject access to this Invitation.\r\nReturned during Get operations. Ignored in other cases."},"text":{"type":"string","description":"Text of this Invitation. Optional during Send operations.\r\nUsed in Update operations. Returned during Get operations.\r\nIgnored in other cases.","nullable":true},"destinationName":{"type":"string","description":"Name of the person to whom this Invitation is addressed.\r\nRequired during Send operations. Returned during Get operations.\r\nIgnored in other cases.","nullable":true},"destinationEMail":{"type":"string","description":"E-mail address to which this Invitation is addressed.\r\nRequired during Send operations. Returned during Get operations.\r\nIgnored in other cases.","nullable":true},"dontSendInvitationEmail":{"type":"boolean","description":"Flag to avoid sending the Invitation e-mail.\r\nOptional during Send operations.\r\nIgnored in other cases.","nullable":true},"tag":{"type":"string","description":"Tag associated with this Invitation. Typically an emoji symbol.\r\nRequired during Send operations. Returned during Get operations,\r\nbut visible to invitee only if the invitation has been accepted.\r\nIgnored in other cases.","nullable":true},"pin":{"type":"string","description":"PIN, or personal identification number, associated with this Invitation. Required during Send operations. Returned during Get operations, but visible to invitee only if the invitation has been accepted. Ignored in other cases. <br> Format is six digits integer number, eg. <code>012345</code>.","nullable":true},"type":{"type":"string","description":"Type of this Invitation (giver, receiver etc.). Required during Send operations. Returned during Get operations. Ignored in other cases. <br> May be one of the following:<ul> <li><code>GIVER</code>: the Giver is the unique owner, administrator and content manager of a Memori</li> <li><code>RECEIVER</code>: a Receiver is a named User that can access all the public content of a Memori, plus some specific content targeted specifically at them</li> </ul>","nullable":true},"state":{"type":"string","description":"State of this Invitation (pending, accepted, rejected etc.). Returned during Get operations. Ignored in other cases. <br> May be one of the following:<ul> <li><code>PENDING</code>: the Invitation has just been sent and no action has been perfomed yet</li> <li><code>ACCEPTED</code>: the destination of this Invitation has accepted it</li> <li><code>REJECTED</code>: the destination of this Invitation has rejected it</li> </ul>","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true}},"additionalProperties":false,"description":"Specifications of an Invitation object."},"IntegrationSpecs":{"type":"object","properties":{"integrationID":{"type":"string","description":"Integration ID. Unique and assigned by the system.\r\nReturned during Registration and Get operations.\r\nIgnored in other cases.","nullable":true},"memoriID":{"type":"string","description":"ID of the Memori object this Integration refers to.\r\nRequired during Registration operations. Returned during\r\nGet operations. Ignored in other cases.","nullable":true},"type":{"type":"string","description":"Type of this integration (Google, Alexa, landing home page, etc.). Required during Registration operations. Returned during Get operations. Ignored in other cases. <br> May be one of the following:<ul> <li><code>GOOGLE</code>: a Google Home integration</li> <li><code>ALEXA</code>: an Amazon Alexa integration</li> <li><code>LANDING_EXPERIENCE</code>: a public Memori home page and landing experience</li> </ul>","nullable":true},"state":{"type":"string","description":"Current state of deployment this integration. Returned during Registration and Get operations. Ignored in other cases. <br> May be one of the following:<ul> <li><code>NEW</code></li> <li><code>PROCESSING</code></li> <li><code>DONE</code></li> <li><code>REMOVED</code></li> <li><code>ERROR</code></li> <li><code>WAITING_MANUAL_ACTION</code></li> <li><code>DRAFT</code></li> <li><code>NOT_VALIDATED</code></li> <li><code>PUBLISHED</code></li> </ul>","nullable":true},"deviceEmails":{"type":"array","items":{"type":"string"},"description":"List of e-mails associated with on-device accounts.\r\nUsed during Registration and Update operations for\r\nintegration types ```GOOGLE``` and ```ALEXA```.\r\nReturned during Get operations.\r\nIgnored in other cases.","nullable":true},"invocationText":{"type":"string","description":"Text to be spoken to invoke the integration.\r\nMay be used during Registration and Update operations for\r\nintegration types ```GOOGLE``` and ```ALEXA```.\r\nReturned during Get operations.\r\nIgnored in other cases.","nullable":true},"jobID":{"type":"string","description":"ID of the deployment job of this integration.\r\nReturned during Registration and Get operations.\r\nIgnored in other cases.","nullable":true},"customData":{"type":"string","description":"JSON structure containing the data specific for this type of\r\nintegration. May be used during Registration and Update operations,\r\ndepending on the integration type.\r\nReturned during Get operations.\r\nIgnored in other cases.","nullable":true},"resources":{"type":"array","items":{"$ref":"#/components/schemas/IntegrationResourceSpecs"},"description":"Additional resources need by, or returned by, the deployment job.\r\nMay be used during Registration and Update operations, depending\r\non the integration type.\r\nReturned during Get operations.\r\nIgnored in other cases.","nullable":true},"publish":{"type":"boolean","description":"If set to True, the integration will be published on the\r\ncorresponding environment (e.g. on Amazon Alexa or Google Home)\r\nto the general public. If False the integration will remain\r\navailable only for testing.\r\nUsed during Update operations. Returned during Get operations.\r\nIgnored in other cases.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true}},"additionalProperties":false,"description":"Specifications of an Integration object."},"IntegrationResourceSpecs":{"type":"object","properties":{"name":{"type":"string","description":"Resource name.","nullable":true},"url":{"type":"string","description":"Resource URL.","nullable":true}},"additionalProperties":false,"description":"Specifications of an Integration Resource object."},"CompletionConfigSpecs":{"type":"object","properties":{"completionConfigID":{"type":"string","description":"Completion Config object ID.\r\nReturned during Get operations.\r\nIgnored in other cases.","nullable":true},"configName":{"type":"string","description":"Completion Config unique name.\r\nRequired during Creation operations.\r\nUsed during Update operations.\r\nReturned during Get operations.","nullable":true},"description":{"type":"string","description":"Optional Completion Config description.\r\nUsed during Creation operations and Update.\r\nReturned during Get operations.","nullable":true},"provider":{"type":"string","description":"Name of the Completion Provider. Required during Creation operations. Used during Update operations. Returned during Get operations. <br> Currently possible values are:<ul> <li><code>OpenAI</code></li> <li><code>Anthropic</code></li> <li><code>Mistral</code></li> <li><code>Azure_OpenAI</code></li> <li><code>Custom_OpenAI</code></li> </ul>","nullable":true},"endPoint":{"type":"string","description":"URL of the Completion Provider API end-point.\r\nUsed during Creation operations and Update.\r\nReturned during Get operations.","nullable":true},"apiKey":{"type":"string","description":"API key of the Completion Provider API end-point.\r\nRequired during Creation operations (optional for Custom_OpenAI provider).\r\nUsed during Update operations.\r\nReturned during Get operations as an obfuscated value.","nullable":true},"model":{"type":"string","description":"Name of the Completion Model. This is provider-specific,\r\nand for some providers (e.g. Azure) it is also part of\r\nthe end-point URL.\r\nRequired during Creation operations.\r\nUsed during Update operations.\r\nReturned during Get operations.","nullable":true},"questionAnsweringEnabled":{"type":"boolean","description":"If True this configuration can be used for Question & Answer operations.\r\nIf not specified False is assumed. At least one use must be enabled.\r\nUsed during Creation operations and Update operations.\r\nReturned during Get operations.","nullable":true},"importExportEnabled":{"type":"boolean","description":"If True this configuration can be used for Import/Export operations. \r\nIf not specified False is assumed. At least one use must be enabled.\r\nUsed during Creation operations and Update operations.\r\nReturned during Get operations.","nullable":true},"deepThoughtEnabled":{"type":"boolean","description":"If True this configuration can be used for Deep Thought operations. \r\nIf not specified False is assumed. At least one use must be enabled.\r\nUsed during Creation operations and Update operations.\r\nReturned during Get operations.","nullable":true},"ownerUserID":{"type":"string","description":"ID of the User this Config belongs to.\r\nReturned during Get operations if the user is the owner or an administrator.\r\nIgnored in other cases.","nullable":true},"ownerUserName":{"type":"string","description":"Name of the User this Config belongs to.\r\nReturned during Get operations.\r\nIgnored in other cases.","nullable":true},"ownerTenantName":{"type":"string","description":"Name of the Tenant of the User this Config belongs to.\r\nReturned during Get operations.\r\nIgnored in other cases.","nullable":true},"visibleToTenantUsers":{"type":"boolean","description":"If True this configuration can be used by other users of the owner's Tenant.\r\nIf not specified False is assumed.\r\nUsed during Creation operations and Update operations.\r\nReturned during Get operations.","nullable":true},"visibleToOtherUsers":{"type":"boolean","description":"If True this configuration can be used by users of other Tenants.\r\nIf not specified False is assumed.\r\nUsed during Creation operations and Update operations.\r\nReturned during Get operations.","nullable":true},"useAsDefault":{"type":"boolean","description":"If True this configuration is used as the default (for the operations it is enabled for)\r\nwhen a new Memori is created. The use as default requires that the configuration is visible\r\nat least to the owner's Tenant users.\r\nUsed during Creation operations and Update operations.\r\nReturned during Get operations.","nullable":true},"chargeable":{"type":"boolean","description":"If True the use of this configuration is chargeable to the customer.","nullable":true},"applyTo":{"type":"string","description":"During Creation and Update operations, when set forces this configuration to be applied to the specified Memori objects and purposes. Ignored during Get operations. <br> Can be one of the following:<ul> <li><code>ONLY_USER_MEMORI_ON_DEFAULT_ONLY_QA_PURPOSE</code>: the configuration is applied to user's Memori objects with the default configuration, for Question &amp; Answer purpose only.</li> <li><code>ONLY_USER_MEMORI_ON_DEFAULT_ONLY_IE_PURPOSE</code>: the configuration is applied to user's Memori objects with the default configuration, for Import/Export purpose only.</li> <li><code>ONLY_USER_MEMORI_ON_DEFAULT_ONLY_DT_PURPOSE</code>: the configuration is applied to user's Memori objects with the default configuration, for Deep Thought purpose only.</li> <li><code>ONLY_USER_MEMORI_ON_DEFAULT_ALL_ENABLED_PURPOSES</code>: the configuration is applied to user's Memori objects with the default configuration, for all enabled purposes.</li> <li><code>ALL_USER_MEMORI_ONLY_QA_PURPOSE</code>: the configuration is applied to all user's Memori objects, for Question &amp; Answer purpose only.</li> <li><code>ALL_USER_MEMORI_ONLY_IE_PURPOSE</code>: the configuration is applied to all user's Memori objects, for Import/Export purpose only.</li> <li><code>ALL_USER_MEMORI_ONLY_DT_PURPOSE</code>: the configuration is applied to all user's Memori objects, for Deep Thought purpose only.</li> <li><code>ALL_USER_MEMORI_ALL_ENABLED_PURPOSES</code>: the configuration is applied to all user's Memori objects, for all enabled purposes.</li> <li><code>ONLY_TENANT_MEMORI_ON_DEFAULT_ONLY_QA_PURPOSE</code>: the configuration is applied to the Tenant's Memori objects with the default configuration, for Question &amp; Answer purpose only.</li> <li><code>ONLY_TENANT_MEMORI_ON_DEFAULT_ONLY_IE_PURPOSE</code>: the configuration is applied to the Tenant's Memori objects with the default configuration, for Import/Export purpose only.</li> <li><code>ONLY_TENANT_MEMORI_ON_DEFAULT_ONLY_DT_PURPOSE</code>: the configuration is applied to the Tenant's Memori objects with the default configuration, for Deep Thought purpose only.</li> <li><code>ONLY_TENANT_MEMORI_ON_DEFAULT_ALL_ENABLED_PURPOSES</code>: the configuration is applied to the Tenant's Memori objects with the default configuration, for all enabled purposes.</li> <li><code>ALL_TENANT_MEMORI_ONLY_QA_PURPOSE</code>: the configuration is applied to all the Tenant's Memori objects, for Question &amp; Answer purpose only.</li> <li><code>ALL_TENANT_MEMORI_ONLY_IE_PURPOSE</code>: the configuration is applied to all the Tenant's Memori objects, for Import/Export purpose only.</li> <li><code>ALL_TENANT_MEMORI_ONLY_DT_PURPOSE</code>: the configuration is applied to all the Tenant's Memori objects, for Deep Thought purpose only.</li> <li><code>ALL_TENANT_MEMORI_ALL_ENABLED_PURPOSES</code>: the configuration is applied to all the Tenant's Memori objects, for all enabled purposes.</li> </ul>","nullable":true}},"additionalProperties":false,"description":"Specifications of a Completion Config object."}}}}
````

## The ListNotificationsResponse object

````json
{"openapi":"3.0.1","info":{"title":"Memori.ai Web API V2","version":"v2"},"components":{"schemas":{"ListNotificationsResponse":{"type":"object","properties":{"notifications":{"type":"array","items":{"$ref":"#/components/schemas/NotificationSpecs"},"description":"The list of Notification objects.","nullable":true},"requestID":{"type":"integer","description":"Progressive number of the request (since the Server started).\r\nUse this number, together with the RequestDateTime property,\r\nto report an anomalous reponse.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous reponse.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is indicative of the actual\r\nerror.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response of a List Notifications request."},"NotificationSpecs":{"type":"object","properties":{"notificationID":{"type":"string","description":"Notificaiton ID. Unique and assigned by the system.","nullable":true},"timestamp":{"type":"string","description":"Timestamp UTC of the notification.","format":"date-time"},"severity":{"type":"string","description":"Severity level. <br> May be one of the following:<ul> <li><code>INFO</code>: the notification is an information</li> <li><code>AWARD</code>: the notification is an award</li> <li><code>BANNER</code>: the notification is a banner</li> <li><code>WARN</code>: the notification is a warning</li> <li><code>ALERT</code>: the notification is an alert</li> </ul>","nullable":true},"texts":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"Notification text, in different languages/cultures.\r\nThe key is the language/culture, e.g. \"en-US\" or \"it-IT\",\r\nand the value is the corresponding text.","nullable":true},"additionalInfo":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"Optional additional information, in the form of key-value pairs.","nullable":true},"type":{"type":"string","description":"Notification type. /// <br> May be one of the following:<ul> <li><code>BROADCAST</code>: the notification is a broadcast</li> <li><code>TENANT</code>: the notification is a tenant notification</li> <li><code>USER</code>: the notification is a user notification</li> </ul>","nullable":true},"tenant":{"type":"string","description":"Tenant ID of the notification.","nullable":true},"userName":{"type":"string","description":"The Username of the user that the notification is addressed to.","nullable":true},"validFrom":{"type":"string","description":"The date and time from which the notification is valid. <br> Used when creating and modifying the notification. Ignored otherwise.","format":"date-time","nullable":true},"validTo":{"type":"string","description":"The date and time until which the notification is valid. <br> Used when creating and modifying the notification. Ignored otherwise.","format":"date-time","nullable":true}},"additionalProperties":false,"description":"Specifications of a Notification object."}}}}
````

## The ListTenantsResponse object

````json
{"openapi":"3.0.1","info":{"title":"Memori.ai Web API V2","version":"v2"},"components":{"schemas":{"ListTenantsResponse":{"type":"object","properties":{"tenants":{"type":"array","items":{"$ref":"#/components/schemas/TenantSpecs"},"description":"The Tenant object.","nullable":true},"requestID":{"type":"integer","description":"Progressive number of the request (since the Server started).\r\nUse this number, together with the RequestDateTime property,\r\nto report an anomalous reponse.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous reponse.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is indicative of the actual\r\nerror.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response to a List Tenants request."},"TenantSpecs":{"type":"object","properties":{"tenantID":{"type":"string","description":"Tenant ID.\r\nReturned during Get operations.\r\nIgnored in other cases.","nullable":true},"name":{"type":"string","description":"Tenant name. Usually a host name, e.g. ```app.memorytwin.com```.\r\nReturned during Get operations.\r\nUsed during Duplicate operations.\r\nIgnored in other cases.","nullable":true},"aliases":{"type":"array","items":{"type":"string"},"description":"Additional Tenant names. Usually host names, e.g. ```app.memorytwin.com```.\r\nReturned during Get operations.\r\nUsed during Update operations.\r\nIgnored in other cases.","nullable":true},"tenantType":{"type":"string","description":"Type of the Tenant. <br> The following values are possible: <ul> <li><code>Owned</code>: the tenant is owned Memori</li> <li><code>Customer</code>: the tenant is owned by a customer</li> </ul>","nullable":true},"description":{"type":"string","description":"Tenant description. Usually a human-readable name, e.g. ```MemoryTwin```.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","nullable":true},"logoURL":{"type":"string","description":"URL of the Tenant logo.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","nullable":true},"squareLogoURL":{"type":"string","description":"URL of the Tenant Icons logo.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","nullable":true},"adminEmail":{"type":"string","description":"Administrative e-mail for the Tenant.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","nullable":true},"theme":{"type":"string","description":"Color theme to be used for the Tenant.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","nullable":true},"feedbackURL":{"type":"string","description":"URL for the feedback form for the Tenant.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","nullable":true},"privacyPolicyURL":{"type":"string","description":"URL of the Privacy Policy page for the Tenant.","nullable":true},"speechProvider":{"type":"string","description":"Text to speech provider for the Tenant.","nullable":true},"speechAPIKey":{"type":"string","description":"API key for the text to speech provider.","nullable":true},"perplexityAPIKey":{"type":"string","description":"API key for Perplexity Search LLM Engine.","nullable":true},"adminCount":{"type":"integer","description":"Current number of administrative Users.\r\nReturned during Get operations.\r\nIgnored in other cases.","format":"int32"},"userCount":{"type":"integer","description":"Current number of normal Users.\r\nReturned during Get operations.\r\nIgnored in other cases.","format":"int32"},"memoriCount":{"type":"integer","description":"Current number of Memori objects.\r\nReturned during Get operations.\r\nIgnored in other cases.","format":"int32"},"scormMemoriCount":{"type":"integer","description":"Current number of Memori objects with SCORM enabled.\r\nReturned during Get operations.\r\nIgnored in other cases.\r\nOmitted when MemoriAi.WebApi.ModelV2.TenantSpecs.MaxScormMemori is not greater than zero.","format":"int32","nullable":true},"disableRegistration":{"type":"boolean","description":"If ```True``` no new User can be registered for this Tenant.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","nullable":true},"maxMemoriPerAdmin":{"type":"integer","description":"Maximum number of Memori objects per administrative User.\r\nIf ```0``` it means unlimited.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","format":"int32","nullable":true},"maxMemoriPerUser":{"type":"integer","description":"Maximum number of Memori objects per normal User.\r\nIf ```0``` it means unlimited.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","format":"int32","nullable":true},"maxTotalMemori":{"type":"integer","description":"Maximum total number of Memori objects.\r\nIf ```0``` it means unlimited.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","format":"int32","nullable":true},"maxAdmins":{"type":"integer","description":"Maximum number of administrative Users.\r\nIf ```0``` it means unlimited.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","format":"int32","nullable":true},"maxUsers":{"type":"integer","description":"Maximum number of normal Users.\r\nIf ```0``` it means unlimited.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","format":"int32","nullable":true},"maxFreeSessions":{"type":"integer","description":"Maximum total number of free sessions across all users of this Tenant.\r\nIf ```0``` it means unlimited.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","format":"int32","nullable":true},"maxFreeSessionsPerUser":{"type":"integer","description":"Maximum number of free sessions for a User.\r\nIf ```0``` it means unlimited.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","format":"int32","nullable":true},"nonFreeSessionCost":{"type":"number","description":"Cost of each new session above the max free sessions threshold.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","format":"double","nullable":true},"maxCompletions":{"type":"integer","description":"Maximum total number of completions across all users of this Tenant.\r\nif ```0``` it means unlimited.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","format":"int32","nullable":true},"maxCompletionsPerUser":{"type":"integer","description":"Maximum number of completions for a User.\r\nif ```0``` it means unlimited.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","format":"int32","nullable":true},"maxImportSize":{"type":"integer","description":"Maximum total number of characters that can be imported across\r\nall users of this Tenant.\r\nif ```0``` it means unlimited.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","format":"int64","nullable":true},"maxImportSizePerUser":{"type":"integer","description":"Maximum number of characters that can be imported by a User.\r\nif ```0``` it means unlimited.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","format":"int64","nullable":true},"maxScormMemori":{"type":"integer","description":"Maximum number of SCORM Memori for this Tenant.\r\nIf ```0``` it means unlimited.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","format":"int32","nullable":true},"paying":{"type":"boolean","description":"If ```True``` means this Tenant has an actual payment\r\ncontract in effect and non-free sessions (i.e. sessions above\r\nthe max free session thresholds) can be performed.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","nullable":true},"enableUserMemoriCreation":{"type":"boolean","description":"If ```True``` normal Users can create new Memori objects.\r\nAdministrative Users always can.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","nullable":true},"enableBoardOfExperts":{"type":"boolean","description":"If ```True``` the Board of Experts feature is enabled.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","nullable":true},"enableDCMIntegration":{"type":"boolean","description":"If ```True``` the DCM integration feature is enabled\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","nullable":true},"enableBadges":{"type":"boolean","description":"If ```True``` this Tenant accepts DCM outcomes and\r\nconsequently can receive badges in the Open Badge format.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","nullable":true},"enableDeepThought":{"type":"boolean","description":"If ```True``` the Deep Thought feature is enabled.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","nullable":true},"enableVirtualSpaces":{"type":"boolean","description":"If ```True``` the Virtual Spaces feature is enabled.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","nullable":true},"enableScorm":{"type":"boolean","description":"If ```True```, SCORM Memori may be created or enabled on this Tenant (subject to MemoriAi.WebApi.ModelV2.TenantSpecs.MaxScormMemori when billing is not delegated).\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations (SuperAdmin only).","nullable":true},"billingDelegation":{"type":"boolean","description":"If ```True``` the Tenant costs and limits are\r\ncomputed from the configured Billing interface.","nullable":true},"ssoLogin":{"type":"boolean","description":"When ```True```, SSO login is enabled for this tenant.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","nullable":true},"ssoRedirect":{"type":"string","description":"Optional redirect URL for SSO. Omitted when null.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","nullable":true},"chatLogsRetentionDays":{"type":"integer","description":"Number of days to retain chat logs. Must be at least 1.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","format":"int32","nullable":true},"smtpConfig":{"$ref":"#/components/schemas/SMTPConfig"},"translationServiceConfig":{"$ref":"#/components/schemas/TranslationServiceConfig"},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true}},"additionalProperties":false,"description":"Specifications of a Tenant object."},"SMTPConfig":{"type":"object","properties":{"server":{"type":"string","nullable":true},"user":{"type":"string","nullable":true},"password":{"type":"string","nullable":true},"port":{"type":"integer","format":"int32"},"socketSecurity":{"type":"string","nullable":true},"senderEmail":{"type":"string","nullable":true},"senderName":{"type":"string","nullable":true}},"additionalProperties":false},"TranslationServiceConfig":{"type":"object","properties":{"apiKey":{"type":"string","nullable":true},"url":{"type":"string","nullable":true}},"additionalProperties":false}}}}
````

## The ListTrustedApplicationsResponse object

````json
{"openapi":"3.0.1","info":{"title":"Memori.ai Web API V2","version":"v2"},"components":{"schemas":{"ListTrustedApplicationsResponse":{"type":"object","properties":{"trustedApplications":{"type":"array","items":{"$ref":"#/components/schemas/TrustedApplicationSpecs"},"description":"List of TrustedApplication objects.","nullable":true},"requestID":{"type":"integer","description":"Progressive number of the request (since the Server started).\r\nUse this number, together with the RequestDateTime property,\r\nto report an anomalous reponse.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous reponse.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is indicative of the actual\r\nerror.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response of a List TrustedApplications request."},"TrustedApplicationSpecs":{"required":["authorizationToken","isEnabled","name"],"type":"object","properties":{"trustedApplicationID":{"type":"string","description":"TrustedApplication ID. Unique and assigned by the system.\r\nReturned during Get operations. Ignored in other cases.","nullable":true},"tenantID":{"type":"string","description":"Tenant ID this TrustedApplication belongs to.\r\nRequired during Create operations. Returned during Get operations.","nullable":true},"name":{"maxLength":255,"minLength":1,"type":"string","description":"Name of the TrustedApplication. Must be unique within the tenant.\r\nRequired during Create operations. Used during Update operations.\r\nReturned during Get operations."},"description":{"maxLength":1000,"type":"string","description":"Description of the TrustedApplication.\r\nOptional during Create and Update operations.\r\nReturned during Get operations.","nullable":true},"baseUrl":{"maxLength":500,"type":"string","description":"Base URL of the TrustedApplication.\r\nOptional during Create and Update operations.\r\nReturned during Get operations.","nullable":true},"authorizationToken":{"maxLength":1000,"minLength":1,"type":"string","description":"Authorization token for the TrustedApplication.\r\nRequired during Create operations. Used during Update operations.\r\nReturned during Get operations."},"isEnabled":{"type":"boolean","description":"Whether the TrustedApplication is enabled.\r\nRequired during Create operations. Used during Update operations.\r\nReturned during Get operations."},"createdByUserID":{"type":"string","description":"User ID who created this TrustedApplication.\r\nReturned during Get operations. Ignored in other cases.","nullable":true},"lastModifiedByUserID":{"type":"string","description":"User ID who last modified this TrustedApplication.\r\nReturned during Get operations. Ignored in other cases.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true}},"additionalProperties":false,"description":"Specifications of a TrustedApplication object."}}}}
````

## The ListUserQueryMatchesResponse object

````json
{"openapi":"3.0.1","info":{"title":"Memori.ai Web API V2","version":"v2"},"components":{"schemas":{"ListUserQueryMatchesResponse":{"type":"object","properties":{"count":{"type":"integer","description":"Total number of Deep Thought User/query Match objects.","format":"int32"},"matches":{"type":"array","items":{"$ref":"#/components/schemas/UserQueryMatchSpecs"},"description":"The list of Deep Thought User/query Match objects.","nullable":true},"requestID":{"type":"integer","description":"Progressive number of the request (since the Server started).\r\nUse this number, together with the RequestDateTime property,\r\nto report an anomalous reponse.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous reponse.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is indicative of the actual\r\nerror.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response of a List Deep Thought User/query Matches request."},"UserQueryMatchSpecs":{"type":"object","properties":{"userQueryMatchID":{"type":"string","description":"Match ID. Unique and assigned by the system.","nullable":true},"analysisID":{"type":"string","description":"ID of the Analysis object this match refers to.","nullable":true},"memoriID":{"type":"string","description":"ID of the Memori object this match refers to.","nullable":true},"engineUserID":{"type":"string","description":"ID of the corresponding User object on the Engine.","nullable":true},"userName":{"type":"string","description":"User name.","nullable":true},"tenantName":{"type":"string","description":"User's Tenant name.","nullable":true},"userEmail":{"type":"string","description":"User's e-mail.","nullable":true},"match":{"type":"number","description":"Match level between the Analysis query and this User.\r\nValue is between 0 and 1, with 0.0 meaning no match\r\nand 1.0 meaning perfect match.","format":"float"}},"additionalProperties":false,"description":"Specifications of a Deep Thought User/query Match object."}}}}
````

## The ListUsersResponse object

````json
{"openapi":"3.0.1","info":{"title":"Memori.ai Web API V2","version":"v2"},"components":{"schemas":{"ListUsersResponse":{"type":"object","properties":{"users":{"type":"array","items":{"$ref":"#/components/schemas/UserSpecs"},"description":"The list of User objects.","nullable":true},"count":{"type":"integer","description":"Total number of User objects.","format":"int32"},"requestID":{"type":"integer","description":"Progressive number of the request (since the Server started).\r\nUse this number, together with the RequestDateTime property,\r\nto report an anomalous reponse.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous reponse.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is indicative of the actual\r\nerror.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response of a List Users request."},"UserSpecs":{"type":"object","properties":{"tenant":{"type":"string","description":"Name of the Tenant this user is associated to. Required during \r\nLogin and Registration operations. Returned during Get operations.\r\nIgnored in other cases.","nullable":true},"userID":{"type":"string","description":"User ID. Unique and assigned by the system.\r\nReturned during Login and Get operations. Ignored in other cases.","nullable":true},"userName":{"type":"string","description":"User name. Must be unique. Required during Login and Registration\r\noperations. Returned during Get operations.\r\nIgnored in other cases.","nullable":true},"eMail":{"type":"string","description":"E-mail address. Required during Registration operations. Used during Update operations. May be used as an alternative to UserName during Login operations. Returned during Get operations. <br> The address is checked via a verification code.","nullable":true},"avatarURL":{"type":"string","description":"URL of the avatar image representing the User.\r\nMay be provided during Registration and Update operations.\r\nReturned during Login and Get operations.","nullable":true},"avatar3DURL":{"type":"string","description":"URL of the avatar 3D model representing the User.\r\nMay be provided during Registration and Update operations.\r\nReturned during Login and Get operations.","nullable":true},"avatar3DURLType":{"type":"string","description":"Additional information about the avatar 3D model URL, e.g. if it's a head-only, full-body avatar, custom model etc. <br> Sample possible values are: <ul> <li><code>readyplayerme</code>: the avatar 3D URL points a half-body ReadyPlayerMe GLB model</li> <li><code>readyplayerme-full</code>: the avatar 3D URL points a full-body ReadyPlayerMe GLB model</li> <li><code>customglb</code>: the avatar 3D URL points to a custom GLB model</li> </ul>","nullable":true},"dontSendInvitationEmail":{"type":"boolean","description":"If ```True``` during a Creation operation, the automatic\r\ninvitation e-mail is not sent, and the temporary password is\r\nreturned as part of the operation response.\r\nUsed during Creation operations. Ignored in other cases.","nullable":true},"referral":{"type":"string","description":"Optional referral URL from which the User reached the registration\r\npage.","nullable":true},"couponCode":{"type":"string","description":"Optional coupon code used by the User during Registration.","nullable":true},"newsletterSubscribed":{"type":"boolean","description":"```True``` if the e-mail address is subscribed to the newsletter.\r\n            Used during Registration and Update operations.\r\n            Returned during Get operations.","nullable":true},"notificationPrefs":{"type":"array","items":{"$ref":"#/components/schemas/NotificationPrefsSpecs"},"description":"List of Notification Preferences objects.\r\nUsed Update operations. Returned during Get operations.\r\nIgnored in other cases.","nullable":true},"admin":{"type":"boolean","description":"```True``` if the User is an administrator, i.e. can administer\r\n            the tenant they are part of.\r\n            Used during Creation and Update operations by a super administrator.\r\n            Returned during Login and Get operations.","nullable":true},"superAdmin":{"type":"boolean","description":"```True``` if the User is a super administrator, i.e. can\r\n            administer all tenants.\r\n            Returned during Login and Get operations.\r\n            Ignored in other cases.","nullable":true},"numMemori":{"type":"integer","description":"The current number of Memori objects belonging to this User. Returned during Get and Login operations. Ignored in other cases. <br> Visible only to administrators and the user themself.","format":"int32","nullable":true},"maxMemori":{"type":"integer","description":"Maximum number of Memori objects this User can create.\r\nIf ```0``` it means unlimited.\r\nUsed during Creation and Update operations by a super administrator.\r\nReturned during Get and Login operations.","format":"int32","nullable":true},"monthSessions":{"type":"integer","description":"Number of sessions in the current month for this User. Returned during Get and Login operations. Ignored in other cases. <br> Visible only to administrators and the user themself.","format":"int32","nullable":true},"monthValidSessions":{"type":"integer","description":"Number of valid sessions in the current month for this User. Valid sessions are performed by a not Giver user with at least one request/response pair. Returned during Get and Login operations. Ignored in other cases. <br> Visible only to administrators and the user themself.","format":"int32","nullable":true},"monthDeepThoughtValidSessions":{"type":"integer","description":"Number of valid sessions in the current month for this User, with Deep Thought enabled. Returned during Get and Login operations. Ignored in other cases. <br> Visible only to administrators and the user themself.","format":"int32","nullable":true},"maxFreeSessions":{"type":"integer","description":"Maximum number of free Memori sessions this User can open per month.\r\nif ```0>``` it means unlimited.\r\nUsed during Creation and Update operations by a super administrator.\r\nReturned during Get and Login operations.","format":"int32","nullable":true},"nonFreeSessionCost":{"type":"number","description":"The cost of each new session above the max free sessions threshold.","format":"double","nullable":true},"monthCompletions":{"type":"integer","description":"Number of completions in the current month for this User. Returned during Get and Login operations. Ignored in other cases. <br> Visible only to administrators and the user itself.","format":"int32","nullable":true},"monthDeepThoughtCompletions":{"type":"integer","description":"Number of completions in the current month for this User, with Deep Thought enabled. Returned during Get and Login operations. Ignored in other cases. <br> Visible only to administrators and the user itself.","format":"int32","nullable":true},"monthImportedSize":{"type":"integer","description":"Number of characters imported in the current month for this User. Returned during Get and Login operations. Ignored in other cases. <br> Visible only to administrators and the user itself.","format":"int64","nullable":true},"maxCompletions":{"type":"integer","description":"Maximum number of completions for this User per month.\r\nif ```0``` it means unlimited.\r\nUsed during Creation and Update operations by a super administrator.\r\nReturned during Get and Login operations.","format":"int32","nullable":true},"maxImportSize":{"type":"integer","description":"Maximum number of characters that can imported be by this User per month.\r\nif ```0``` it means unlimited.\r\nUsed during Creation and Update operations by a super administrator.\r\nReturned during Get and Login operations.","format":"int64","nullable":true},"paying":{"type":"boolean","description":"If ```True``` means this User has an actual payment\r\ncontract in effect and non-free sessions (i.e. sessions above\r\nthe max free session threshold) can be performed.","nullable":true},"enableMemoriCreation":{"type":"boolean","description":"```True``` if the User can create new Memori objects.\r\n            Used during Creation and Update operations by an administrator.\r\n            Returned during Get and Login operations.","nullable":true},"enableBoardOfExperts":{"type":"boolean","description":"```True``` if the User can access the Board of Experts feature.\r\n            Used during Creation and Update operations by an administrator.\r\n            Returned during Get and Login operations.","nullable":true},"enableDCMIntegration":{"type":"boolean","description":"```True``` if the User access the DCM integration feature.\r\n            Used during Creation and Update operations by an administrator.\r\n            Returned during Get and Login operations.","nullable":true},"enableBadges":{"type":"boolean","description":"If ```True``` this User accepts DCM outcomes and\r\nconsequently can receive badges in the Open Badge format.\r\nUsed during Creation and Update operations by an administrator.\r\nReturned during Get and Login operations.","nullable":true},"enableDeepThought":{"type":"boolean","description":"```True``` if the User can access the Deep Thought feature.\r\n            Used during Creation and Update operations by an administrator.\r\n            Returned during Get and Login operations.","nullable":true},"enableVirtualSpaces":{"type":"boolean","description":"```True``` if the User can access the Virtual Spaces feature.\r\n            Used during Creation and Update operations by an administrator.\r\n            Returned during Get and Login operations.","nullable":true},"birthDate":{"type":"string","description":"User date of birth. Necessary of age-restricted features, such as\r\nenabling completions or accessing NSFW content.\r\nUsed during Registration and Update operations.\r\nReturned during Get operations.","format":"date-time","nullable":true},"age":{"type":"integer","description":"Age computed from the birth date.\r\nReturned during Get operations.\r\nIgnored in other cases.","format":"int32"},"tnCAndPPAccepted":{"type":"boolean","description":"Terms & Conditions and Privacy Policy acceptance flag.\r\nMay be reset to False in case of T. & C. and/or P. P. change.\r\nWhen False all operations that imply a change are blocked.\r\nMandatory during Registration. Used during Update operations.\r\nReturned during Get operations.","nullable":true},"tnCAndPPAcceptanceDate":{"type":"string","description":"Date of acceptance of Terms & Conditions and Privacy Policy.\r\nReturned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true},"pAndCUAccepted":{"type":"boolean","description":"Profiling & Commercial Use acceptance flag.\r\nMay be reset to False in case of T. & C. and/or P. P. change.\r\nWhen False features that require profiling and may imply commercial\r\ncommunication to the User (e.g. Deep Thought) are disabled.\r\nUsed during Registration and Update operations.\r\nReturned during Get operations.","nullable":true},"pAndCUAcceptanceDate":{"type":"string","description":"Date of acceptance of Profiling & Commercial Use.\r\nReturned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true},"magicLinkURL":{"type":"string","description":"Optional magic link URL. If not set a default one is used.\r\nThe URL is invoked appending the Session ID at the end.\r\nUsed during Login and Create operations.\r\nIgnored in other cases.","nullable":true},"redirectTo":{"type":"string","description":"Optional RedirectTo.\r\nIf set the user will be redirected to the specified page.\r\nIgnored in other cases.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true}},"additionalProperties":false,"description":"Specifications of a User object."},"NotificationPrefsSpecs":{"type":"object","properties":{"chatLogExtractionPeriod":{"type":"string","description":"Periodicity of chat log extraction (hourly, daily, weekly or none). When chat log extraction is enabled (i.e. not <code>None</code>) chats performed on Memori owned or managed by the User will be periodically collected and sent via e-mail. Required. <br> Can be one of the following:<ul> <li><code>None</code></li>: no chat log extraction is performed. <li><code>Hourly</code></li>: chat log extraction is performed every hour. <li><code>Hourly</code></li>: chat log extraction is performed daily. <li><code>Hourly</code></li>: chat log extraction is performed weekly. </ul>","nullable":true},"chatLogExtractionMinLines":{"type":"integer","description":"Minimum lines for an extracted chat to be sent via e-mail to\r\nthe User. If ```0``` no filter is applied.\r\nDefault is ```5```.","format":"int32","nullable":true},"memoriID":{"type":"string","description":"Memori ID to which these preferences apply to.\r\nIf ```Null``` these preferences have default value\r\nand apply to all Memori objects not specified with other\r\npreferences.","nullable":true}},"additionalProperties":false,"description":"Specifications of a Notificattion Preferences object."}}}}
````

## The LoginResponse object

````json
{"openapi":"3.0.1","info":{"title":"Memori.ai Web API V2","version":"v2"},"components":{"schemas":{"LoginResponse":{"type":"object","properties":{"token":{"type":"string","description":"Login Token. If present the Login operation succeeded.\r\nMay not be present if the login failed due to a challenge\r\nthat needs completion (password change, verification code etc.).","nullable":true},"flowID":{"type":"string","description":"Login flow ID. May be present if the Login operation failed.\r\nIn this case must be sent together with the next tentative\r\nLogin operation to complete any pending challenge (password change,\r\nverification code etc.).","nullable":true},"user":{"$ref":"#/components/schemas/UserSpecs"},"requestID":{"type":"integer","description":"Progressive number of the request (since the Server started).\r\nUse this number, together with the RequestDateTime property,\r\nto report an anomalous reponse.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous reponse.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is indicative of the actual\r\nerror.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response of a Login request."},"UserSpecs":{"type":"object","properties":{"tenant":{"type":"string","description":"Name of the Tenant this user is associated to. Required during \r\nLogin and Registration operations. Returned during Get operations.\r\nIgnored in other cases.","nullable":true},"userID":{"type":"string","description":"User ID. Unique and assigned by the system.\r\nReturned during Login and Get operations. Ignored in other cases.","nullable":true},"userName":{"type":"string","description":"User name. Must be unique. Required during Login and Registration\r\noperations. Returned during Get operations.\r\nIgnored in other cases.","nullable":true},"eMail":{"type":"string","description":"E-mail address. Required during Registration operations. Used during Update operations. May be used as an alternative to UserName during Login operations. Returned during Get operations. <br> The address is checked via a verification code.","nullable":true},"avatarURL":{"type":"string","description":"URL of the avatar image representing the User.\r\nMay be provided during Registration and Update operations.\r\nReturned during Login and Get operations.","nullable":true},"avatar3DURL":{"type":"string","description":"URL of the avatar 3D model representing the User.\r\nMay be provided during Registration and Update operations.\r\nReturned during Login and Get operations.","nullable":true},"avatar3DURLType":{"type":"string","description":"Additional information about the avatar 3D model URL, e.g. if it's a head-only, full-body avatar, custom model etc. <br> Sample possible values are: <ul> <li><code>readyplayerme</code>: the avatar 3D URL points a half-body ReadyPlayerMe GLB model</li> <li><code>readyplayerme-full</code>: the avatar 3D URL points a full-body ReadyPlayerMe GLB model</li> <li><code>customglb</code>: the avatar 3D URL points to a custom GLB model</li> </ul>","nullable":true},"dontSendInvitationEmail":{"type":"boolean","description":"If ```True``` during a Creation operation, the automatic\r\ninvitation e-mail is not sent, and the temporary password is\r\nreturned as part of the operation response.\r\nUsed during Creation operations. Ignored in other cases.","nullable":true},"referral":{"type":"string","description":"Optional referral URL from which the User reached the registration\r\npage.","nullable":true},"couponCode":{"type":"string","description":"Optional coupon code used by the User during Registration.","nullable":true},"newsletterSubscribed":{"type":"boolean","description":"```True``` if the e-mail address is subscribed to the newsletter.\r\n            Used during Registration and Update operations.\r\n            Returned during Get operations.","nullable":true},"notificationPrefs":{"type":"array","items":{"$ref":"#/components/schemas/NotificationPrefsSpecs"},"description":"List of Notification Preferences objects.\r\nUsed Update operations. Returned during Get operations.\r\nIgnored in other cases.","nullable":true},"admin":{"type":"boolean","description":"```True``` if the User is an administrator, i.e. can administer\r\n            the tenant they are part of.\r\n            Used during Creation and Update operations by a super administrator.\r\n            Returned during Login and Get operations.","nullable":true},"superAdmin":{"type":"boolean","description":"```True``` if the User is a super administrator, i.e. can\r\n            administer all tenants.\r\n            Returned during Login and Get operations.\r\n            Ignored in other cases.","nullable":true},"numMemori":{"type":"integer","description":"The current number of Memori objects belonging to this User. Returned during Get and Login operations. Ignored in other cases. <br> Visible only to administrators and the user themself.","format":"int32","nullable":true},"maxMemori":{"type":"integer","description":"Maximum number of Memori objects this User can create.\r\nIf ```0``` it means unlimited.\r\nUsed during Creation and Update operations by a super administrator.\r\nReturned during Get and Login operations.","format":"int32","nullable":true},"monthSessions":{"type":"integer","description":"Number of sessions in the current month for this User. Returned during Get and Login operations. Ignored in other cases. <br> Visible only to administrators and the user themself.","format":"int32","nullable":true},"monthValidSessions":{"type":"integer","description":"Number of valid sessions in the current month for this User. Valid sessions are performed by a not Giver user with at least one request/response pair. Returned during Get and Login operations. Ignored in other cases. <br> Visible only to administrators and the user themself.","format":"int32","nullable":true},"monthDeepThoughtValidSessions":{"type":"integer","description":"Number of valid sessions in the current month for this User, with Deep Thought enabled. Returned during Get and Login operations. Ignored in other cases. <br> Visible only to administrators and the user themself.","format":"int32","nullable":true},"maxFreeSessions":{"type":"integer","description":"Maximum number of free Memori sessions this User can open per month.\r\nif ```0>``` it means unlimited.\r\nUsed during Creation and Update operations by a super administrator.\r\nReturned during Get and Login operations.","format":"int32","nullable":true},"nonFreeSessionCost":{"type":"number","description":"The cost of each new session above the max free sessions threshold.","format":"double","nullable":true},"monthCompletions":{"type":"integer","description":"Number of completions in the current month for this User. Returned during Get and Login operations. Ignored in other cases. <br> Visible only to administrators and the user itself.","format":"int32","nullable":true},"monthDeepThoughtCompletions":{"type":"integer","description":"Number of completions in the current month for this User, with Deep Thought enabled. Returned during Get and Login operations. Ignored in other cases. <br> Visible only to administrators and the user itself.","format":"int32","nullable":true},"monthImportedSize":{"type":"integer","description":"Number of characters imported in the current month for this User. Returned during Get and Login operations. Ignored in other cases. <br> Visible only to administrators and the user itself.","format":"int64","nullable":true},"maxCompletions":{"type":"integer","description":"Maximum number of completions for this User per month.\r\nif ```0``` it means unlimited.\r\nUsed during Creation and Update operations by a super administrator.\r\nReturned during Get and Login operations.","format":"int32","nullable":true},"maxImportSize":{"type":"integer","description":"Maximum number of characters that can imported be by this User per month.\r\nif ```0``` it means unlimited.\r\nUsed during Creation and Update operations by a super administrator.\r\nReturned during Get and Login operations.","format":"int64","nullable":true},"paying":{"type":"boolean","description":"If ```True``` means this User has an actual payment\r\ncontract in effect and non-free sessions (i.e. sessions above\r\nthe max free session threshold) can be performed.","nullable":true},"enableMemoriCreation":{"type":"boolean","description":"```True``` if the User can create new Memori objects.\r\n            Used during Creation and Update operations by an administrator.\r\n            Returned during Get and Login operations.","nullable":true},"enableBoardOfExperts":{"type":"boolean","description":"```True``` if the User can access the Board of Experts feature.\r\n            Used during Creation and Update operations by an administrator.\r\n            Returned during Get and Login operations.","nullable":true},"enableDCMIntegration":{"type":"boolean","description":"```True``` if the User access the DCM integration feature.\r\n            Used during Creation and Update operations by an administrator.\r\n            Returned during Get and Login operations.","nullable":true},"enableBadges":{"type":"boolean","description":"If ```True``` this User accepts DCM outcomes and\r\nconsequently can receive badges in the Open Badge format.\r\nUsed during Creation and Update operations by an administrator.\r\nReturned during Get and Login operations.","nullable":true},"enableDeepThought":{"type":"boolean","description":"```True``` if the User can access the Deep Thought feature.\r\n            Used during Creation and Update operations by an administrator.\r\n            Returned during Get and Login operations.","nullable":true},"enableVirtualSpaces":{"type":"boolean","description":"```True``` if the User can access the Virtual Spaces feature.\r\n            Used during Creation and Update operations by an administrator.\r\n            Returned during Get and Login operations.","nullable":true},"birthDate":{"type":"string","description":"User date of birth. Necessary of age-restricted features, such as\r\nenabling completions or accessing NSFW content.\r\nUsed during Registration and Update operations.\r\nReturned during Get operations.","format":"date-time","nullable":true},"age":{"type":"integer","description":"Age computed from the birth date.\r\nReturned during Get operations.\r\nIgnored in other cases.","format":"int32"},"tnCAndPPAccepted":{"type":"boolean","description":"Terms & Conditions and Privacy Policy acceptance flag.\r\nMay be reset to False in case of T. & C. and/or P. P. change.\r\nWhen False all operations that imply a change are blocked.\r\nMandatory during Registration. Used during Update operations.\r\nReturned during Get operations.","nullable":true},"tnCAndPPAcceptanceDate":{"type":"string","description":"Date of acceptance of Terms & Conditions and Privacy Policy.\r\nReturned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true},"pAndCUAccepted":{"type":"boolean","description":"Profiling & Commercial Use acceptance flag.\r\nMay be reset to False in case of T. & C. and/or P. P. change.\r\nWhen False features that require profiling and may imply commercial\r\ncommunication to the User (e.g. Deep Thought) are disabled.\r\nUsed during Registration and Update operations.\r\nReturned during Get operations.","nullable":true},"pAndCUAcceptanceDate":{"type":"string","description":"Date of acceptance of Profiling & Commercial Use.\r\nReturned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true},"magicLinkURL":{"type":"string","description":"Optional magic link URL. If not set a default one is used.\r\nThe URL is invoked appending the Session ID at the end.\r\nUsed during Login and Create operations.\r\nIgnored in other cases.","nullable":true},"redirectTo":{"type":"string","description":"Optional RedirectTo.\r\nIf set the user will be redirected to the specified page.\r\nIgnored in other cases.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true}},"additionalProperties":false,"description":"Specifications of a User object."},"NotificationPrefsSpecs":{"type":"object","properties":{"chatLogExtractionPeriod":{"type":"string","description":"Periodicity of chat log extraction (hourly, daily, weekly or none). When chat log extraction is enabled (i.e. not <code>None</code>) chats performed on Memori owned or managed by the User will be periodically collected and sent via e-mail. Required. <br> Can be one of the following:<ul> <li><code>None</code></li>: no chat log extraction is performed. <li><code>Hourly</code></li>: chat log extraction is performed every hour. <li><code>Hourly</code></li>: chat log extraction is performed daily. <li><code>Hourly</code></li>: chat log extraction is performed weekly. </ul>","nullable":true},"chatLogExtractionMinLines":{"type":"integer","description":"Minimum lines for an extracted chat to be sent via e-mail to\r\nthe User. If ```0``` no filter is applied.\r\nDefault is ```5```.","format":"int32","nullable":true},"memoriID":{"type":"string","description":"Memori ID to which these preferences apply to.\r\nIf ```Null``` these preferences have default value\r\nand apply to all Memori objects not specified with other\r\npreferences.","nullable":true}},"additionalProperties":false,"description":"Specifications of a Notificattion Preferences object."}}}}
````

## The MemoriConfigSpecs object

```json
{"openapi":"3.0.1","info":{"title":"Memori.ai Web API V2","version":"v2"},"components":{"schemas":{"MemoriConfigSpecs":{"type":"object","properties":{"memoriConfigID":{"type":"string","description":"Memori Configuration ID.","nullable":true},"useCase":{"type":"string","description":"Typical use case for this configuration (business, personal etc.). <br> May be one of the following:<ul> <li><code>BUSINESS</code></li> <li><code>PERSONAL</code></li> </ul>","nullable":true},"culture":{"type":"string","description":"Culture for dialogs and natural language processing of this configuration. <br> Currently supported cultures are:<ul> <li><code>it-IT</code></li> <li><code>en-US</code></li> </ul>","nullable":true},"descriptions":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"Descriptions of this configuration, by culture (italian, english etc.). <br> Currently supported cultures are:<ul> <li><code>it-IT</code></li> <li><code>en-US</code></li> </ul>","nullable":true},"logoURL":{"type":"string","description":"URL of the logo representing this configuration.","nullable":true}},"additionalProperties":false,"description":"Specifications of a Memori Configuration object."}}}}
```

## The MemoriSpecs object

````json
{"openapi":"3.0.1","info":{"title":"Memori.ai Web API V2","version":"v2"},"components":{"schemas":{"MemoriSpecs":{"type":"object","properties":{"memoriID":{"type":"string","description":"Memori ID. Unique and assigned by the system.\r\nReturned during Registration and Get operations.\r\nUsed in Update, Transfer and Delete operations.\r\nIgnored in other cases.","nullable":true},"name":{"type":"string","description":"Memori name. Required during Registration operations.\r\nUsed during Update operations. Returned during Get operations.","nullable":true},"password":{"type":"string","description":"Password. Required during Registration operations. May be required during Update operations. Ignored in other cases. <br> Must be provided in the following cases:<ul> <li>When PrivacyType is <code>SECRET</code>: during Registration and Update operations, and it can be any non-empty string</li> <li>When PrivacyType is <code>PRIVATE</code>: only during Update operations, and it must be set with the SecretToken provided during registration</li> </ul>","nullable":true},"recoveryTokens":{"type":"array","items":{"type":"string"},"description":"Recovery tokens. Returned during Registration operations if the\r\nMemori Privacy Type is set to ```SECRET``` and a\r\nTotalNumberOfRecoveryTokens is greater than 0.\r\nIgnored in other cases.","nullable":true},"newPassword":{"type":"string","description":"New password. Used during Update operations. Ignored in other cases. <br> Can be provided in the following case:<ul> <li>When PrivacyType is <code>SECRET</code>: during Update operations, and it can be any non-empty string</li> </ul>","nullable":true},"ownerUserID":{"type":"string","description":"ID of the User this Memori belongs to.\r\nReturned during Registration and Get operations.\r\nUsed in Transfer operation.\r\nIgnored in other cases.","nullable":true},"ownerUserName":{"type":"string","description":"Name of the User this Memori belongs to.\r\nReturned during Registration and Get operations.\r\nUsed in Transfer operation.\r\nIgnored in other cases.","nullable":true},"ownerTenantName":{"type":"string","description":"Name of the Tenant of the User this Memori belongs to.\r\nReturned during Registration and Get operations.\r\nUsed in Transfer operation.\r\nIgnored in other cases.","nullable":true},"memoriConfigurationID":{"type":"string","description":"Memori configuration ID. Required during Registration.\r\nReturned during Get operations.","nullable":true},"description":{"type":"string","description":"Memori description. Required during Registration and Update\r\noperations. Returned during Get operations.","nullable":true},"completionDescription":{"type":"string","description":"Memori description for completions. If specified, it is used in\r\nplace of ```Description``` when obtaining a completion\r\nvia a generative AI.\r\nMay be specified during Registration and Update operations.\r\nReturned during Get operations.","nullable":true},"dtDescription":{"type":"string","description":"Memori description for Deep Thought. If specified, it is used in\r\nplace of ```CompletionDescription``` or ```Description```\r\nwhen performing Deep Thought operations.\r\nMay be specified during Registration and Update operations.\r\nReturned during Get operations.","nullable":true},"engineMemoriID":{"type":"string","description":"ID of the corresponding object on the Memori Engine.\r\nReturned during Get operations. Ignored in other cases.","nullable":true},"isOwner":{"type":"boolean","description":"True if the requesting User is the owner of this Memori, and as\r\nsuch has admin (update and delete) access to this Memori.\r\nReturned during Get operations. Ignored in other cases."},"isGiver":{"type":"boolean","description":"True if the requesting User has Giver (full read and write) access \r\nto this Memori. Returned during Get operations.\r\nIgnored in other cases."},"isReceiver":{"type":"boolean","description":"True if the requesting User has Receiver (special read only) access \r\nto this Memori. Returned during Get operations.\r\nIgnored in other cases."},"giverTag":{"type":"string","description":"The tag of the Giver of this Memori. Returned during Registration and Get operations. Used Update operations. Ignored in other cases. <br> It is present only if this Memori belongs to the logged in User.","nullable":true},"giverPIN":{"type":"string","description":"The PIN of the Giver of this Memori. Returned during Registration and Get operations. Used Update operations. Ignored in other cases. <br> It is present only if this Memori belongs to the logged in User.","nullable":true},"privacyType":{"type":"string","description":"Type of privacy setting for this Memori (private, public or secret). Required during Registration operations. Used during Update operations. Returned during Get operations. <br> May be one of the following:<ul> <li><code>PUBLIC</code>: this Memori is not encrypted, has no password and is accessible to everyone</li> <li><code>PRIVATE</code>: this Memori is not encrypted, has a system-generated Secret Token as password and can be accessed only by providing it</li> <li><code>SECRET</code>: this Memori is encrypted, has a user-defined password and can be accessed only by providing it</li> </ul>","nullable":true},"secretToken":{"type":"string","description":"Secret Token. Assigned by the system. Must be used as Password when the PrivacyType is <code>PRIVATE</code>. Returned during Open Session and Get operations. May be required during Update operations. Ignored in other cases. <br> It is present only if this Memori is accessible to the logged in User (e.g. they are the owner, a legitimate Giver or Receiver, or an Admin/SuperAdmin) and its Privacy Type is set to <code>PRIVATE</code>.","nullable":true},"minimumNumberOfRecoveryTokens":{"type":"integer","description":"Minium number of recovery tokens. Recovery tokens allow to access a secret Memori when its original password has been lost. May be provided during Registration operations. Returned during Get operations. Ignored in other cases. <br> It is present only if this Memori belongs to the logged in User and its Privacy Type is set to <code>SECRET</code>.","format":"int32","nullable":true},"totalNumberOfRecoveryTokens":{"type":"integer","description":"Total number of recovery tokens. Recovery tokens allow to access\r\na secret Memori when its original password has been lost. If set,\r\na set of recovery tokens will be generated and returned after\r\nRegistration completes.","format":"int32","nullable":true},"sentInvitations":{"type":"array","items":{"$ref":"#/components/schemas/InvitationSpecs"},"description":"List of Invitation objects sent for this Memori. Returned during Get operations. Ignored in other cases. <br> It is present only if this Memori belongs to the logged in User.","nullable":true},"receivedInvitations":{"type":"array","items":{"$ref":"#/components/schemas/InvitationSpecs"},"description":"List of Invitation objects received for this Memori. Returned during Get operations. Ignored in other cases. <br> It is present only if this Memori is accessible to the logged in User (e.g. they are the owner or a legitimate Giver or Receiver).","nullable":true},"integrations":{"type":"array","items":{"$ref":"#/components/schemas/IntegrationSpecs"},"description":"List of Integration objects associated with this Memori.\r\nRetured during Get operations. Ignored in other cases.","nullable":true},"avatarURL":{"type":"string","description":"URL of the avatar image represting this Memori object.\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.","nullable":true},"coverURL":{"type":"string","description":"URL of the cover image represting this Memori object.\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.","nullable":true},"avatar3DURL":{"type":"string","description":"URL of the avatar 3D model represting this Memori object.\r\nIt is obtained from the CustomData property of the public home page\r\nIntegration object for this Memori, if present. To be changed, the\r\nIntegration object must be changed.\r\nReturned during Get operations. Ignored in other cases.","nullable":true},"avatarOriginal3DURL":{"type":"string","description":"Original URL of the avatar 3D model represting this Memori object.\r\nIt is obtained from the CustomData property of the public home page\r\nIntegration object for this Memori, if present. To be changed, the\r\nIntegration object must be changed.\r\nReturned during Get operations. Ignored in other cases.","nullable":true},"needsPosition":{"type":"boolean","description":"True if this Memori requires positioning to be accessed.\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.","nullable":true},"needsDateTime":{"type":"boolean","description":"True if this Memori requires current date/time to be accessed.\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.","nullable":true},"voiceType":{"type":"string","description":"Type of voice for this Memori (male or female). May be provided during Registration and Update operations. Returned during Get operations. <br> Can be one of the following:<ul> <li><code>MALE</code>: standard male voice</li> <li><code>FEMALE</code>: standard female voice</li> </ul>","nullable":true},"culture":{"type":"string","description":"Culture for dialogs and natural language processing of this Memori. Returned during Get operations. Ignored in other cases. <br> Currently supported cultures are:<ul> <li><code>it-IT</code></li> <li><code>en-US</code></li> </ul>","nullable":true},"categories":{"type":"array","items":{"type":"string"},"description":"Categories (or tags) associated with this Memori.\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.","nullable":true},"nsfw":{"type":"boolean","description":"True if this Memori content must be considered\r\nnot safe for minors of working environments.\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.","nullable":true},"requireLoginToken":{"type":"boolean","description":"When True, a Giver Tag/Pin or a valid login token is needed to open a session","nullable":true},"ageRestriction":{"type":"integer","description":"The minimum age required to open a session to this Memori.\r\nReturned during Get operations.\r\nIgnored in other cases.","format":"int32"},"exposed":{"type":"boolean","description":"True if this Memori must be exposed on the homepage\r\nof its corresponding owner User's tenant.\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.","nullable":true},"mobile":{"type":"boolean","description":"True if this Memori must be accessible from the mobile app.\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.","nullable":true},"confidenceOffset":{"type":"number","description":"The offset to be applied to confidence levels.\r\nTypically, in the range from -0.02 to 0.02.","format":"float","nullable":true},"disableR2R3Loop":{"type":"boolean","description":"True if this Memori must skip the R2-R3 loop, \r\ni.e. must consider medium confidence answers as high confidence\r\nanswers in R1.\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.","nullable":true},"disableR4Loop":{"type":"boolean","description":"True if this Memori must skip the R4 loop,\r\ni.e. must not propose randomly picked contents when a Time Out\r\nevent is received in R1.\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.","nullable":true},"disableR5Loop":{"type":"boolean","description":"True if this Memori must skip the R5 loop,\r\ni.e. must not accept the \"not what I asked\" intent in R1.\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.","nullable":true},"scorm":{"type":"boolean","description":"True if this Memori is a SCORM agent (subject to MemoriAi.WebApi.ModelV2.TenantSpecs.MaxScormMemori when billing is not delegated).\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.","nullable":true},"enableCompletions":{"type":"boolean","description":"True if this Memori must try to answer using completions from a\r\nLarge Language Model, if available, when no other answers are\r\navailable.","nullable":true},"enableDeepThought":{"type":"boolean","description":"If set to ```True``` this Memori will collect known facts about the user\r\non a special long term memory and makes use of it to improve the conversation.\r\nRequires ```EnableCompletions``` to be set to ```True``` to work appropriately.","nullable":true},"alwaysAnswerWithCompletion":{"type":"boolean","description":"If set to ```True``` this Memori will always try to answer with a completion.\r\nMemory objects will be used for generative AI prompting, but not for direct answers.\r\nRequires ```EnableCompletions``` to be set to ```True``` to work appropriately.\r\nCan't be used in conjunction with the ```Chaining``` feature.\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.","nullable":true},"disableCompletionMediaExtraction":{"type":"boolean","description":"If set to ```True``` this Memori will not try to extract related media\r\nwhen generating a response through a completion with generative AI.\r\nThis flag has no effect to user-generated content: attached media will always be provided.\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.","nullable":true},"disableAIContentCollection":{"type":"boolean","description":"If set to ```True``` this Memori does not collect AI-generated content\r\n(CompletionDraft memories) and unanswered questions.","nullable":true},"completionConfigNameForQuestionAnswering":{"type":"string","description":"Name of the Completion Configuration used for Question Answering\r\nwith a Large Language Model. If null the default is used.\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.\r\nWhen updating, set it to a single dash character (```-```) to \r\nremove a previously set configuration.","nullable":true},"completionConfigForQuestionAnswering":{"$ref":"#/components/schemas/CompletionConfigSpecs"},"completionConfigNameForImportExport":{"type":"string","description":"Name of the Completion Configuration used for Import/Export\r\nwith a Large Language Model. If null the default is used.\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.\r\nWhen updating, set it to a single dash character (```-```) to \r\nremove a previously set configuration.","nullable":true},"completionConfigForImportExport":{"$ref":"#/components/schemas/CompletionConfigSpecs"},"completionConfigNameForDeepThought":{"type":"string","description":"Name of the Completion Configuration used for Deep Thought.\r\nIf null the default is used.\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.\r\nWhen updating, set it to a single dash character (```-```) to \r\nremove a previously set configuration.","nullable":true},"completionConfigForDeepThought":{"$ref":"#/components/schemas/CompletionConfigSpecs"},"completionTemperature":{"type":"number","description":"Temperature for Completions.\r\nIf not set a default is used.\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.","format":"float","nullable":true},"completionMaxTokens":{"type":"integer","description":"Maximum number of output tokens for Completions.\r\nIf not set a default is used.\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.","format":"int32","nullable":true},"chainingMemoriID":{"type":"string","description":"Optional Engine ID of a chained Memori. If set, any time this Memori\r\ncan't find an answer to a question, it will try to ask to the chained Memori.\r\nThe chained Memori will then answer and transparently handle the subsequent dialog.\r\nThe user will not be aware of chaining.\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.\r\nWhen updating, set it to a single dash character (```-```) to \r\nremove a previously set chaining.","nullable":true},"chainingBaseURL":{"type":"string","description":"Optional base URL of a chained Memori, typically ```https://engine.memori.ai/```.\r\nRequired if ChainingMemoriID is set.\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.","nullable":true},"chainingPassword":{"type":"string","description":"Password of the chained Memori. Required if ChainingMemoriID is set.\r\nMay be provided during Registration and Update operations.\r\nIgnored in other cases.","nullable":true},"enableBoardOfExperts":{"type":"boolean","description":"If set to ```True``` this Memori will act as the chairman of\r\na board of experts, i.e. for each question will determine which expert\r\nis competent and forward the question to it.\r\nAt least an Expert Reference must then be provided for this feature to activate.","nullable":true},"enableMacroFunctions":{"type":"array","items":{"type":"string"},"description":"List of Macro Function names enabled for this Memori. <br> Currently available Macro Functions are:<ul> <li><code>Wikipedia</code>: adds functions to search for a topic on Wikipedia</li> <li><code>URLCrawling</code>: adds functions to crawl a web page</li> <li><code>ContextVariables</code>: adds functions to manage context variables</li> </ul>","nullable":true},"macroParameters":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"Key-value pairs with values for macro-parameters of enabled Macro Functions.","nullable":true},"dcmUser":{"type":"string","description":"User name of the optional integration with the DCM platform.\r\nIf set, this Memori will be able send outcomes to the DCM platform\r\nwhen specific contents are emitted during the conversation.\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.\r\nWhen updating, set it to a single dash character (```-```) to \r\nremove a previously set integration.","nullable":true},"dcmSecret":{"type":"string","description":"Shared secret of the optional integration with the DCM platform.\r\nRequired if DCMUser is set.\r\nMay be provided during Registration and Update operations.\r\nIgnored in other cases.","nullable":true},"dcmAppContext":{"type":"string","description":"Application context of the optional integration with the DCM platform.\r\nRequired if DCMUser is set.\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.","nullable":true},"blockedUntil":{"type":"string","description":"Administrative block end date. Null if no administrative block is\r\nin effect. During an administrative block a Memori can be edited\r\nwith a Giver session, but not accessed with an anonymous or\r\nReceiver session.","format":"date-time","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true}},"additionalProperties":false,"description":"Specifications of a Memori object."},"InvitationSpecs":{"type":"object","properties":{"invitationID":{"type":"string","description":"ID of this Invitation object. Unique and assigned by the system.\r\nReturned during Send and Get operations.\r\nIgnored in other cases.","nullable":true},"memoriID":{"type":"string","description":"ID of the Memori object this Invitation refers to.\r\nRequired during Send operations. Returned during\r\nGet operations. Ignored in other cases.","nullable":true},"engineMemoriID":{"type":"string","description":"ID of the Memori object on the Memori Engine.\r\nReturned during Get operations. Ignored in other cases.","nullable":true},"isInviter":{"type":"boolean","description":"True if the requesting User sent this Invitation, and as\r\nsuch has admin (update and delete) access to this Invitation.\r\nReturned during Get operations. Ignored in other cases."},"isInvitee":{"type":"boolean","description":"True if the requesting User received this Invitation, and as\r\nsuch has accept/reject access to this Invitation.\r\nReturned during Get operations. Ignored in other cases."},"text":{"type":"string","description":"Text of this Invitation. Optional during Send operations.\r\nUsed in Update operations. Returned during Get operations.\r\nIgnored in other cases.","nullable":true},"destinationName":{"type":"string","description":"Name of the person to whom this Invitation is addressed.\r\nRequired during Send operations. Returned during Get operations.\r\nIgnored in other cases.","nullable":true},"destinationEMail":{"type":"string","description":"E-mail address to which this Invitation is addressed.\r\nRequired during Send operations. Returned during Get operations.\r\nIgnored in other cases.","nullable":true},"dontSendInvitationEmail":{"type":"boolean","description":"Flag to avoid sending the Invitation e-mail.\r\nOptional during Send operations.\r\nIgnored in other cases.","nullable":true},"tag":{"type":"string","description":"Tag associated with this Invitation. Typically an emoji symbol.\r\nRequired during Send operations. Returned during Get operations,\r\nbut visible to invitee only if the invitation has been accepted.\r\nIgnored in other cases.","nullable":true},"pin":{"type":"string","description":"PIN, or personal identification number, associated with this Invitation. Required during Send operations. Returned during Get operations, but visible to invitee only if the invitation has been accepted. Ignored in other cases. <br> Format is six digits integer number, eg. <code>012345</code>.","nullable":true},"type":{"type":"string","description":"Type of this Invitation (giver, receiver etc.). Required during Send operations. Returned during Get operations. Ignored in other cases. <br> May be one of the following:<ul> <li><code>GIVER</code>: the Giver is the unique owner, administrator and content manager of a Memori</li> <li><code>RECEIVER</code>: a Receiver is a named User that can access all the public content of a Memori, plus some specific content targeted specifically at them</li> </ul>","nullable":true},"state":{"type":"string","description":"State of this Invitation (pending, accepted, rejected etc.). Returned during Get operations. Ignored in other cases. <br> May be one of the following:<ul> <li><code>PENDING</code>: the Invitation has just been sent and no action has been perfomed yet</li> <li><code>ACCEPTED</code>: the destination of this Invitation has accepted it</li> <li><code>REJECTED</code>: the destination of this Invitation has rejected it</li> </ul>","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true}},"additionalProperties":false,"description":"Specifications of an Invitation object."},"IntegrationSpecs":{"type":"object","properties":{"integrationID":{"type":"string","description":"Integration ID. Unique and assigned by the system.\r\nReturned during Registration and Get operations.\r\nIgnored in other cases.","nullable":true},"memoriID":{"type":"string","description":"ID of the Memori object this Integration refers to.\r\nRequired during Registration operations. Returned during\r\nGet operations. Ignored in other cases.","nullable":true},"type":{"type":"string","description":"Type of this integration (Google, Alexa, landing home page, etc.). Required during Registration operations. Returned during Get operations. Ignored in other cases. <br> May be one of the following:<ul> <li><code>GOOGLE</code>: a Google Home integration</li> <li><code>ALEXA</code>: an Amazon Alexa integration</li> <li><code>LANDING_EXPERIENCE</code>: a public Memori home page and landing experience</li> </ul>","nullable":true},"state":{"type":"string","description":"Current state of deployment this integration. Returned during Registration and Get operations. Ignored in other cases. <br> May be one of the following:<ul> <li><code>NEW</code></li> <li><code>PROCESSING</code></li> <li><code>DONE</code></li> <li><code>REMOVED</code></li> <li><code>ERROR</code></li> <li><code>WAITING_MANUAL_ACTION</code></li> <li><code>DRAFT</code></li> <li><code>NOT_VALIDATED</code></li> <li><code>PUBLISHED</code></li> </ul>","nullable":true},"deviceEmails":{"type":"array","items":{"type":"string"},"description":"List of e-mails associated with on-device accounts.\r\nUsed during Registration and Update operations for\r\nintegration types ```GOOGLE``` and ```ALEXA```.\r\nReturned during Get operations.\r\nIgnored in other cases.","nullable":true},"invocationText":{"type":"string","description":"Text to be spoken to invoke the integration.\r\nMay be used during Registration and Update operations for\r\nintegration types ```GOOGLE``` and ```ALEXA```.\r\nReturned during Get operations.\r\nIgnored in other cases.","nullable":true},"jobID":{"type":"string","description":"ID of the deployment job of this integration.\r\nReturned during Registration and Get operations.\r\nIgnored in other cases.","nullable":true},"customData":{"type":"string","description":"JSON structure containing the data specific for this type of\r\nintegration. May be used during Registration and Update operations,\r\ndepending on the integration type.\r\nReturned during Get operations.\r\nIgnored in other cases.","nullable":true},"resources":{"type":"array","items":{"$ref":"#/components/schemas/IntegrationResourceSpecs"},"description":"Additional resources need by, or returned by, the deployment job.\r\nMay be used during Registration and Update operations, depending\r\non the integration type.\r\nReturned during Get operations.\r\nIgnored in other cases.","nullable":true},"publish":{"type":"boolean","description":"If set to True, the integration will be published on the\r\ncorresponding environment (e.g. on Amazon Alexa or Google Home)\r\nto the general public. If False the integration will remain\r\navailable only for testing.\r\nUsed during Update operations. Returned during Get operations.\r\nIgnored in other cases.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true}},"additionalProperties":false,"description":"Specifications of an Integration object."},"IntegrationResourceSpecs":{"type":"object","properties":{"name":{"type":"string","description":"Resource name.","nullable":true},"url":{"type":"string","description":"Resource URL.","nullable":true}},"additionalProperties":false,"description":"Specifications of an Integration Resource object."},"CompletionConfigSpecs":{"type":"object","properties":{"completionConfigID":{"type":"string","description":"Completion Config object ID.\r\nReturned during Get operations.\r\nIgnored in other cases.","nullable":true},"configName":{"type":"string","description":"Completion Config unique name.\r\nRequired during Creation operations.\r\nUsed during Update operations.\r\nReturned during Get operations.","nullable":true},"description":{"type":"string","description":"Optional Completion Config description.\r\nUsed during Creation operations and Update.\r\nReturned during Get operations.","nullable":true},"provider":{"type":"string","description":"Name of the Completion Provider. Required during Creation operations. Used during Update operations. Returned during Get operations. <br> Currently possible values are:<ul> <li><code>OpenAI</code></li> <li><code>Anthropic</code></li> <li><code>Mistral</code></li> <li><code>Azure_OpenAI</code></li> <li><code>Custom_OpenAI</code></li> </ul>","nullable":true},"endPoint":{"type":"string","description":"URL of the Completion Provider API end-point.\r\nUsed during Creation operations and Update.\r\nReturned during Get operations.","nullable":true},"apiKey":{"type":"string","description":"API key of the Completion Provider API end-point.\r\nRequired during Creation operations (optional for Custom_OpenAI provider).\r\nUsed during Update operations.\r\nReturned during Get operations as an obfuscated value.","nullable":true},"model":{"type":"string","description":"Name of the Completion Model. This is provider-specific,\r\nand for some providers (e.g. Azure) it is also part of\r\nthe end-point URL.\r\nRequired during Creation operations.\r\nUsed during Update operations.\r\nReturned during Get operations.","nullable":true},"questionAnsweringEnabled":{"type":"boolean","description":"If True this configuration can be used for Question & Answer operations.\r\nIf not specified False is assumed. At least one use must be enabled.\r\nUsed during Creation operations and Update operations.\r\nReturned during Get operations.","nullable":true},"importExportEnabled":{"type":"boolean","description":"If True this configuration can be used for Import/Export operations. \r\nIf not specified False is assumed. At least one use must be enabled.\r\nUsed during Creation operations and Update operations.\r\nReturned during Get operations.","nullable":true},"deepThoughtEnabled":{"type":"boolean","description":"If True this configuration can be used for Deep Thought operations. \r\nIf not specified False is assumed. At least one use must be enabled.\r\nUsed during Creation operations and Update operations.\r\nReturned during Get operations.","nullable":true},"ownerUserID":{"type":"string","description":"ID of the User this Config belongs to.\r\nReturned during Get operations if the user is the owner or an administrator.\r\nIgnored in other cases.","nullable":true},"ownerUserName":{"type":"string","description":"Name of the User this Config belongs to.\r\nReturned during Get operations.\r\nIgnored in other cases.","nullable":true},"ownerTenantName":{"type":"string","description":"Name of the Tenant of the User this Config belongs to.\r\nReturned during Get operations.\r\nIgnored in other cases.","nullable":true},"visibleToTenantUsers":{"type":"boolean","description":"If True this configuration can be used by other users of the owner's Tenant.\r\nIf not specified False is assumed.\r\nUsed during Creation operations and Update operations.\r\nReturned during Get operations.","nullable":true},"visibleToOtherUsers":{"type":"boolean","description":"If True this configuration can be used by users of other Tenants.\r\nIf not specified False is assumed.\r\nUsed during Creation operations and Update operations.\r\nReturned during Get operations.","nullable":true},"useAsDefault":{"type":"boolean","description":"If True this configuration is used as the default (for the operations it is enabled for)\r\nwhen a new Memori is created. The use as default requires that the configuration is visible\r\nat least to the owner's Tenant users.\r\nUsed during Creation operations and Update operations.\r\nReturned during Get operations.","nullable":true},"chargeable":{"type":"boolean","description":"If True the use of this configuration is chargeable to the customer.","nullable":true},"applyTo":{"type":"string","description":"During Creation and Update operations, when set forces this configuration to be applied to the specified Memori objects and purposes. Ignored during Get operations. <br> Can be one of the following:<ul> <li><code>ONLY_USER_MEMORI_ON_DEFAULT_ONLY_QA_PURPOSE</code>: the configuration is applied to user's Memori objects with the default configuration, for Question &amp; Answer purpose only.</li> <li><code>ONLY_USER_MEMORI_ON_DEFAULT_ONLY_IE_PURPOSE</code>: the configuration is applied to user's Memori objects with the default configuration, for Import/Export purpose only.</li> <li><code>ONLY_USER_MEMORI_ON_DEFAULT_ONLY_DT_PURPOSE</code>: the configuration is applied to user's Memori objects with the default configuration, for Deep Thought purpose only.</li> <li><code>ONLY_USER_MEMORI_ON_DEFAULT_ALL_ENABLED_PURPOSES</code>: the configuration is applied to user's Memori objects with the default configuration, for all enabled purposes.</li> <li><code>ALL_USER_MEMORI_ONLY_QA_PURPOSE</code>: the configuration is applied to all user's Memori objects, for Question &amp; Answer purpose only.</li> <li><code>ALL_USER_MEMORI_ONLY_IE_PURPOSE</code>: the configuration is applied to all user's Memori objects, for Import/Export purpose only.</li> <li><code>ALL_USER_MEMORI_ONLY_DT_PURPOSE</code>: the configuration is applied to all user's Memori objects, for Deep Thought purpose only.</li> <li><code>ALL_USER_MEMORI_ALL_ENABLED_PURPOSES</code>: the configuration is applied to all user's Memori objects, for all enabled purposes.</li> <li><code>ONLY_TENANT_MEMORI_ON_DEFAULT_ONLY_QA_PURPOSE</code>: the configuration is applied to the Tenant's Memori objects with the default configuration, for Question &amp; Answer purpose only.</li> <li><code>ONLY_TENANT_MEMORI_ON_DEFAULT_ONLY_IE_PURPOSE</code>: the configuration is applied to the Tenant's Memori objects with the default configuration, for Import/Export purpose only.</li> <li><code>ONLY_TENANT_MEMORI_ON_DEFAULT_ONLY_DT_PURPOSE</code>: the configuration is applied to the Tenant's Memori objects with the default configuration, for Deep Thought purpose only.</li> <li><code>ONLY_TENANT_MEMORI_ON_DEFAULT_ALL_ENABLED_PURPOSES</code>: the configuration is applied to the Tenant's Memori objects with the default configuration, for all enabled purposes.</li> <li><code>ALL_TENANT_MEMORI_ONLY_QA_PURPOSE</code>: the configuration is applied to all the Tenant's Memori objects, for Question &amp; Answer purpose only.</li> <li><code>ALL_TENANT_MEMORI_ONLY_IE_PURPOSE</code>: the configuration is applied to all the Tenant's Memori objects, for Import/Export purpose only.</li> <li><code>ALL_TENANT_MEMORI_ONLY_DT_PURPOSE</code>: the configuration is applied to all the Tenant's Memori objects, for Deep Thought purpose only.</li> <li><code>ALL_TENANT_MEMORI_ALL_ENABLED_PURPOSES</code>: the configuration is applied to all the Tenant's Memori objects, for all enabled purposes.</li> </ul>","nullable":true}},"additionalProperties":false,"description":"Specifications of a Completion Config object."}}}}
````

## The NotificationPrefsSpecs object

````json
{"openapi":"3.0.1","info":{"title":"Memori.ai Web API V2","version":"v2"},"components":{"schemas":{"NotificationPrefsSpecs":{"type":"object","properties":{"chatLogExtractionPeriod":{"type":"string","description":"Periodicity of chat log extraction (hourly, daily, weekly or none). When chat log extraction is enabled (i.e. not <code>None</code>) chats performed on Memori owned or managed by the User will be periodically collected and sent via e-mail. Required. <br> Can be one of the following:<ul> <li><code>None</code></li>: no chat log extraction is performed. <li><code>Hourly</code></li>: chat log extraction is performed every hour. <li><code>Hourly</code></li>: chat log extraction is performed daily. <li><code>Hourly</code></li>: chat log extraction is performed weekly. </ul>","nullable":true},"chatLogExtractionMinLines":{"type":"integer","description":"Minimum lines for an extracted chat to be sent via e-mail to\r\nthe User. If ```0``` no filter is applied.\r\nDefault is ```5```.","format":"int32","nullable":true},"memoriID":{"type":"string","description":"Memori ID to which these preferences apply to.\r\nIf ```Null``` these preferences have default value\r\nand apply to all Memori objects not specified with other\r\npreferences.","nullable":true}},"additionalProperties":false,"description":"Specifications of a Notificattion Preferences object."}}}}
````

## The NotificationSpecs object

```json
{"openapi":"3.0.1","info":{"title":"Memori.ai Web API V2","version":"v2"},"components":{"schemas":{"NotificationSpecs":{"type":"object","properties":{"notificationID":{"type":"string","description":"Notificaiton ID. Unique and assigned by the system.","nullable":true},"timestamp":{"type":"string","description":"Timestamp UTC of the notification.","format":"date-time"},"severity":{"type":"string","description":"Severity level. <br> May be one of the following:<ul> <li><code>INFO</code>: the notification is an information</li> <li><code>AWARD</code>: the notification is an award</li> <li><code>BANNER</code>: the notification is a banner</li> <li><code>WARN</code>: the notification is a warning</li> <li><code>ALERT</code>: the notification is an alert</li> </ul>","nullable":true},"texts":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"Notification text, in different languages/cultures.\r\nThe key is the language/culture, e.g. \"en-US\" or \"it-IT\",\r\nand the value is the corresponding text.","nullable":true},"additionalInfo":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"Optional additional information, in the form of key-value pairs.","nullable":true},"type":{"type":"string","description":"Notification type. /// <br> May be one of the following:<ul> <li><code>BROADCAST</code>: the notification is a broadcast</li> <li><code>TENANT</code>: the notification is a tenant notification</li> <li><code>USER</code>: the notification is a user notification</li> </ul>","nullable":true},"tenant":{"type":"string","description":"Tenant ID of the notification.","nullable":true},"userName":{"type":"string","description":"The Username of the user that the notification is addressed to.","nullable":true},"validFrom":{"type":"string","description":"The date and time from which the notification is valid. <br> Used when creating and modifying the notification. Ignored otherwise.","format":"date-time","nullable":true},"validTo":{"type":"string","description":"The date and time until which the notification is valid. <br> Used when creating and modifying the notification. Ignored otherwise.","format":"date-time","nullable":true}},"additionalProperties":false,"description":"Specifications of a Notification object."}}}}
```

## The OTPCodeSpecs object

```json
{"openapi":"3.0.1","info":{"title":"Memori.ai Web API V2","version":"v2"},"components":{"schemas":{"OTPCodeSpecs":{"type":"object","properties":{"tenant":{"type":"string","description":"The Tenant name.\r\nRequired.","nullable":true},"userName":{"type":"string","description":"The UserName.\r\nRequired for already registered users when the Email is not provided.","nullable":true},"eMail":{"type":"string","description":"User EMail\r\nRequired for new users and, for already registered users, when UserName is not provided.","nullable":true},"otpCode":{"type":"string","description":"OTP code to validate.\r\nRequired.","nullable":true}},"additionalProperties":false,"description":"Specifications to Refresh a Temporary Session."}}}}
```

## The ProcessStatusSpecs object

````json
{"openapi":"3.0.1","info":{"title":"Memori.ai Web API V2","version":"v2"},"components":{"schemas":{"ProcessStatusSpecs":{"type":"object","properties":{"processID":{"type":"string","description":"Process ID.","nullable":true},"memoriID":{"type":"string","description":"ID of the Memori object this Process refers to.","nullable":true},"processUserName":{"type":"string","description":"Name of the user that started the Process.","nullable":true},"processType":{"type":"string","description":"Process type. <br> Can be one of the following:<ul> <li><code>Import</code>: for file import processes</li> <li><code>Analysis</code>: for Deep Thought user/query analysis processes</li> </ul>","nullable":true},"status":{"type":"string","description":"Current status of the Process (starting, running etc.). <br> May be one of the following:<ul> <li><code>Starting</code>: the Process is preparing to start, but has not started yet. Will advance to <code>Running</code> automatically.</li> <li><code>Running</code>: the Process has been started and is actively processing elements.</li> <li><code>Stopped</code>: the Process has been stopped manually, not all elements may have been processed.</li> <li><code>Completed</code>: the Process finished successfully, all the elements have been processed.</li> <li><code>Failed</code>: the Process terminated due to an unexpected error, not all elements may have been processed.</li> </ul>","nullable":true},"error":{"type":"string","description":"If the Status is ```Failed```, reports the error that\r\ncaused the Process to fail.\r\nNull otherwise.","nullable":true},"totalElements":{"type":"integer","description":"Total elements this Process is processing.","format":"int32"},"processedElements":{"type":"integer","description":"Number of elements this Process has processed so far.","format":"int32"},"progress":{"type":"number","description":"Progress of the Process as a fraction of 1.","format":"float"},"processSpecsJSON":{"type":"string","description":"Original parameters of the Process request, as a JSON structure,\r\nexcluding the elements (e.g. document rows for an Import process).","nullable":true},"begin":{"type":"string","description":"Timestamp of start of the Process.\r\nNull until the Process is in ```Starting``` status.","format":"date-time","nullable":true},"end":{"type":"string","description":"Timestamp of end of the Process.\r\nNull until the Process is in ```Starting``` or\r\n```Running``` status.","format":"date-time","nullable":true},"eta":{"type":"number","description":"Estimated time required to complete the Process,\r\nin seconds.","format":"float","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true}},"additionalProperties":false,"description":"Specifications of a Process Status object."}}}}
````

## The ProcessStatusSpecsListProcessesResponse object

````json
{"openapi":"3.0.1","info":{"title":"Memori.ai Web API V2","version":"v2"},"components":{"schemas":{"ProcessStatusSpecsListProcessesResponse":{"type":"object","properties":{"processes":{"type":"array","items":{"$ref":"#/components/schemas/ProcessStatusSpecs"},"description":"List of recent Process objects and their status.\r\nMay be empty.","nullable":true},"requestID":{"type":"integer","description":"Progressive number of the request (since the Server started).\r\nUse this number, together with the RequestDateTime property,\r\nto report an anomalous reponse.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous reponse.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is indicative of the actual\r\nerror.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response of a List Processes request."},"ProcessStatusSpecs":{"type":"object","properties":{"processID":{"type":"string","description":"Process ID.","nullable":true},"memoriID":{"type":"string","description":"ID of the Memori object this Process refers to.","nullable":true},"processUserName":{"type":"string","description":"Name of the user that started the Process.","nullable":true},"processType":{"type":"string","description":"Process type. <br> Can be one of the following:<ul> <li><code>Import</code>: for file import processes</li> <li><code>Analysis</code>: for Deep Thought user/query analysis processes</li> </ul>","nullable":true},"status":{"type":"string","description":"Current status of the Process (starting, running etc.). <br> May be one of the following:<ul> <li><code>Starting</code>: the Process is preparing to start, but has not started yet. Will advance to <code>Running</code> automatically.</li> <li><code>Running</code>: the Process has been started and is actively processing elements.</li> <li><code>Stopped</code>: the Process has been stopped manually, not all elements may have been processed.</li> <li><code>Completed</code>: the Process finished successfully, all the elements have been processed.</li> <li><code>Failed</code>: the Process terminated due to an unexpected error, not all elements may have been processed.</li> </ul>","nullable":true},"error":{"type":"string","description":"If the Status is ```Failed```, reports the error that\r\ncaused the Process to fail.\r\nNull otherwise.","nullable":true},"totalElements":{"type":"integer","description":"Total elements this Process is processing.","format":"int32"},"processedElements":{"type":"integer","description":"Number of elements this Process has processed so far.","format":"int32"},"progress":{"type":"number","description":"Progress of the Process as a fraction of 1.","format":"float"},"processSpecsJSON":{"type":"string","description":"Original parameters of the Process request, as a JSON structure,\r\nexcluding the elements (e.g. document rows for an Import process).","nullable":true},"begin":{"type":"string","description":"Timestamp of start of the Process.\r\nNull until the Process is in ```Starting``` status.","format":"date-time","nullable":true},"end":{"type":"string","description":"Timestamp of end of the Process.\r\nNull until the Process is in ```Starting``` or\r\n```Running``` status.","format":"date-time","nullable":true},"eta":{"type":"number","description":"Estimated time required to complete the Process,\r\nin seconds.","format":"float","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true}},"additionalProperties":false,"description":"Specifications of a Process Status object."}}}}
````

## The ProcessStatusSpecsProcessStatusResponse object

````json
{"openapi":"3.0.1","info":{"title":"Memori.ai Web API V2","version":"v2"},"components":{"schemas":{"ProcessStatusSpecsProcessStatusResponse":{"type":"object","properties":{"status":{"$ref":"#/components/schemas/ProcessStatusSpecs"},"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 reponse.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous reponse.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is indicative of the actual\r\nerror.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response of an Import, Analysis or Get Process Status requests."},"ProcessStatusSpecs":{"type":"object","properties":{"processID":{"type":"string","description":"Process ID.","nullable":true},"memoriID":{"type":"string","description":"ID of the Memori object this Process refers to.","nullable":true},"processUserName":{"type":"string","description":"Name of the user that started the Process.","nullable":true},"processType":{"type":"string","description":"Process type. <br> Can be one of the following:<ul> <li><code>Import</code>: for file import processes</li> <li><code>Analysis</code>: for Deep Thought user/query analysis processes</li> </ul>","nullable":true},"status":{"type":"string","description":"Current status of the Process (starting, running etc.). <br> May be one of the following:<ul> <li><code>Starting</code>: the Process is preparing to start, but has not started yet. Will advance to <code>Running</code> automatically.</li> <li><code>Running</code>: the Process has been started and is actively processing elements.</li> <li><code>Stopped</code>: the Process has been stopped manually, not all elements may have been processed.</li> <li><code>Completed</code>: the Process finished successfully, all the elements have been processed.</li> <li><code>Failed</code>: the Process terminated due to an unexpected error, not all elements may have been processed.</li> </ul>","nullable":true},"error":{"type":"string","description":"If the Status is ```Failed```, reports the error that\r\ncaused the Process to fail.\r\nNull otherwise.","nullable":true},"totalElements":{"type":"integer","description":"Total elements this Process is processing.","format":"int32"},"processedElements":{"type":"integer","description":"Number of elements this Process has processed so far.","format":"int32"},"progress":{"type":"number","description":"Progress of the Process as a fraction of 1.","format":"float"},"processSpecsJSON":{"type":"string","description":"Original parameters of the Process request, as a JSON structure,\r\nexcluding the elements (e.g. document rows for an Import process).","nullable":true},"begin":{"type":"string","description":"Timestamp of start of the Process.\r\nNull until the Process is in ```Starting``` status.","format":"date-time","nullable":true},"end":{"type":"string","description":"Timestamp of end of the Process.\r\nNull until the Process is in ```Starting``` or\r\n```Running``` status.","format":"date-time","nullable":true},"eta":{"type":"number","description":"Estimated time required to complete the Process,\r\nin seconds.","format":"float","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true}},"additionalProperties":false,"description":"Specifications of a Process Status object."}}}}
````

## The RefreshSessionResponse object

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

## The RegisterIntegrationResponse object

````json
{"openapi":"3.0.1","info":{"title":"Memori.ai Web API V2","version":"v2"},"components":{"schemas":{"RegisterIntegrationResponse":{"type":"object","properties":{"integration":{"$ref":"#/components/schemas/IntegrationSpecs"},"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 reponse.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous reponse.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is indicative of the actual\r\nerror.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response of a Register Integration request."},"IntegrationSpecs":{"type":"object","properties":{"integrationID":{"type":"string","description":"Integration ID. Unique and assigned by the system.\r\nReturned during Registration and Get operations.\r\nIgnored in other cases.","nullable":true},"memoriID":{"type":"string","description":"ID of the Memori object this Integration refers to.\r\nRequired during Registration operations. Returned during\r\nGet operations. Ignored in other cases.","nullable":true},"type":{"type":"string","description":"Type of this integration (Google, Alexa, landing home page, etc.). Required during Registration operations. Returned during Get operations. Ignored in other cases. <br> May be one of the following:<ul> <li><code>GOOGLE</code>: a Google Home integration</li> <li><code>ALEXA</code>: an Amazon Alexa integration</li> <li><code>LANDING_EXPERIENCE</code>: a public Memori home page and landing experience</li> </ul>","nullable":true},"state":{"type":"string","description":"Current state of deployment this integration. Returned during Registration and Get operations. Ignored in other cases. <br> May be one of the following:<ul> <li><code>NEW</code></li> <li><code>PROCESSING</code></li> <li><code>DONE</code></li> <li><code>REMOVED</code></li> <li><code>ERROR</code></li> <li><code>WAITING_MANUAL_ACTION</code></li> <li><code>DRAFT</code></li> <li><code>NOT_VALIDATED</code></li> <li><code>PUBLISHED</code></li> </ul>","nullable":true},"deviceEmails":{"type":"array","items":{"type":"string"},"description":"List of e-mails associated with on-device accounts.\r\nUsed during Registration and Update operations for\r\nintegration types ```GOOGLE``` and ```ALEXA```.\r\nReturned during Get operations.\r\nIgnored in other cases.","nullable":true},"invocationText":{"type":"string","description":"Text to be spoken to invoke the integration.\r\nMay be used during Registration and Update operations for\r\nintegration types ```GOOGLE``` and ```ALEXA```.\r\nReturned during Get operations.\r\nIgnored in other cases.","nullable":true},"jobID":{"type":"string","description":"ID of the deployment job of this integration.\r\nReturned during Registration and Get operations.\r\nIgnored in other cases.","nullable":true},"customData":{"type":"string","description":"JSON structure containing the data specific for this type of\r\nintegration. May be used during Registration and Update operations,\r\ndepending on the integration type.\r\nReturned during Get operations.\r\nIgnored in other cases.","nullable":true},"resources":{"type":"array","items":{"$ref":"#/components/schemas/IntegrationResourceSpecs"},"description":"Additional resources need by, or returned by, the deployment job.\r\nMay be used during Registration and Update operations, depending\r\non the integration type.\r\nReturned during Get operations.\r\nIgnored in other cases.","nullable":true},"publish":{"type":"boolean","description":"If set to True, the integration will be published on the\r\ncorresponding environment (e.g. on Amazon Alexa or Google Home)\r\nto the general public. If False the integration will remain\r\navailable only for testing.\r\nUsed during Update operations. Returned during Get operations.\r\nIgnored in other cases.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true}},"additionalProperties":false,"description":"Specifications of an Integration object."},"IntegrationResourceSpecs":{"type":"object","properties":{"name":{"type":"string","description":"Resource name.","nullable":true},"url":{"type":"string","description":"Resource URL.","nullable":true}},"additionalProperties":false,"description":"Specifications of an Integration Resource object."}}}}
````

## The RegisterMemoriResponse object

````json
{"openapi":"3.0.1","info":{"title":"Memori.ai Web API V2","version":"v2"},"components":{"schemas":{"RegisterMemoriResponse":{"type":"object","properties":{"memori":{"$ref":"#/components/schemas/MemoriSpecs"},"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 reponse.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous reponse.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is indicative of the actual\r\nerror.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response of a Register Memori request."},"MemoriSpecs":{"type":"object","properties":{"memoriID":{"type":"string","description":"Memori ID. Unique and assigned by the system.\r\nReturned during Registration and Get operations.\r\nUsed in Update, Transfer and Delete operations.\r\nIgnored in other cases.","nullable":true},"name":{"type":"string","description":"Memori name. Required during Registration operations.\r\nUsed during Update operations. Returned during Get operations.","nullable":true},"password":{"type":"string","description":"Password. Required during Registration operations. May be required during Update operations. Ignored in other cases. <br> Must be provided in the following cases:<ul> <li>When PrivacyType is <code>SECRET</code>: during Registration and Update operations, and it can be any non-empty string</li> <li>When PrivacyType is <code>PRIVATE</code>: only during Update operations, and it must be set with the SecretToken provided during registration</li> </ul>","nullable":true},"recoveryTokens":{"type":"array","items":{"type":"string"},"description":"Recovery tokens. Returned during Registration operations if the\r\nMemori Privacy Type is set to ```SECRET``` and a\r\nTotalNumberOfRecoveryTokens is greater than 0.\r\nIgnored in other cases.","nullable":true},"newPassword":{"type":"string","description":"New password. Used during Update operations. Ignored in other cases. <br> Can be provided in the following case:<ul> <li>When PrivacyType is <code>SECRET</code>: during Update operations, and it can be any non-empty string</li> </ul>","nullable":true},"ownerUserID":{"type":"string","description":"ID of the User this Memori belongs to.\r\nReturned during Registration and Get operations.\r\nUsed in Transfer operation.\r\nIgnored in other cases.","nullable":true},"ownerUserName":{"type":"string","description":"Name of the User this Memori belongs to.\r\nReturned during Registration and Get operations.\r\nUsed in Transfer operation.\r\nIgnored in other cases.","nullable":true},"ownerTenantName":{"type":"string","description":"Name of the Tenant of the User this Memori belongs to.\r\nReturned during Registration and Get operations.\r\nUsed in Transfer operation.\r\nIgnored in other cases.","nullable":true},"memoriConfigurationID":{"type":"string","description":"Memori configuration ID. Required during Registration.\r\nReturned during Get operations.","nullable":true},"description":{"type":"string","description":"Memori description. Required during Registration and Update\r\noperations. Returned during Get operations.","nullable":true},"completionDescription":{"type":"string","description":"Memori description for completions. If specified, it is used in\r\nplace of ```Description``` when obtaining a completion\r\nvia a generative AI.\r\nMay be specified during Registration and Update operations.\r\nReturned during Get operations.","nullable":true},"dtDescription":{"type":"string","description":"Memori description for Deep Thought. If specified, it is used in\r\nplace of ```CompletionDescription``` or ```Description```\r\nwhen performing Deep Thought operations.\r\nMay be specified during Registration and Update operations.\r\nReturned during Get operations.","nullable":true},"engineMemoriID":{"type":"string","description":"ID of the corresponding object on the Memori Engine.\r\nReturned during Get operations. Ignored in other cases.","nullable":true},"isOwner":{"type":"boolean","description":"True if the requesting User is the owner of this Memori, and as\r\nsuch has admin (update and delete) access to this Memori.\r\nReturned during Get operations. Ignored in other cases."},"isGiver":{"type":"boolean","description":"True if the requesting User has Giver (full read and write) access \r\nto this Memori. Returned during Get operations.\r\nIgnored in other cases."},"isReceiver":{"type":"boolean","description":"True if the requesting User has Receiver (special read only) access \r\nto this Memori. Returned during Get operations.\r\nIgnored in other cases."},"giverTag":{"type":"string","description":"The tag of the Giver of this Memori. Returned during Registration and Get operations. Used Update operations. Ignored in other cases. <br> It is present only if this Memori belongs to the logged in User.","nullable":true},"giverPIN":{"type":"string","description":"The PIN of the Giver of this Memori. Returned during Registration and Get operations. Used Update operations. Ignored in other cases. <br> It is present only if this Memori belongs to the logged in User.","nullable":true},"privacyType":{"type":"string","description":"Type of privacy setting for this Memori (private, public or secret). Required during Registration operations. Used during Update operations. Returned during Get operations. <br> May be one of the following:<ul> <li><code>PUBLIC</code>: this Memori is not encrypted, has no password and is accessible to everyone</li> <li><code>PRIVATE</code>: this Memori is not encrypted, has a system-generated Secret Token as password and can be accessed only by providing it</li> <li><code>SECRET</code>: this Memori is encrypted, has a user-defined password and can be accessed only by providing it</li> </ul>","nullable":true},"secretToken":{"type":"string","description":"Secret Token. Assigned by the system. Must be used as Password when the PrivacyType is <code>PRIVATE</code>. Returned during Open Session and Get operations. May be required during Update operations. Ignored in other cases. <br> It is present only if this Memori is accessible to the logged in User (e.g. they are the owner, a legitimate Giver or Receiver, or an Admin/SuperAdmin) and its Privacy Type is set to <code>PRIVATE</code>.","nullable":true},"minimumNumberOfRecoveryTokens":{"type":"integer","description":"Minium number of recovery tokens. Recovery tokens allow to access a secret Memori when its original password has been lost. May be provided during Registration operations. Returned during Get operations. Ignored in other cases. <br> It is present only if this Memori belongs to the logged in User and its Privacy Type is set to <code>SECRET</code>.","format":"int32","nullable":true},"totalNumberOfRecoveryTokens":{"type":"integer","description":"Total number of recovery tokens. Recovery tokens allow to access\r\na secret Memori when its original password has been lost. If set,\r\na set of recovery tokens will be generated and returned after\r\nRegistration completes.","format":"int32","nullable":true},"sentInvitations":{"type":"array","items":{"$ref":"#/components/schemas/InvitationSpecs"},"description":"List of Invitation objects sent for this Memori. Returned during Get operations. Ignored in other cases. <br> It is present only if this Memori belongs to the logged in User.","nullable":true},"receivedInvitations":{"type":"array","items":{"$ref":"#/components/schemas/InvitationSpecs"},"description":"List of Invitation objects received for this Memori. Returned during Get operations. Ignored in other cases. <br> It is present only if this Memori is accessible to the logged in User (e.g. they are the owner or a legitimate Giver or Receiver).","nullable":true},"integrations":{"type":"array","items":{"$ref":"#/components/schemas/IntegrationSpecs"},"description":"List of Integration objects associated with this Memori.\r\nRetured during Get operations. Ignored in other cases.","nullable":true},"avatarURL":{"type":"string","description":"URL of the avatar image represting this Memori object.\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.","nullable":true},"coverURL":{"type":"string","description":"URL of the cover image represting this Memori object.\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.","nullable":true},"avatar3DURL":{"type":"string","description":"URL of the avatar 3D model represting this Memori object.\r\nIt is obtained from the CustomData property of the public home page\r\nIntegration object for this Memori, if present. To be changed, the\r\nIntegration object must be changed.\r\nReturned during Get operations. Ignored in other cases.","nullable":true},"avatarOriginal3DURL":{"type":"string","description":"Original URL of the avatar 3D model represting this Memori object.\r\nIt is obtained from the CustomData property of the public home page\r\nIntegration object for this Memori, if present. To be changed, the\r\nIntegration object must be changed.\r\nReturned during Get operations. Ignored in other cases.","nullable":true},"needsPosition":{"type":"boolean","description":"True if this Memori requires positioning to be accessed.\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.","nullable":true},"needsDateTime":{"type":"boolean","description":"True if this Memori requires current date/time to be accessed.\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.","nullable":true},"voiceType":{"type":"string","description":"Type of voice for this Memori (male or female). May be provided during Registration and Update operations. Returned during Get operations. <br> Can be one of the following:<ul> <li><code>MALE</code>: standard male voice</li> <li><code>FEMALE</code>: standard female voice</li> </ul>","nullable":true},"culture":{"type":"string","description":"Culture for dialogs and natural language processing of this Memori. Returned during Get operations. Ignored in other cases. <br> Currently supported cultures are:<ul> <li><code>it-IT</code></li> <li><code>en-US</code></li> </ul>","nullable":true},"categories":{"type":"array","items":{"type":"string"},"description":"Categories (or tags) associated with this Memori.\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.","nullable":true},"nsfw":{"type":"boolean","description":"True if this Memori content must be considered\r\nnot safe for minors of working environments.\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.","nullable":true},"requireLoginToken":{"type":"boolean","description":"When True, a Giver Tag/Pin or a valid login token is needed to open a session","nullable":true},"ageRestriction":{"type":"integer","description":"The minimum age required to open a session to this Memori.\r\nReturned during Get operations.\r\nIgnored in other cases.","format":"int32"},"exposed":{"type":"boolean","description":"True if this Memori must be exposed on the homepage\r\nof its corresponding owner User's tenant.\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.","nullable":true},"mobile":{"type":"boolean","description":"True if this Memori must be accessible from the mobile app.\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.","nullable":true},"confidenceOffset":{"type":"number","description":"The offset to be applied to confidence levels.\r\nTypically, in the range from -0.02 to 0.02.","format":"float","nullable":true},"disableR2R3Loop":{"type":"boolean","description":"True if this Memori must skip the R2-R3 loop, \r\ni.e. must consider medium confidence answers as high confidence\r\nanswers in R1.\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.","nullable":true},"disableR4Loop":{"type":"boolean","description":"True if this Memori must skip the R4 loop,\r\ni.e. must not propose randomly picked contents when a Time Out\r\nevent is received in R1.\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.","nullable":true},"disableR5Loop":{"type":"boolean","description":"True if this Memori must skip the R5 loop,\r\ni.e. must not accept the \"not what I asked\" intent in R1.\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.","nullable":true},"scorm":{"type":"boolean","description":"True if this Memori is a SCORM agent (subject to MemoriAi.WebApi.ModelV2.TenantSpecs.MaxScormMemori when billing is not delegated).\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.","nullable":true},"enableCompletions":{"type":"boolean","description":"True if this Memori must try to answer using completions from a\r\nLarge Language Model, if available, when no other answers are\r\navailable.","nullable":true},"enableDeepThought":{"type":"boolean","description":"If set to ```True``` this Memori will collect known facts about the user\r\non a special long term memory and makes use of it to improve the conversation.\r\nRequires ```EnableCompletions``` to be set to ```True``` to work appropriately.","nullable":true},"alwaysAnswerWithCompletion":{"type":"boolean","description":"If set to ```True``` this Memori will always try to answer with a completion.\r\nMemory objects will be used for generative AI prompting, but not for direct answers.\r\nRequires ```EnableCompletions``` to be set to ```True``` to work appropriately.\r\nCan't be used in conjunction with the ```Chaining``` feature.\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.","nullable":true},"disableCompletionMediaExtraction":{"type":"boolean","description":"If set to ```True``` this Memori will not try to extract related media\r\nwhen generating a response through a completion with generative AI.\r\nThis flag has no effect to user-generated content: attached media will always be provided.\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.","nullable":true},"disableAIContentCollection":{"type":"boolean","description":"If set to ```True``` this Memori does not collect AI-generated content\r\n(CompletionDraft memories) and unanswered questions.","nullable":true},"completionConfigNameForQuestionAnswering":{"type":"string","description":"Name of the Completion Configuration used for Question Answering\r\nwith a Large Language Model. If null the default is used.\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.\r\nWhen updating, set it to a single dash character (```-```) to \r\nremove a previously set configuration.","nullable":true},"completionConfigForQuestionAnswering":{"$ref":"#/components/schemas/CompletionConfigSpecs"},"completionConfigNameForImportExport":{"type":"string","description":"Name of the Completion Configuration used for Import/Export\r\nwith a Large Language Model. If null the default is used.\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.\r\nWhen updating, set it to a single dash character (```-```) to \r\nremove a previously set configuration.","nullable":true},"completionConfigForImportExport":{"$ref":"#/components/schemas/CompletionConfigSpecs"},"completionConfigNameForDeepThought":{"type":"string","description":"Name of the Completion Configuration used for Deep Thought.\r\nIf null the default is used.\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.\r\nWhen updating, set it to a single dash character (```-```) to \r\nremove a previously set configuration.","nullable":true},"completionConfigForDeepThought":{"$ref":"#/components/schemas/CompletionConfigSpecs"},"completionTemperature":{"type":"number","description":"Temperature for Completions.\r\nIf not set a default is used.\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.","format":"float","nullable":true},"completionMaxTokens":{"type":"integer","description":"Maximum number of output tokens for Completions.\r\nIf not set a default is used.\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.","format":"int32","nullable":true},"chainingMemoriID":{"type":"string","description":"Optional Engine ID of a chained Memori. If set, any time this Memori\r\ncan't find an answer to a question, it will try to ask to the chained Memori.\r\nThe chained Memori will then answer and transparently handle the subsequent dialog.\r\nThe user will not be aware of chaining.\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.\r\nWhen updating, set it to a single dash character (```-```) to \r\nremove a previously set chaining.","nullable":true},"chainingBaseURL":{"type":"string","description":"Optional base URL of a chained Memori, typically ```https://engine.memori.ai/```.\r\nRequired if ChainingMemoriID is set.\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.","nullable":true},"chainingPassword":{"type":"string","description":"Password of the chained Memori. Required if ChainingMemoriID is set.\r\nMay be provided during Registration and Update operations.\r\nIgnored in other cases.","nullable":true},"enableBoardOfExperts":{"type":"boolean","description":"If set to ```True``` this Memori will act as the chairman of\r\na board of experts, i.e. for each question will determine which expert\r\nis competent and forward the question to it.\r\nAt least an Expert Reference must then be provided for this feature to activate.","nullable":true},"enableMacroFunctions":{"type":"array","items":{"type":"string"},"description":"List of Macro Function names enabled for this Memori. <br> Currently available Macro Functions are:<ul> <li><code>Wikipedia</code>: adds functions to search for a topic on Wikipedia</li> <li><code>URLCrawling</code>: adds functions to crawl a web page</li> <li><code>ContextVariables</code>: adds functions to manage context variables</li> </ul>","nullable":true},"macroParameters":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"Key-value pairs with values for macro-parameters of enabled Macro Functions.","nullable":true},"dcmUser":{"type":"string","description":"User name of the optional integration with the DCM platform.\r\nIf set, this Memori will be able send outcomes to the DCM platform\r\nwhen specific contents are emitted during the conversation.\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.\r\nWhen updating, set it to a single dash character (```-```) to \r\nremove a previously set integration.","nullable":true},"dcmSecret":{"type":"string","description":"Shared secret of the optional integration with the DCM platform.\r\nRequired if DCMUser is set.\r\nMay be provided during Registration and Update operations.\r\nIgnored in other cases.","nullable":true},"dcmAppContext":{"type":"string","description":"Application context of the optional integration with the DCM platform.\r\nRequired if DCMUser is set.\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.","nullable":true},"blockedUntil":{"type":"string","description":"Administrative block end date. Null if no administrative block is\r\nin effect. During an administrative block a Memori can be edited\r\nwith a Giver session, but not accessed with an anonymous or\r\nReceiver session.","format":"date-time","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true}},"additionalProperties":false,"description":"Specifications of a Memori object."},"InvitationSpecs":{"type":"object","properties":{"invitationID":{"type":"string","description":"ID of this Invitation object. Unique and assigned by the system.\r\nReturned during Send and Get operations.\r\nIgnored in other cases.","nullable":true},"memoriID":{"type":"string","description":"ID of the Memori object this Invitation refers to.\r\nRequired during Send operations. Returned during\r\nGet operations. Ignored in other cases.","nullable":true},"engineMemoriID":{"type":"string","description":"ID of the Memori object on the Memori Engine.\r\nReturned during Get operations. Ignored in other cases.","nullable":true},"isInviter":{"type":"boolean","description":"True if the requesting User sent this Invitation, and as\r\nsuch has admin (update and delete) access to this Invitation.\r\nReturned during Get operations. Ignored in other cases."},"isInvitee":{"type":"boolean","description":"True if the requesting User received this Invitation, and as\r\nsuch has accept/reject access to this Invitation.\r\nReturned during Get operations. Ignored in other cases."},"text":{"type":"string","description":"Text of this Invitation. Optional during Send operations.\r\nUsed in Update operations. Returned during Get operations.\r\nIgnored in other cases.","nullable":true},"destinationName":{"type":"string","description":"Name of the person to whom this Invitation is addressed.\r\nRequired during Send operations. Returned during Get operations.\r\nIgnored in other cases.","nullable":true},"destinationEMail":{"type":"string","description":"E-mail address to which this Invitation is addressed.\r\nRequired during Send operations. Returned during Get operations.\r\nIgnored in other cases.","nullable":true},"dontSendInvitationEmail":{"type":"boolean","description":"Flag to avoid sending the Invitation e-mail.\r\nOptional during Send operations.\r\nIgnored in other cases.","nullable":true},"tag":{"type":"string","description":"Tag associated with this Invitation. Typically an emoji symbol.\r\nRequired during Send operations. Returned during Get operations,\r\nbut visible to invitee only if the invitation has been accepted.\r\nIgnored in other cases.","nullable":true},"pin":{"type":"string","description":"PIN, or personal identification number, associated with this Invitation. Required during Send operations. Returned during Get operations, but visible to invitee only if the invitation has been accepted. Ignored in other cases. <br> Format is six digits integer number, eg. <code>012345</code>.","nullable":true},"type":{"type":"string","description":"Type of this Invitation (giver, receiver etc.). Required during Send operations. Returned during Get operations. Ignored in other cases. <br> May be one of the following:<ul> <li><code>GIVER</code>: the Giver is the unique owner, administrator and content manager of a Memori</li> <li><code>RECEIVER</code>: a Receiver is a named User that can access all the public content of a Memori, plus some specific content targeted specifically at them</li> </ul>","nullable":true},"state":{"type":"string","description":"State of this Invitation (pending, accepted, rejected etc.). Returned during Get operations. Ignored in other cases. <br> May be one of the following:<ul> <li><code>PENDING</code>: the Invitation has just been sent and no action has been perfomed yet</li> <li><code>ACCEPTED</code>: the destination of this Invitation has accepted it</li> <li><code>REJECTED</code>: the destination of this Invitation has rejected it</li> </ul>","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true}},"additionalProperties":false,"description":"Specifications of an Invitation object."},"IntegrationSpecs":{"type":"object","properties":{"integrationID":{"type":"string","description":"Integration ID. Unique and assigned by the system.\r\nReturned during Registration and Get operations.\r\nIgnored in other cases.","nullable":true},"memoriID":{"type":"string","description":"ID of the Memori object this Integration refers to.\r\nRequired during Registration operations. Returned during\r\nGet operations. Ignored in other cases.","nullable":true},"type":{"type":"string","description":"Type of this integration (Google, Alexa, landing home page, etc.). Required during Registration operations. Returned during Get operations. Ignored in other cases. <br> May be one of the following:<ul> <li><code>GOOGLE</code>: a Google Home integration</li> <li><code>ALEXA</code>: an Amazon Alexa integration</li> <li><code>LANDING_EXPERIENCE</code>: a public Memori home page and landing experience</li> </ul>","nullable":true},"state":{"type":"string","description":"Current state of deployment this integration. Returned during Registration and Get operations. Ignored in other cases. <br> May be one of the following:<ul> <li><code>NEW</code></li> <li><code>PROCESSING</code></li> <li><code>DONE</code></li> <li><code>REMOVED</code></li> <li><code>ERROR</code></li> <li><code>WAITING_MANUAL_ACTION</code></li> <li><code>DRAFT</code></li> <li><code>NOT_VALIDATED</code></li> <li><code>PUBLISHED</code></li> </ul>","nullable":true},"deviceEmails":{"type":"array","items":{"type":"string"},"description":"List of e-mails associated with on-device accounts.\r\nUsed during Registration and Update operations for\r\nintegration types ```GOOGLE``` and ```ALEXA```.\r\nReturned during Get operations.\r\nIgnored in other cases.","nullable":true},"invocationText":{"type":"string","description":"Text to be spoken to invoke the integration.\r\nMay be used during Registration and Update operations for\r\nintegration types ```GOOGLE``` and ```ALEXA```.\r\nReturned during Get operations.\r\nIgnored in other cases.","nullable":true},"jobID":{"type":"string","description":"ID of the deployment job of this integration.\r\nReturned during Registration and Get operations.\r\nIgnored in other cases.","nullable":true},"customData":{"type":"string","description":"JSON structure containing the data specific for this type of\r\nintegration. May be used during Registration and Update operations,\r\ndepending on the integration type.\r\nReturned during Get operations.\r\nIgnored in other cases.","nullable":true},"resources":{"type":"array","items":{"$ref":"#/components/schemas/IntegrationResourceSpecs"},"description":"Additional resources need by, or returned by, the deployment job.\r\nMay be used during Registration and Update operations, depending\r\non the integration type.\r\nReturned during Get operations.\r\nIgnored in other cases.","nullable":true},"publish":{"type":"boolean","description":"If set to True, the integration will be published on the\r\ncorresponding environment (e.g. on Amazon Alexa or Google Home)\r\nto the general public. If False the integration will remain\r\navailable only for testing.\r\nUsed during Update operations. Returned during Get operations.\r\nIgnored in other cases.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true}},"additionalProperties":false,"description":"Specifications of an Integration object."},"IntegrationResourceSpecs":{"type":"object","properties":{"name":{"type":"string","description":"Resource name.","nullable":true},"url":{"type":"string","description":"Resource URL.","nullable":true}},"additionalProperties":false,"description":"Specifications of an Integration Resource object."},"CompletionConfigSpecs":{"type":"object","properties":{"completionConfigID":{"type":"string","description":"Completion Config object ID.\r\nReturned during Get operations.\r\nIgnored in other cases.","nullable":true},"configName":{"type":"string","description":"Completion Config unique name.\r\nRequired during Creation operations.\r\nUsed during Update operations.\r\nReturned during Get operations.","nullable":true},"description":{"type":"string","description":"Optional Completion Config description.\r\nUsed during Creation operations and Update.\r\nReturned during Get operations.","nullable":true},"provider":{"type":"string","description":"Name of the Completion Provider. Required during Creation operations. Used during Update operations. Returned during Get operations. <br> Currently possible values are:<ul> <li><code>OpenAI</code></li> <li><code>Anthropic</code></li> <li><code>Mistral</code></li> <li><code>Azure_OpenAI</code></li> <li><code>Custom_OpenAI</code></li> </ul>","nullable":true},"endPoint":{"type":"string","description":"URL of the Completion Provider API end-point.\r\nUsed during Creation operations and Update.\r\nReturned during Get operations.","nullable":true},"apiKey":{"type":"string","description":"API key of the Completion Provider API end-point.\r\nRequired during Creation operations (optional for Custom_OpenAI provider).\r\nUsed during Update operations.\r\nReturned during Get operations as an obfuscated value.","nullable":true},"model":{"type":"string","description":"Name of the Completion Model. This is provider-specific,\r\nand for some providers (e.g. Azure) it is also part of\r\nthe end-point URL.\r\nRequired during Creation operations.\r\nUsed during Update operations.\r\nReturned during Get operations.","nullable":true},"questionAnsweringEnabled":{"type":"boolean","description":"If True this configuration can be used for Question & Answer operations.\r\nIf not specified False is assumed. At least one use must be enabled.\r\nUsed during Creation operations and Update operations.\r\nReturned during Get operations.","nullable":true},"importExportEnabled":{"type":"boolean","description":"If True this configuration can be used for Import/Export operations. \r\nIf not specified False is assumed. At least one use must be enabled.\r\nUsed during Creation operations and Update operations.\r\nReturned during Get operations.","nullable":true},"deepThoughtEnabled":{"type":"boolean","description":"If True this configuration can be used for Deep Thought operations. \r\nIf not specified False is assumed. At least one use must be enabled.\r\nUsed during Creation operations and Update operations.\r\nReturned during Get operations.","nullable":true},"ownerUserID":{"type":"string","description":"ID of the User this Config belongs to.\r\nReturned during Get operations if the user is the owner or an administrator.\r\nIgnored in other cases.","nullable":true},"ownerUserName":{"type":"string","description":"Name of the User this Config belongs to.\r\nReturned during Get operations.\r\nIgnored in other cases.","nullable":true},"ownerTenantName":{"type":"string","description":"Name of the Tenant of the User this Config belongs to.\r\nReturned during Get operations.\r\nIgnored in other cases.","nullable":true},"visibleToTenantUsers":{"type":"boolean","description":"If True this configuration can be used by other users of the owner's Tenant.\r\nIf not specified False is assumed.\r\nUsed during Creation operations and Update operations.\r\nReturned during Get operations.","nullable":true},"visibleToOtherUsers":{"type":"boolean","description":"If True this configuration can be used by users of other Tenants.\r\nIf not specified False is assumed.\r\nUsed during Creation operations and Update operations.\r\nReturned during Get operations.","nullable":true},"useAsDefault":{"type":"boolean","description":"If True this configuration is used as the default (for the operations it is enabled for)\r\nwhen a new Memori is created. The use as default requires that the configuration is visible\r\nat least to the owner's Tenant users.\r\nUsed during Creation operations and Update operations.\r\nReturned during Get operations.","nullable":true},"chargeable":{"type":"boolean","description":"If True the use of this configuration is chargeable to the customer.","nullable":true},"applyTo":{"type":"string","description":"During Creation and Update operations, when set forces this configuration to be applied to the specified Memori objects and purposes. Ignored during Get operations. <br> Can be one of the following:<ul> <li><code>ONLY_USER_MEMORI_ON_DEFAULT_ONLY_QA_PURPOSE</code>: the configuration is applied to user's Memori objects with the default configuration, for Question &amp; Answer purpose only.</li> <li><code>ONLY_USER_MEMORI_ON_DEFAULT_ONLY_IE_PURPOSE</code>: the configuration is applied to user's Memori objects with the default configuration, for Import/Export purpose only.</li> <li><code>ONLY_USER_MEMORI_ON_DEFAULT_ONLY_DT_PURPOSE</code>: the configuration is applied to user's Memori objects with the default configuration, for Deep Thought purpose only.</li> <li><code>ONLY_USER_MEMORI_ON_DEFAULT_ALL_ENABLED_PURPOSES</code>: the configuration is applied to user's Memori objects with the default configuration, for all enabled purposes.</li> <li><code>ALL_USER_MEMORI_ONLY_QA_PURPOSE</code>: the configuration is applied to all user's Memori objects, for Question &amp; Answer purpose only.</li> <li><code>ALL_USER_MEMORI_ONLY_IE_PURPOSE</code>: the configuration is applied to all user's Memori objects, for Import/Export purpose only.</li> <li><code>ALL_USER_MEMORI_ONLY_DT_PURPOSE</code>: the configuration is applied to all user's Memori objects, for Deep Thought purpose only.</li> <li><code>ALL_USER_MEMORI_ALL_ENABLED_PURPOSES</code>: the configuration is applied to all user's Memori objects, for all enabled purposes.</li> <li><code>ONLY_TENANT_MEMORI_ON_DEFAULT_ONLY_QA_PURPOSE</code>: the configuration is applied to the Tenant's Memori objects with the default configuration, for Question &amp; Answer purpose only.</li> <li><code>ONLY_TENANT_MEMORI_ON_DEFAULT_ONLY_IE_PURPOSE</code>: the configuration is applied to the Tenant's Memori objects with the default configuration, for Import/Export purpose only.</li> <li><code>ONLY_TENANT_MEMORI_ON_DEFAULT_ONLY_DT_PURPOSE</code>: the configuration is applied to the Tenant's Memori objects with the default configuration, for Deep Thought purpose only.</li> <li><code>ONLY_TENANT_MEMORI_ON_DEFAULT_ALL_ENABLED_PURPOSES</code>: the configuration is applied to the Tenant's Memori objects with the default configuration, for all enabled purposes.</li> <li><code>ALL_TENANT_MEMORI_ONLY_QA_PURPOSE</code>: the configuration is applied to all the Tenant's Memori objects, for Question &amp; Answer purpose only.</li> <li><code>ALL_TENANT_MEMORI_ONLY_IE_PURPOSE</code>: the configuration is applied to all the Tenant's Memori objects, for Import/Export purpose only.</li> <li><code>ALL_TENANT_MEMORI_ONLY_DT_PURPOSE</code>: the configuration is applied to all the Tenant's Memori objects, for Deep Thought purpose only.</li> <li><code>ALL_TENANT_MEMORI_ALL_ENABLED_PURPOSES</code>: the configuration is applied to all the Tenant's Memori objects, for all enabled purposes.</li> </ul>","nullable":true}},"additionalProperties":false,"description":"Specifications of a Completion Config object."}}}}
````

## The Response object

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

## The SMTPConfig object

```json
{"openapi":"3.0.1","info":{"title":"Memori.ai Web API V2","version":"v2"},"components":{"schemas":{"SMTPConfig":{"type":"object","properties":{"server":{"type":"string","nullable":true},"user":{"type":"string","nullable":true},"password":{"type":"string","nullable":true},"port":{"type":"integer","format":"int32"},"socketSecurity":{"type":"string","nullable":true},"senderEmail":{"type":"string","nullable":true},"senderName":{"type":"string","nullable":true}},"additionalProperties":false}}}}
```

## The SendInvitationResponse object

````json
{"openapi":"3.0.1","info":{"title":"Memori.ai Web API V2","version":"v2"},"components":{"schemas":{"SendInvitationResponse":{"type":"object","properties":{"invitation":{"$ref":"#/components/schemas/InvitationSpecs"},"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 reponse.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous reponse.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is indicative of the actual\r\nerror.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response of a Send Invitation request."},"InvitationSpecs":{"type":"object","properties":{"invitationID":{"type":"string","description":"ID of this Invitation object. Unique and assigned by the system.\r\nReturned during Send and Get operations.\r\nIgnored in other cases.","nullable":true},"memoriID":{"type":"string","description":"ID of the Memori object this Invitation refers to.\r\nRequired during Send operations. Returned during\r\nGet operations. Ignored in other cases.","nullable":true},"engineMemoriID":{"type":"string","description":"ID of the Memori object on the Memori Engine.\r\nReturned during Get operations. Ignored in other cases.","nullable":true},"isInviter":{"type":"boolean","description":"True if the requesting User sent this Invitation, and as\r\nsuch has admin (update and delete) access to this Invitation.\r\nReturned during Get operations. Ignored in other cases."},"isInvitee":{"type":"boolean","description":"True if the requesting User received this Invitation, and as\r\nsuch has accept/reject access to this Invitation.\r\nReturned during Get operations. Ignored in other cases."},"text":{"type":"string","description":"Text of this Invitation. Optional during Send operations.\r\nUsed in Update operations. Returned during Get operations.\r\nIgnored in other cases.","nullable":true},"destinationName":{"type":"string","description":"Name of the person to whom this Invitation is addressed.\r\nRequired during Send operations. Returned during Get operations.\r\nIgnored in other cases.","nullable":true},"destinationEMail":{"type":"string","description":"E-mail address to which this Invitation is addressed.\r\nRequired during Send operations. Returned during Get operations.\r\nIgnored in other cases.","nullable":true},"dontSendInvitationEmail":{"type":"boolean","description":"Flag to avoid sending the Invitation e-mail.\r\nOptional during Send operations.\r\nIgnored in other cases.","nullable":true},"tag":{"type":"string","description":"Tag associated with this Invitation. Typically an emoji symbol.\r\nRequired during Send operations. Returned during Get operations,\r\nbut visible to invitee only if the invitation has been accepted.\r\nIgnored in other cases.","nullable":true},"pin":{"type":"string","description":"PIN, or personal identification number, associated with this Invitation. Required during Send operations. Returned during Get operations, but visible to invitee only if the invitation has been accepted. Ignored in other cases. <br> Format is six digits integer number, eg. <code>012345</code>.","nullable":true},"type":{"type":"string","description":"Type of this Invitation (giver, receiver etc.). Required during Send operations. Returned during Get operations. Ignored in other cases. <br> May be one of the following:<ul> <li><code>GIVER</code>: the Giver is the unique owner, administrator and content manager of a Memori</li> <li><code>RECEIVER</code>: a Receiver is a named User that can access all the public content of a Memori, plus some specific content targeted specifically at them</li> </ul>","nullable":true},"state":{"type":"string","description":"State of this Invitation (pending, accepted, rejected etc.). Returned during Get operations. Ignored in other cases. <br> May be one of the following:<ul> <li><code>PENDING</code>: the Invitation has just been sent and no action has been perfomed yet</li> <li><code>ACCEPTED</code>: the destination of this Invitation has accepted it</li> <li><code>REJECTED</code>: the destination of this Invitation has rejected it</li> </ul>","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true}},"additionalProperties":false,"description":"Specifications of an Invitation object."}}}}
````

## The SessionTokenSpecs object

```json
{"openapi":"3.0.1","info":{"title":"Memori.ai Web API V2","version":"v2"},"components":{"schemas":{"SessionTokenSpecs":{"type":"object","properties":{"sessionToken":{"type":"string","description":"SesisonToken. Unique and assigned by the system.","nullable":true}},"additionalProperties":false,"description":"Specifications to Refresh a Temporary Session."}}}}
```

## The SimilarText object

```json
{"openapi":"3.0.1","info":{"title":"Memori.ai Web API V2","version":"v2"},"components":{"schemas":{"SimilarText":{"type":"object","properties":{"memoryID":{"type":"string","description":"Memory ID of the similar memory.","nullable":true},"text":{"type":"string","description":"Similar text of an existing memory.","nullable":true},"similarityLevel":{"type":"string","description":"Similarity level between the existing memory text and the imported memory text.\r\nEither \"HIGH\", \"MEDIUM\" or \"LOW.","nullable":true}},"additionalProperties":false}}}}
```

## The TXTSpecs object

````json
{"openapi":"3.0.1","info":{"title":"Memori.ai Web API V2","version":"v2"},"components":{"schemas":{"TXTSpecs":{"type":"object","properties":{"granularity":{"type":"string","description":"Proportion between the text size and the number of question-answers generated. If not specified it is assumed as MEDIUM. <br> Must be one of:<ul> <li><code>LOW</code>: generates ~10 questions every 10K characters</li> <li><code>MEDIUM</code>: generates ~20 questions every 10K characters</li> <li><code>HIGH</code>: generates ~30 questions every 10K characters</li> </ul>","nullable":true},"questionsGenerationInstructions":{"type":"string","description":"If specified, these instructions are provided as part of the\r\ncompletion prompt to the generative AI when generating questions\r\nfrom the document.","nullable":true},"attachSource":{"type":"boolean","description":"If True, for every question-answer the excerpt of the original\r\ntext from which they have been generated is included as an\r\nattachment.\r\nIf not specified it is assumed as False."},"sourceAttachmentTitle":{"type":"string","description":"Title of the source attachment, when enabled with ```AttachSource```.\r\nIf not specified it will have no title.","nullable":true}},"additionalProperties":false,"description":"Specifications for requests involving import/export of TXT contents."}}}}
````

## The TenantSpecs object

````json
{"openapi":"3.0.1","info":{"title":"Memori.ai Web API V2","version":"v2"},"components":{"schemas":{"TenantSpecs":{"type":"object","properties":{"tenantID":{"type":"string","description":"Tenant ID.\r\nReturned during Get operations.\r\nIgnored in other cases.","nullable":true},"name":{"type":"string","description":"Tenant name. Usually a host name, e.g. ```app.memorytwin.com```.\r\nReturned during Get operations.\r\nUsed during Duplicate operations.\r\nIgnored in other cases.","nullable":true},"aliases":{"type":"array","items":{"type":"string"},"description":"Additional Tenant names. Usually host names, e.g. ```app.memorytwin.com```.\r\nReturned during Get operations.\r\nUsed during Update operations.\r\nIgnored in other cases.","nullable":true},"tenantType":{"type":"string","description":"Type of the Tenant. <br> The following values are possible: <ul> <li><code>Owned</code>: the tenant is owned Memori</li> <li><code>Customer</code>: the tenant is owned by a customer</li> </ul>","nullable":true},"description":{"type":"string","description":"Tenant description. Usually a human-readable name, e.g. ```MemoryTwin```.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","nullable":true},"logoURL":{"type":"string","description":"URL of the Tenant logo.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","nullable":true},"squareLogoURL":{"type":"string","description":"URL of the Tenant Icons logo.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","nullable":true},"adminEmail":{"type":"string","description":"Administrative e-mail for the Tenant.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","nullable":true},"theme":{"type":"string","description":"Color theme to be used for the Tenant.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","nullable":true},"feedbackURL":{"type":"string","description":"URL for the feedback form for the Tenant.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","nullable":true},"privacyPolicyURL":{"type":"string","description":"URL of the Privacy Policy page for the Tenant.","nullable":true},"speechProvider":{"type":"string","description":"Text to speech provider for the Tenant.","nullable":true},"speechAPIKey":{"type":"string","description":"API key for the text to speech provider.","nullable":true},"perplexityAPIKey":{"type":"string","description":"API key for Perplexity Search LLM Engine.","nullable":true},"adminCount":{"type":"integer","description":"Current number of administrative Users.\r\nReturned during Get operations.\r\nIgnored in other cases.","format":"int32"},"userCount":{"type":"integer","description":"Current number of normal Users.\r\nReturned during Get operations.\r\nIgnored in other cases.","format":"int32"},"memoriCount":{"type":"integer","description":"Current number of Memori objects.\r\nReturned during Get operations.\r\nIgnored in other cases.","format":"int32"},"scormMemoriCount":{"type":"integer","description":"Current number of Memori objects with SCORM enabled.\r\nReturned during Get operations.\r\nIgnored in other cases.\r\nOmitted when MemoriAi.WebApi.ModelV2.TenantSpecs.MaxScormMemori is not greater than zero.","format":"int32","nullable":true},"disableRegistration":{"type":"boolean","description":"If ```True``` no new User can be registered for this Tenant.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","nullable":true},"maxMemoriPerAdmin":{"type":"integer","description":"Maximum number of Memori objects per administrative User.\r\nIf ```0``` it means unlimited.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","format":"int32","nullable":true},"maxMemoriPerUser":{"type":"integer","description":"Maximum number of Memori objects per normal User.\r\nIf ```0``` it means unlimited.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","format":"int32","nullable":true},"maxTotalMemori":{"type":"integer","description":"Maximum total number of Memori objects.\r\nIf ```0``` it means unlimited.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","format":"int32","nullable":true},"maxAdmins":{"type":"integer","description":"Maximum number of administrative Users.\r\nIf ```0``` it means unlimited.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","format":"int32","nullable":true},"maxUsers":{"type":"integer","description":"Maximum number of normal Users.\r\nIf ```0``` it means unlimited.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","format":"int32","nullable":true},"maxFreeSessions":{"type":"integer","description":"Maximum total number of free sessions across all users of this Tenant.\r\nIf ```0``` it means unlimited.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","format":"int32","nullable":true},"maxFreeSessionsPerUser":{"type":"integer","description":"Maximum number of free sessions for a User.\r\nIf ```0``` it means unlimited.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","format":"int32","nullable":true},"nonFreeSessionCost":{"type":"number","description":"Cost of each new session above the max free sessions threshold.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","format":"double","nullable":true},"maxCompletions":{"type":"integer","description":"Maximum total number of completions across all users of this Tenant.\r\nif ```0``` it means unlimited.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","format":"int32","nullable":true},"maxCompletionsPerUser":{"type":"integer","description":"Maximum number of completions for a User.\r\nif ```0``` it means unlimited.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","format":"int32","nullable":true},"maxImportSize":{"type":"integer","description":"Maximum total number of characters that can be imported across\r\nall users of this Tenant.\r\nif ```0``` it means unlimited.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","format":"int64","nullable":true},"maxImportSizePerUser":{"type":"integer","description":"Maximum number of characters that can be imported by a User.\r\nif ```0``` it means unlimited.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","format":"int64","nullable":true},"maxScormMemori":{"type":"integer","description":"Maximum number of SCORM Memori for this Tenant.\r\nIf ```0``` it means unlimited.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","format":"int32","nullable":true},"paying":{"type":"boolean","description":"If ```True``` means this Tenant has an actual payment\r\ncontract in effect and non-free sessions (i.e. sessions above\r\nthe max free session thresholds) can be performed.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","nullable":true},"enableUserMemoriCreation":{"type":"boolean","description":"If ```True``` normal Users can create new Memori objects.\r\nAdministrative Users always can.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","nullable":true},"enableBoardOfExperts":{"type":"boolean","description":"If ```True``` the Board of Experts feature is enabled.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","nullable":true},"enableDCMIntegration":{"type":"boolean","description":"If ```True``` the DCM integration feature is enabled\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","nullable":true},"enableBadges":{"type":"boolean","description":"If ```True``` this Tenant accepts DCM outcomes and\r\nconsequently can receive badges in the Open Badge format.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","nullable":true},"enableDeepThought":{"type":"boolean","description":"If ```True``` the Deep Thought feature is enabled.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","nullable":true},"enableVirtualSpaces":{"type":"boolean","description":"If ```True``` the Virtual Spaces feature is enabled.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","nullable":true},"enableScorm":{"type":"boolean","description":"If ```True```, SCORM Memori may be created or enabled on this Tenant (subject to MemoriAi.WebApi.ModelV2.TenantSpecs.MaxScormMemori when billing is not delegated).\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations (SuperAdmin only).","nullable":true},"billingDelegation":{"type":"boolean","description":"If ```True``` the Tenant costs and limits are\r\ncomputed from the configured Billing interface.","nullable":true},"ssoLogin":{"type":"boolean","description":"When ```True```, SSO login is enabled for this tenant.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","nullable":true},"ssoRedirect":{"type":"string","description":"Optional redirect URL for SSO. Omitted when null.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","nullable":true},"chatLogsRetentionDays":{"type":"integer","description":"Number of days to retain chat logs. Must be at least 1.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","format":"int32","nullable":true},"smtpConfig":{"$ref":"#/components/schemas/SMTPConfig"},"translationServiceConfig":{"$ref":"#/components/schemas/TranslationServiceConfig"},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true}},"additionalProperties":false,"description":"Specifications of a Tenant object."},"SMTPConfig":{"type":"object","properties":{"server":{"type":"string","nullable":true},"user":{"type":"string","nullable":true},"password":{"type":"string","nullable":true},"port":{"type":"integer","format":"int32"},"socketSecurity":{"type":"string","nullable":true},"senderEmail":{"type":"string","nullable":true},"senderName":{"type":"string","nullable":true}},"additionalProperties":false},"TranslationServiceConfig":{"type":"object","properties":{"apiKey":{"type":"string","nullable":true},"url":{"type":"string","nullable":true}},"additionalProperties":false}}}}
````

## The TranslationServiceConfig object

```json
{"openapi":"3.0.1","info":{"title":"Memori.ai Web API V2","version":"v2"},"components":{"schemas":{"TranslationServiceConfig":{"type":"object","properties":{"apiKey":{"type":"string","nullable":true},"url":{"type":"string","nullable":true}},"additionalProperties":false}}}}
```

## The TrustedApplicationSpecs object

```json
{"openapi":"3.0.1","info":{"title":"Memori.ai Web API V2","version":"v2"},"components":{"schemas":{"TrustedApplicationSpecs":{"required":["authorizationToken","isEnabled","name"],"type":"object","properties":{"trustedApplicationID":{"type":"string","description":"TrustedApplication ID. Unique and assigned by the system.\r\nReturned during Get operations. Ignored in other cases.","nullable":true},"tenantID":{"type":"string","description":"Tenant ID this TrustedApplication belongs to.\r\nRequired during Create operations. Returned during Get operations.","nullable":true},"name":{"maxLength":255,"minLength":1,"type":"string","description":"Name of the TrustedApplication. Must be unique within the tenant.\r\nRequired during Create operations. Used during Update operations.\r\nReturned during Get operations."},"description":{"maxLength":1000,"type":"string","description":"Description of the TrustedApplication.\r\nOptional during Create and Update operations.\r\nReturned during Get operations.","nullable":true},"baseUrl":{"maxLength":500,"type":"string","description":"Base URL of the TrustedApplication.\r\nOptional during Create and Update operations.\r\nReturned during Get operations.","nullable":true},"authorizationToken":{"maxLength":1000,"minLength":1,"type":"string","description":"Authorization token for the TrustedApplication.\r\nRequired during Create operations. Used during Update operations.\r\nReturned during Get operations."},"isEnabled":{"type":"boolean","description":"Whether the TrustedApplication is enabled.\r\nRequired during Create operations. Used during Update operations.\r\nReturned during Get operations."},"createdByUserID":{"type":"string","description":"User ID who created this TrustedApplication.\r\nReturned during Get operations. Ignored in other cases.","nullable":true},"lastModifiedByUserID":{"type":"string","description":"User ID who last modified this TrustedApplication.\r\nReturned during Get operations. Ignored in other cases.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true}},"additionalProperties":false,"description":"Specifications of a TrustedApplication object."}}}}
```

## The UpdateAssetResponse object

````json
{"openapi":"3.0.1","info":{"title":"Memori.ai Web API V2","version":"v2"},"components":{"schemas":{"UpdateAssetResponse":{"type":"object","properties":{"asset":{"$ref":"#/components/schemas/AssetSpecs"},"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 reponse.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous reponse.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is indicative of the actual\r\nerror.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response of an Update Asset request."},"AssetSpecs":{"type":"object","properties":{"assetID":{"type":"string","description":"Asset ID. Unique and assigned by the system.\r\nReturned during Upload operations.\r\nIgnored in other cases.","nullable":true},"assetURL":{"type":"string","description":"Public URL of the Asset file. Unique and assigned by the system.\r\nReturned during Upload operations.\r\nIgnored in other cases.","nullable":true},"mimeType":{"type":"string","description":"Extrapolated MIME type.\r\nReturned during Upload operations.\r\nIgnored in other cases.","nullable":true},"originalFileName":{"type":"string","description":"Original name of the uploaded file, without the extension.\r\nReturned during Upload operations.\r\nUsed during Update operations.","nullable":true},"memoriID":{"type":"string","description":"Optional ID of the Memori object this Asset belongs to.\r\nMay be empty for assets not belonging to a Memori object.\r\nReturned during Upload operations.\r\nIgnored in other cases.","nullable":true},"remoteSessionCheck":{"type":"boolean","description":"Optional flag to protect resource downloads with remote session control.\r\nReturned during Upload operations.\r\nUsed during Update operations.","nullable":true},"engineMemoryID":{"type":"string","description":"Optional ID of the Memory object on the Memori Engine.\r\nMay be empty for public assets. \r\nReturned during Upload operations.\r\nUsed during Update operations. To clear this property during an\r\nUpdate operation set it to a single dash character (\"-\").","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true}},"additionalProperties":false,"description":"Specifications of an Asset object."}}}}
````

## The UpdateCompletionConfigResponse object

````json
{"openapi":"3.0.1","info":{"title":"Memori.ai Web API V2","version":"v2"},"components":{"schemas":{"UpdateCompletionConfigResponse":{"type":"object","properties":{"completionConfigChangeResults":{"type":"array","items":{"$ref":"#/components/schemas/CompletionConfigChangeResult"},"nullable":true},"config":{"$ref":"#/components/schemas/CompletionConfigSpecs"},"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 reponse.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous reponse.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is indicative of the actual\r\nerror.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response of an Update Completion Config request."},"CompletionConfigChangeResult":{"type":"object","properties":{"memoriId":{"type":"string","nullable":true},"memoriName":{"type":"string","nullable":true},"applied":{"type":"boolean"},"errorMessage":{"type":"string","nullable":true}},"additionalProperties":false},"CompletionConfigSpecs":{"type":"object","properties":{"completionConfigID":{"type":"string","description":"Completion Config object ID.\r\nReturned during Get operations.\r\nIgnored in other cases.","nullable":true},"configName":{"type":"string","description":"Completion Config unique name.\r\nRequired during Creation operations.\r\nUsed during Update operations.\r\nReturned during Get operations.","nullable":true},"description":{"type":"string","description":"Optional Completion Config description.\r\nUsed during Creation operations and Update.\r\nReturned during Get operations.","nullable":true},"provider":{"type":"string","description":"Name of the Completion Provider. Required during Creation operations. Used during Update operations. Returned during Get operations. <br> Currently possible values are:<ul> <li><code>OpenAI</code></li> <li><code>Anthropic</code></li> <li><code>Mistral</code></li> <li><code>Azure_OpenAI</code></li> <li><code>Custom_OpenAI</code></li> </ul>","nullable":true},"endPoint":{"type":"string","description":"URL of the Completion Provider API end-point.\r\nUsed during Creation operations and Update.\r\nReturned during Get operations.","nullable":true},"apiKey":{"type":"string","description":"API key of the Completion Provider API end-point.\r\nRequired during Creation operations (optional for Custom_OpenAI provider).\r\nUsed during Update operations.\r\nReturned during Get operations as an obfuscated value.","nullable":true},"model":{"type":"string","description":"Name of the Completion Model. This is provider-specific,\r\nand for some providers (e.g. Azure) it is also part of\r\nthe end-point URL.\r\nRequired during Creation operations.\r\nUsed during Update operations.\r\nReturned during Get operations.","nullable":true},"questionAnsweringEnabled":{"type":"boolean","description":"If True this configuration can be used for Question & Answer operations.\r\nIf not specified False is assumed. At least one use must be enabled.\r\nUsed during Creation operations and Update operations.\r\nReturned during Get operations.","nullable":true},"importExportEnabled":{"type":"boolean","description":"If True this configuration can be used for Import/Export operations. \r\nIf not specified False is assumed. At least one use must be enabled.\r\nUsed during Creation operations and Update operations.\r\nReturned during Get operations.","nullable":true},"deepThoughtEnabled":{"type":"boolean","description":"If True this configuration can be used for Deep Thought operations. \r\nIf not specified False is assumed. At least one use must be enabled.\r\nUsed during Creation operations and Update operations.\r\nReturned during Get operations.","nullable":true},"ownerUserID":{"type":"string","description":"ID of the User this Config belongs to.\r\nReturned during Get operations if the user is the owner or an administrator.\r\nIgnored in other cases.","nullable":true},"ownerUserName":{"type":"string","description":"Name of the User this Config belongs to.\r\nReturned during Get operations.\r\nIgnored in other cases.","nullable":true},"ownerTenantName":{"type":"string","description":"Name of the Tenant of the User this Config belongs to.\r\nReturned during Get operations.\r\nIgnored in other cases.","nullable":true},"visibleToTenantUsers":{"type":"boolean","description":"If True this configuration can be used by other users of the owner's Tenant.\r\nIf not specified False is assumed.\r\nUsed during Creation operations and Update operations.\r\nReturned during Get operations.","nullable":true},"visibleToOtherUsers":{"type":"boolean","description":"If True this configuration can be used by users of other Tenants.\r\nIf not specified False is assumed.\r\nUsed during Creation operations and Update operations.\r\nReturned during Get operations.","nullable":true},"useAsDefault":{"type":"boolean","description":"If True this configuration is used as the default (for the operations it is enabled for)\r\nwhen a new Memori is created. The use as default requires that the configuration is visible\r\nat least to the owner's Tenant users.\r\nUsed during Creation operations and Update operations.\r\nReturned during Get operations.","nullable":true},"chargeable":{"type":"boolean","description":"If True the use of this configuration is chargeable to the customer.","nullable":true},"applyTo":{"type":"string","description":"During Creation and Update operations, when set forces this configuration to be applied to the specified Memori objects and purposes. Ignored during Get operations. <br> Can be one of the following:<ul> <li><code>ONLY_USER_MEMORI_ON_DEFAULT_ONLY_QA_PURPOSE</code>: the configuration is applied to user's Memori objects with the default configuration, for Question &amp; Answer purpose only.</li> <li><code>ONLY_USER_MEMORI_ON_DEFAULT_ONLY_IE_PURPOSE</code>: the configuration is applied to user's Memori objects with the default configuration, for Import/Export purpose only.</li> <li><code>ONLY_USER_MEMORI_ON_DEFAULT_ONLY_DT_PURPOSE</code>: the configuration is applied to user's Memori objects with the default configuration, for Deep Thought purpose only.</li> <li><code>ONLY_USER_MEMORI_ON_DEFAULT_ALL_ENABLED_PURPOSES</code>: the configuration is applied to user's Memori objects with the default configuration, for all enabled purposes.</li> <li><code>ALL_USER_MEMORI_ONLY_QA_PURPOSE</code>: the configuration is applied to all user's Memori objects, for Question &amp; Answer purpose only.</li> <li><code>ALL_USER_MEMORI_ONLY_IE_PURPOSE</code>: the configuration is applied to all user's Memori objects, for Import/Export purpose only.</li> <li><code>ALL_USER_MEMORI_ONLY_DT_PURPOSE</code>: the configuration is applied to all user's Memori objects, for Deep Thought purpose only.</li> <li><code>ALL_USER_MEMORI_ALL_ENABLED_PURPOSES</code>: the configuration is applied to all user's Memori objects, for all enabled purposes.</li> <li><code>ONLY_TENANT_MEMORI_ON_DEFAULT_ONLY_QA_PURPOSE</code>: the configuration is applied to the Tenant's Memori objects with the default configuration, for Question &amp; Answer purpose only.</li> <li><code>ONLY_TENANT_MEMORI_ON_DEFAULT_ONLY_IE_PURPOSE</code>: the configuration is applied to the Tenant's Memori objects with the default configuration, for Import/Export purpose only.</li> <li><code>ONLY_TENANT_MEMORI_ON_DEFAULT_ONLY_DT_PURPOSE</code>: the configuration is applied to the Tenant's Memori objects with the default configuration, for Deep Thought purpose only.</li> <li><code>ONLY_TENANT_MEMORI_ON_DEFAULT_ALL_ENABLED_PURPOSES</code>: the configuration is applied to the Tenant's Memori objects with the default configuration, for all enabled purposes.</li> <li><code>ALL_TENANT_MEMORI_ONLY_QA_PURPOSE</code>: the configuration is applied to all the Tenant's Memori objects, for Question &amp; Answer purpose only.</li> <li><code>ALL_TENANT_MEMORI_ONLY_IE_PURPOSE</code>: the configuration is applied to all the Tenant's Memori objects, for Import/Export purpose only.</li> <li><code>ALL_TENANT_MEMORI_ONLY_DT_PURPOSE</code>: the configuration is applied to all the Tenant's Memori objects, for Deep Thought purpose only.</li> <li><code>ALL_TENANT_MEMORI_ALL_ENABLED_PURPOSES</code>: the configuration is applied to all the Tenant's Memori objects, for all enabled purposes.</li> </ul>","nullable":true}},"additionalProperties":false,"description":"Specifications of a Completion Config object."}}}}
````

## The UpdateIntegrationResponse object

````json
{"openapi":"3.0.1","info":{"title":"Memori.ai Web API V2","version":"v2"},"components":{"schemas":{"UpdateIntegrationResponse":{"type":"object","properties":{"integration":{"$ref":"#/components/schemas/IntegrationSpecs"},"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 reponse.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous reponse.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is indicative of the actual\r\nerror.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response of an Update Integration request."},"IntegrationSpecs":{"type":"object","properties":{"integrationID":{"type":"string","description":"Integration ID. Unique and assigned by the system.\r\nReturned during Registration and Get operations.\r\nIgnored in other cases.","nullable":true},"memoriID":{"type":"string","description":"ID of the Memori object this Integration refers to.\r\nRequired during Registration operations. Returned during\r\nGet operations. Ignored in other cases.","nullable":true},"type":{"type":"string","description":"Type of this integration (Google, Alexa, landing home page, etc.). Required during Registration operations. Returned during Get operations. Ignored in other cases. <br> May be one of the following:<ul> <li><code>GOOGLE</code>: a Google Home integration</li> <li><code>ALEXA</code>: an Amazon Alexa integration</li> <li><code>LANDING_EXPERIENCE</code>: a public Memori home page and landing experience</li> </ul>","nullable":true},"state":{"type":"string","description":"Current state of deployment this integration. Returned during Registration and Get operations. Ignored in other cases. <br> May be one of the following:<ul> <li><code>NEW</code></li> <li><code>PROCESSING</code></li> <li><code>DONE</code></li> <li><code>REMOVED</code></li> <li><code>ERROR</code></li> <li><code>WAITING_MANUAL_ACTION</code></li> <li><code>DRAFT</code></li> <li><code>NOT_VALIDATED</code></li> <li><code>PUBLISHED</code></li> </ul>","nullable":true},"deviceEmails":{"type":"array","items":{"type":"string"},"description":"List of e-mails associated with on-device accounts.\r\nUsed during Registration and Update operations for\r\nintegration types ```GOOGLE``` and ```ALEXA```.\r\nReturned during Get operations.\r\nIgnored in other cases.","nullable":true},"invocationText":{"type":"string","description":"Text to be spoken to invoke the integration.\r\nMay be used during Registration and Update operations for\r\nintegration types ```GOOGLE``` and ```ALEXA```.\r\nReturned during Get operations.\r\nIgnored in other cases.","nullable":true},"jobID":{"type":"string","description":"ID of the deployment job of this integration.\r\nReturned during Registration and Get operations.\r\nIgnored in other cases.","nullable":true},"customData":{"type":"string","description":"JSON structure containing the data specific for this type of\r\nintegration. May be used during Registration and Update operations,\r\ndepending on the integration type.\r\nReturned during Get operations.\r\nIgnored in other cases.","nullable":true},"resources":{"type":"array","items":{"$ref":"#/components/schemas/IntegrationResourceSpecs"},"description":"Additional resources need by, or returned by, the deployment job.\r\nMay be used during Registration and Update operations, depending\r\non the integration type.\r\nReturned during Get operations.\r\nIgnored in other cases.","nullable":true},"publish":{"type":"boolean","description":"If set to True, the integration will be published on the\r\ncorresponding environment (e.g. on Amazon Alexa or Google Home)\r\nto the general public. If False the integration will remain\r\navailable only for testing.\r\nUsed during Update operations. Returned during Get operations.\r\nIgnored in other cases.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true}},"additionalProperties":false,"description":"Specifications of an Integration object."},"IntegrationResourceSpecs":{"type":"object","properties":{"name":{"type":"string","description":"Resource name.","nullable":true},"url":{"type":"string","description":"Resource URL.","nullable":true}},"additionalProperties":false,"description":"Specifications of an Integration Resource object."}}}}
````

## The UpdateInvitationResponse object

````json
{"openapi":"3.0.1","info":{"title":"Memori.ai Web API V2","version":"v2"},"components":{"schemas":{"UpdateInvitationResponse":{"type":"object","properties":{"invitation":{"$ref":"#/components/schemas/InvitationSpecs"},"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 reponse.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous reponse.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is indicative of the actual\r\nerror.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response of an Update Invitation request."},"InvitationSpecs":{"type":"object","properties":{"invitationID":{"type":"string","description":"ID of this Invitation object. Unique and assigned by the system.\r\nReturned during Send and Get operations.\r\nIgnored in other cases.","nullable":true},"memoriID":{"type":"string","description":"ID of the Memori object this Invitation refers to.\r\nRequired during Send operations. Returned during\r\nGet operations. Ignored in other cases.","nullable":true},"engineMemoriID":{"type":"string","description":"ID of the Memori object on the Memori Engine.\r\nReturned during Get operations. Ignored in other cases.","nullable":true},"isInviter":{"type":"boolean","description":"True if the requesting User sent this Invitation, and as\r\nsuch has admin (update and delete) access to this Invitation.\r\nReturned during Get operations. Ignored in other cases."},"isInvitee":{"type":"boolean","description":"True if the requesting User received this Invitation, and as\r\nsuch has accept/reject access to this Invitation.\r\nReturned during Get operations. Ignored in other cases."},"text":{"type":"string","description":"Text of this Invitation. Optional during Send operations.\r\nUsed in Update operations. Returned during Get operations.\r\nIgnored in other cases.","nullable":true},"destinationName":{"type":"string","description":"Name of the person to whom this Invitation is addressed.\r\nRequired during Send operations. Returned during Get operations.\r\nIgnored in other cases.","nullable":true},"destinationEMail":{"type":"string","description":"E-mail address to which this Invitation is addressed.\r\nRequired during Send operations. Returned during Get operations.\r\nIgnored in other cases.","nullable":true},"dontSendInvitationEmail":{"type":"boolean","description":"Flag to avoid sending the Invitation e-mail.\r\nOptional during Send operations.\r\nIgnored in other cases.","nullable":true},"tag":{"type":"string","description":"Tag associated with this Invitation. Typically an emoji symbol.\r\nRequired during Send operations. Returned during Get operations,\r\nbut visible to invitee only if the invitation has been accepted.\r\nIgnored in other cases.","nullable":true},"pin":{"type":"string","description":"PIN, or personal identification number, associated with this Invitation. Required during Send operations. Returned during Get operations, but visible to invitee only if the invitation has been accepted. Ignored in other cases. <br> Format is six digits integer number, eg. <code>012345</code>.","nullable":true},"type":{"type":"string","description":"Type of this Invitation (giver, receiver etc.). Required during Send operations. Returned during Get operations. Ignored in other cases. <br> May be one of the following:<ul> <li><code>GIVER</code>: the Giver is the unique owner, administrator and content manager of a Memori</li> <li><code>RECEIVER</code>: a Receiver is a named User that can access all the public content of a Memori, plus some specific content targeted specifically at them</li> </ul>","nullable":true},"state":{"type":"string","description":"State of this Invitation (pending, accepted, rejected etc.). Returned during Get operations. Ignored in other cases. <br> May be one of the following:<ul> <li><code>PENDING</code>: the Invitation has just been sent and no action has been perfomed yet</li> <li><code>ACCEPTED</code>: the destination of this Invitation has accepted it</li> <li><code>REJECTED</code>: the destination of this Invitation has rejected it</li> </ul>","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true}},"additionalProperties":false,"description":"Specifications of an Invitation object."}}}}
````

## The UpdateMemoriResponse object

````json
{"openapi":"3.0.1","info":{"title":"Memori.ai Web API V2","version":"v2"},"components":{"schemas":{"UpdateMemoriResponse":{"type":"object","properties":{"memori":{"$ref":"#/components/schemas/MemoriSpecs"},"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 reponse.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous reponse.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is indicative of the actual\r\nerror.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response of an Update Memori request."},"MemoriSpecs":{"type":"object","properties":{"memoriID":{"type":"string","description":"Memori ID. Unique and assigned by the system.\r\nReturned during Registration and Get operations.\r\nUsed in Update, Transfer and Delete operations.\r\nIgnored in other cases.","nullable":true},"name":{"type":"string","description":"Memori name. Required during Registration operations.\r\nUsed during Update operations. Returned during Get operations.","nullable":true},"password":{"type":"string","description":"Password. Required during Registration operations. May be required during Update operations. Ignored in other cases. <br> Must be provided in the following cases:<ul> <li>When PrivacyType is <code>SECRET</code>: during Registration and Update operations, and it can be any non-empty string</li> <li>When PrivacyType is <code>PRIVATE</code>: only during Update operations, and it must be set with the SecretToken provided during registration</li> </ul>","nullable":true},"recoveryTokens":{"type":"array","items":{"type":"string"},"description":"Recovery tokens. Returned during Registration operations if the\r\nMemori Privacy Type is set to ```SECRET``` and a\r\nTotalNumberOfRecoveryTokens is greater than 0.\r\nIgnored in other cases.","nullable":true},"newPassword":{"type":"string","description":"New password. Used during Update operations. Ignored in other cases. <br> Can be provided in the following case:<ul> <li>When PrivacyType is <code>SECRET</code>: during Update operations, and it can be any non-empty string</li> </ul>","nullable":true},"ownerUserID":{"type":"string","description":"ID of the User this Memori belongs to.\r\nReturned during Registration and Get operations.\r\nUsed in Transfer operation.\r\nIgnored in other cases.","nullable":true},"ownerUserName":{"type":"string","description":"Name of the User this Memori belongs to.\r\nReturned during Registration and Get operations.\r\nUsed in Transfer operation.\r\nIgnored in other cases.","nullable":true},"ownerTenantName":{"type":"string","description":"Name of the Tenant of the User this Memori belongs to.\r\nReturned during Registration and Get operations.\r\nUsed in Transfer operation.\r\nIgnored in other cases.","nullable":true},"memoriConfigurationID":{"type":"string","description":"Memori configuration ID. Required during Registration.\r\nReturned during Get operations.","nullable":true},"description":{"type":"string","description":"Memori description. Required during Registration and Update\r\noperations. Returned during Get operations.","nullable":true},"completionDescription":{"type":"string","description":"Memori description for completions. If specified, it is used in\r\nplace of ```Description``` when obtaining a completion\r\nvia a generative AI.\r\nMay be specified during Registration and Update operations.\r\nReturned during Get operations.","nullable":true},"dtDescription":{"type":"string","description":"Memori description for Deep Thought. If specified, it is used in\r\nplace of ```CompletionDescription``` or ```Description```\r\nwhen performing Deep Thought operations.\r\nMay be specified during Registration and Update operations.\r\nReturned during Get operations.","nullable":true},"engineMemoriID":{"type":"string","description":"ID of the corresponding object on the Memori Engine.\r\nReturned during Get operations. Ignored in other cases.","nullable":true},"isOwner":{"type":"boolean","description":"True if the requesting User is the owner of this Memori, and as\r\nsuch has admin (update and delete) access to this Memori.\r\nReturned during Get operations. Ignored in other cases."},"isGiver":{"type":"boolean","description":"True if the requesting User has Giver (full read and write) access \r\nto this Memori. Returned during Get operations.\r\nIgnored in other cases."},"isReceiver":{"type":"boolean","description":"True if the requesting User has Receiver (special read only) access \r\nto this Memori. Returned during Get operations.\r\nIgnored in other cases."},"giverTag":{"type":"string","description":"The tag of the Giver of this Memori. Returned during Registration and Get operations. Used Update operations. Ignored in other cases. <br> It is present only if this Memori belongs to the logged in User.","nullable":true},"giverPIN":{"type":"string","description":"The PIN of the Giver of this Memori. Returned during Registration and Get operations. Used Update operations. Ignored in other cases. <br> It is present only if this Memori belongs to the logged in User.","nullable":true},"privacyType":{"type":"string","description":"Type of privacy setting for this Memori (private, public or secret). Required during Registration operations. Used during Update operations. Returned during Get operations. <br> May be one of the following:<ul> <li><code>PUBLIC</code>: this Memori is not encrypted, has no password and is accessible to everyone</li> <li><code>PRIVATE</code>: this Memori is not encrypted, has a system-generated Secret Token as password and can be accessed only by providing it</li> <li><code>SECRET</code>: this Memori is encrypted, has a user-defined password and can be accessed only by providing it</li> </ul>","nullable":true},"secretToken":{"type":"string","description":"Secret Token. Assigned by the system. Must be used as Password when the PrivacyType is <code>PRIVATE</code>. Returned during Open Session and Get operations. May be required during Update operations. Ignored in other cases. <br> It is present only if this Memori is accessible to the logged in User (e.g. they are the owner, a legitimate Giver or Receiver, or an Admin/SuperAdmin) and its Privacy Type is set to <code>PRIVATE</code>.","nullable":true},"minimumNumberOfRecoveryTokens":{"type":"integer","description":"Minium number of recovery tokens. Recovery tokens allow to access a secret Memori when its original password has been lost. May be provided during Registration operations. Returned during Get operations. Ignored in other cases. <br> It is present only if this Memori belongs to the logged in User and its Privacy Type is set to <code>SECRET</code>.","format":"int32","nullable":true},"totalNumberOfRecoveryTokens":{"type":"integer","description":"Total number of recovery tokens. Recovery tokens allow to access\r\na secret Memori when its original password has been lost. If set,\r\na set of recovery tokens will be generated and returned after\r\nRegistration completes.","format":"int32","nullable":true},"sentInvitations":{"type":"array","items":{"$ref":"#/components/schemas/InvitationSpecs"},"description":"List of Invitation objects sent for this Memori. Returned during Get operations. Ignored in other cases. <br> It is present only if this Memori belongs to the logged in User.","nullable":true},"receivedInvitations":{"type":"array","items":{"$ref":"#/components/schemas/InvitationSpecs"},"description":"List of Invitation objects received for this Memori. Returned during Get operations. Ignored in other cases. <br> It is present only if this Memori is accessible to the logged in User (e.g. they are the owner or a legitimate Giver or Receiver).","nullable":true},"integrations":{"type":"array","items":{"$ref":"#/components/schemas/IntegrationSpecs"},"description":"List of Integration objects associated with this Memori.\r\nRetured during Get operations. Ignored in other cases.","nullable":true},"avatarURL":{"type":"string","description":"URL of the avatar image represting this Memori object.\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.","nullable":true},"coverURL":{"type":"string","description":"URL of the cover image represting this Memori object.\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.","nullable":true},"avatar3DURL":{"type":"string","description":"URL of the avatar 3D model represting this Memori object.\r\nIt is obtained from the CustomData property of the public home page\r\nIntegration object for this Memori, if present. To be changed, the\r\nIntegration object must be changed.\r\nReturned during Get operations. Ignored in other cases.","nullable":true},"avatarOriginal3DURL":{"type":"string","description":"Original URL of the avatar 3D model represting this Memori object.\r\nIt is obtained from the CustomData property of the public home page\r\nIntegration object for this Memori, if present. To be changed, the\r\nIntegration object must be changed.\r\nReturned during Get operations. Ignored in other cases.","nullable":true},"needsPosition":{"type":"boolean","description":"True if this Memori requires positioning to be accessed.\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.","nullable":true},"needsDateTime":{"type":"boolean","description":"True if this Memori requires current date/time to be accessed.\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.","nullable":true},"voiceType":{"type":"string","description":"Type of voice for this Memori (male or female). May be provided during Registration and Update operations. Returned during Get operations. <br> Can be one of the following:<ul> <li><code>MALE</code>: standard male voice</li> <li><code>FEMALE</code>: standard female voice</li> </ul>","nullable":true},"culture":{"type":"string","description":"Culture for dialogs and natural language processing of this Memori. Returned during Get operations. Ignored in other cases. <br> Currently supported cultures are:<ul> <li><code>it-IT</code></li> <li><code>en-US</code></li> </ul>","nullable":true},"categories":{"type":"array","items":{"type":"string"},"description":"Categories (or tags) associated with this Memori.\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.","nullable":true},"nsfw":{"type":"boolean","description":"True if this Memori content must be considered\r\nnot safe for minors of working environments.\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.","nullable":true},"requireLoginToken":{"type":"boolean","description":"When True, a Giver Tag/Pin or a valid login token is needed to open a session","nullable":true},"ageRestriction":{"type":"integer","description":"The minimum age required to open a session to this Memori.\r\nReturned during Get operations.\r\nIgnored in other cases.","format":"int32"},"exposed":{"type":"boolean","description":"True if this Memori must be exposed on the homepage\r\nof its corresponding owner User's tenant.\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.","nullable":true},"mobile":{"type":"boolean","description":"True if this Memori must be accessible from the mobile app.\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.","nullable":true},"confidenceOffset":{"type":"number","description":"The offset to be applied to confidence levels.\r\nTypically, in the range from -0.02 to 0.02.","format":"float","nullable":true},"disableR2R3Loop":{"type":"boolean","description":"True if this Memori must skip the R2-R3 loop, \r\ni.e. must consider medium confidence answers as high confidence\r\nanswers in R1.\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.","nullable":true},"disableR4Loop":{"type":"boolean","description":"True if this Memori must skip the R4 loop,\r\ni.e. must not propose randomly picked contents when a Time Out\r\nevent is received in R1.\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.","nullable":true},"disableR5Loop":{"type":"boolean","description":"True if this Memori must skip the R5 loop,\r\ni.e. must not accept the \"not what I asked\" intent in R1.\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.","nullable":true},"scorm":{"type":"boolean","description":"True if this Memori is a SCORM agent (subject to MemoriAi.WebApi.ModelV2.TenantSpecs.MaxScormMemori when billing is not delegated).\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.","nullable":true},"enableCompletions":{"type":"boolean","description":"True if this Memori must try to answer using completions from a\r\nLarge Language Model, if available, when no other answers are\r\navailable.","nullable":true},"enableDeepThought":{"type":"boolean","description":"If set to ```True``` this Memori will collect known facts about the user\r\non a special long term memory and makes use of it to improve the conversation.\r\nRequires ```EnableCompletions``` to be set to ```True``` to work appropriately.","nullable":true},"alwaysAnswerWithCompletion":{"type":"boolean","description":"If set to ```True``` this Memori will always try to answer with a completion.\r\nMemory objects will be used for generative AI prompting, but not for direct answers.\r\nRequires ```EnableCompletions``` to be set to ```True``` to work appropriately.\r\nCan't be used in conjunction with the ```Chaining``` feature.\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.","nullable":true},"disableCompletionMediaExtraction":{"type":"boolean","description":"If set to ```True``` this Memori will not try to extract related media\r\nwhen generating a response through a completion with generative AI.\r\nThis flag has no effect to user-generated content: attached media will always be provided.\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.","nullable":true},"disableAIContentCollection":{"type":"boolean","description":"If set to ```True``` this Memori does not collect AI-generated content\r\n(CompletionDraft memories) and unanswered questions.","nullable":true},"completionConfigNameForQuestionAnswering":{"type":"string","description":"Name of the Completion Configuration used for Question Answering\r\nwith a Large Language Model. If null the default is used.\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.\r\nWhen updating, set it to a single dash character (```-```) to \r\nremove a previously set configuration.","nullable":true},"completionConfigForQuestionAnswering":{"$ref":"#/components/schemas/CompletionConfigSpecs"},"completionConfigNameForImportExport":{"type":"string","description":"Name of the Completion Configuration used for Import/Export\r\nwith a Large Language Model. If null the default is used.\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.\r\nWhen updating, set it to a single dash character (```-```) to \r\nremove a previously set configuration.","nullable":true},"completionConfigForImportExport":{"$ref":"#/components/schemas/CompletionConfigSpecs"},"completionConfigNameForDeepThought":{"type":"string","description":"Name of the Completion Configuration used for Deep Thought.\r\nIf null the default is used.\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.\r\nWhen updating, set it to a single dash character (```-```) to \r\nremove a previously set configuration.","nullable":true},"completionConfigForDeepThought":{"$ref":"#/components/schemas/CompletionConfigSpecs"},"completionTemperature":{"type":"number","description":"Temperature for Completions.\r\nIf not set a default is used.\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.","format":"float","nullable":true},"completionMaxTokens":{"type":"integer","description":"Maximum number of output tokens for Completions.\r\nIf not set a default is used.\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.","format":"int32","nullable":true},"chainingMemoriID":{"type":"string","description":"Optional Engine ID of a chained Memori. If set, any time this Memori\r\ncan't find an answer to a question, it will try to ask to the chained Memori.\r\nThe chained Memori will then answer and transparently handle the subsequent dialog.\r\nThe user will not be aware of chaining.\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.\r\nWhen updating, set it to a single dash character (```-```) to \r\nremove a previously set chaining.","nullable":true},"chainingBaseURL":{"type":"string","description":"Optional base URL of a chained Memori, typically ```https://engine.memori.ai/```.\r\nRequired if ChainingMemoriID is set.\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.","nullable":true},"chainingPassword":{"type":"string","description":"Password of the chained Memori. Required if ChainingMemoriID is set.\r\nMay be provided during Registration and Update operations.\r\nIgnored in other cases.","nullable":true},"enableBoardOfExperts":{"type":"boolean","description":"If set to ```True``` this Memori will act as the chairman of\r\na board of experts, i.e. for each question will determine which expert\r\nis competent and forward the question to it.\r\nAt least an Expert Reference must then be provided for this feature to activate.","nullable":true},"enableMacroFunctions":{"type":"array","items":{"type":"string"},"description":"List of Macro Function names enabled for this Memori. <br> Currently available Macro Functions are:<ul> <li><code>Wikipedia</code>: adds functions to search for a topic on Wikipedia</li> <li><code>URLCrawling</code>: adds functions to crawl a web page</li> <li><code>ContextVariables</code>: adds functions to manage context variables</li> </ul>","nullable":true},"macroParameters":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"Key-value pairs with values for macro-parameters of enabled Macro Functions.","nullable":true},"dcmUser":{"type":"string","description":"User name of the optional integration with the DCM platform.\r\nIf set, this Memori will be able send outcomes to the DCM platform\r\nwhen specific contents are emitted during the conversation.\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.\r\nWhen updating, set it to a single dash character (```-```) to \r\nremove a previously set integration.","nullable":true},"dcmSecret":{"type":"string","description":"Shared secret of the optional integration with the DCM platform.\r\nRequired if DCMUser is set.\r\nMay be provided during Registration and Update operations.\r\nIgnored in other cases.","nullable":true},"dcmAppContext":{"type":"string","description":"Application context of the optional integration with the DCM platform.\r\nRequired if DCMUser is set.\r\nMay be provided during Registration and Update operations.\r\nReturned during Get operations.","nullable":true},"blockedUntil":{"type":"string","description":"Administrative block end date. Null if no administrative block is\r\nin effect. During an administrative block a Memori can be edited\r\nwith a Giver session, but not accessed with an anonymous or\r\nReceiver session.","format":"date-time","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true}},"additionalProperties":false,"description":"Specifications of a Memori object."},"InvitationSpecs":{"type":"object","properties":{"invitationID":{"type":"string","description":"ID of this Invitation object. Unique and assigned by the system.\r\nReturned during Send and Get operations.\r\nIgnored in other cases.","nullable":true},"memoriID":{"type":"string","description":"ID of the Memori object this Invitation refers to.\r\nRequired during Send operations. Returned during\r\nGet operations. Ignored in other cases.","nullable":true},"engineMemoriID":{"type":"string","description":"ID of the Memori object on the Memori Engine.\r\nReturned during Get operations. Ignored in other cases.","nullable":true},"isInviter":{"type":"boolean","description":"True if the requesting User sent this Invitation, and as\r\nsuch has admin (update and delete) access to this Invitation.\r\nReturned during Get operations. Ignored in other cases."},"isInvitee":{"type":"boolean","description":"True if the requesting User received this Invitation, and as\r\nsuch has accept/reject access to this Invitation.\r\nReturned during Get operations. Ignored in other cases."},"text":{"type":"string","description":"Text of this Invitation. Optional during Send operations.\r\nUsed in Update operations. Returned during Get operations.\r\nIgnored in other cases.","nullable":true},"destinationName":{"type":"string","description":"Name of the person to whom this Invitation is addressed.\r\nRequired during Send operations. Returned during Get operations.\r\nIgnored in other cases.","nullable":true},"destinationEMail":{"type":"string","description":"E-mail address to which this Invitation is addressed.\r\nRequired during Send operations. Returned during Get operations.\r\nIgnored in other cases.","nullable":true},"dontSendInvitationEmail":{"type":"boolean","description":"Flag to avoid sending the Invitation e-mail.\r\nOptional during Send operations.\r\nIgnored in other cases.","nullable":true},"tag":{"type":"string","description":"Tag associated with this Invitation. Typically an emoji symbol.\r\nRequired during Send operations. Returned during Get operations,\r\nbut visible to invitee only if the invitation has been accepted.\r\nIgnored in other cases.","nullable":true},"pin":{"type":"string","description":"PIN, or personal identification number, associated with this Invitation. Required during Send operations. Returned during Get operations, but visible to invitee only if the invitation has been accepted. Ignored in other cases. <br> Format is six digits integer number, eg. <code>012345</code>.","nullable":true},"type":{"type":"string","description":"Type of this Invitation (giver, receiver etc.). Required during Send operations. Returned during Get operations. Ignored in other cases. <br> May be one of the following:<ul> <li><code>GIVER</code>: the Giver is the unique owner, administrator and content manager of a Memori</li> <li><code>RECEIVER</code>: a Receiver is a named User that can access all the public content of a Memori, plus some specific content targeted specifically at them</li> </ul>","nullable":true},"state":{"type":"string","description":"State of this Invitation (pending, accepted, rejected etc.). Returned during Get operations. Ignored in other cases. <br> May be one of the following:<ul> <li><code>PENDING</code>: the Invitation has just been sent and no action has been perfomed yet</li> <li><code>ACCEPTED</code>: the destination of this Invitation has accepted it</li> <li><code>REJECTED</code>: the destination of this Invitation has rejected it</li> </ul>","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true}},"additionalProperties":false,"description":"Specifications of an Invitation object."},"IntegrationSpecs":{"type":"object","properties":{"integrationID":{"type":"string","description":"Integration ID. Unique and assigned by the system.\r\nReturned during Registration and Get operations.\r\nIgnored in other cases.","nullable":true},"memoriID":{"type":"string","description":"ID of the Memori object this Integration refers to.\r\nRequired during Registration operations. Returned during\r\nGet operations. Ignored in other cases.","nullable":true},"type":{"type":"string","description":"Type of this integration (Google, Alexa, landing home page, etc.). Required during Registration operations. Returned during Get operations. Ignored in other cases. <br> May be one of the following:<ul> <li><code>GOOGLE</code>: a Google Home integration</li> <li><code>ALEXA</code>: an Amazon Alexa integration</li> <li><code>LANDING_EXPERIENCE</code>: a public Memori home page and landing experience</li> </ul>","nullable":true},"state":{"type":"string","description":"Current state of deployment this integration. Returned during Registration and Get operations. Ignored in other cases. <br> May be one of the following:<ul> <li><code>NEW</code></li> <li><code>PROCESSING</code></li> <li><code>DONE</code></li> <li><code>REMOVED</code></li> <li><code>ERROR</code></li> <li><code>WAITING_MANUAL_ACTION</code></li> <li><code>DRAFT</code></li> <li><code>NOT_VALIDATED</code></li> <li><code>PUBLISHED</code></li> </ul>","nullable":true},"deviceEmails":{"type":"array","items":{"type":"string"},"description":"List of e-mails associated with on-device accounts.\r\nUsed during Registration and Update operations for\r\nintegration types ```GOOGLE``` and ```ALEXA```.\r\nReturned during Get operations.\r\nIgnored in other cases.","nullable":true},"invocationText":{"type":"string","description":"Text to be spoken to invoke the integration.\r\nMay be used during Registration and Update operations for\r\nintegration types ```GOOGLE``` and ```ALEXA```.\r\nReturned during Get operations.\r\nIgnored in other cases.","nullable":true},"jobID":{"type":"string","description":"ID of the deployment job of this integration.\r\nReturned during Registration and Get operations.\r\nIgnored in other cases.","nullable":true},"customData":{"type":"string","description":"JSON structure containing the data specific for this type of\r\nintegration. May be used during Registration and Update operations,\r\ndepending on the integration type.\r\nReturned during Get operations.\r\nIgnored in other cases.","nullable":true},"resources":{"type":"array","items":{"$ref":"#/components/schemas/IntegrationResourceSpecs"},"description":"Additional resources need by, or returned by, the deployment job.\r\nMay be used during Registration and Update operations, depending\r\non the integration type.\r\nReturned during Get operations.\r\nIgnored in other cases.","nullable":true},"publish":{"type":"boolean","description":"If set to True, the integration will be published on the\r\ncorresponding environment (e.g. on Amazon Alexa or Google Home)\r\nto the general public. If False the integration will remain\r\navailable only for testing.\r\nUsed during Update operations. Returned during Get operations.\r\nIgnored in other cases.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true}},"additionalProperties":false,"description":"Specifications of an Integration object."},"IntegrationResourceSpecs":{"type":"object","properties":{"name":{"type":"string","description":"Resource name.","nullable":true},"url":{"type":"string","description":"Resource URL.","nullable":true}},"additionalProperties":false,"description":"Specifications of an Integration Resource object."},"CompletionConfigSpecs":{"type":"object","properties":{"completionConfigID":{"type":"string","description":"Completion Config object ID.\r\nReturned during Get operations.\r\nIgnored in other cases.","nullable":true},"configName":{"type":"string","description":"Completion Config unique name.\r\nRequired during Creation operations.\r\nUsed during Update operations.\r\nReturned during Get operations.","nullable":true},"description":{"type":"string","description":"Optional Completion Config description.\r\nUsed during Creation operations and Update.\r\nReturned during Get operations.","nullable":true},"provider":{"type":"string","description":"Name of the Completion Provider. Required during Creation operations. Used during Update operations. Returned during Get operations. <br> Currently possible values are:<ul> <li><code>OpenAI</code></li> <li><code>Anthropic</code></li> <li><code>Mistral</code></li> <li><code>Azure_OpenAI</code></li> <li><code>Custom_OpenAI</code></li> </ul>","nullable":true},"endPoint":{"type":"string","description":"URL of the Completion Provider API end-point.\r\nUsed during Creation operations and Update.\r\nReturned during Get operations.","nullable":true},"apiKey":{"type":"string","description":"API key of the Completion Provider API end-point.\r\nRequired during Creation operations (optional for Custom_OpenAI provider).\r\nUsed during Update operations.\r\nReturned during Get operations as an obfuscated value.","nullable":true},"model":{"type":"string","description":"Name of the Completion Model. This is provider-specific,\r\nand for some providers (e.g. Azure) it is also part of\r\nthe end-point URL.\r\nRequired during Creation operations.\r\nUsed during Update operations.\r\nReturned during Get operations.","nullable":true},"questionAnsweringEnabled":{"type":"boolean","description":"If True this configuration can be used for Question & Answer operations.\r\nIf not specified False is assumed. At least one use must be enabled.\r\nUsed during Creation operations and Update operations.\r\nReturned during Get operations.","nullable":true},"importExportEnabled":{"type":"boolean","description":"If True this configuration can be used for Import/Export operations. \r\nIf not specified False is assumed. At least one use must be enabled.\r\nUsed during Creation operations and Update operations.\r\nReturned during Get operations.","nullable":true},"deepThoughtEnabled":{"type":"boolean","description":"If True this configuration can be used for Deep Thought operations. \r\nIf not specified False is assumed. At least one use must be enabled.\r\nUsed during Creation operations and Update operations.\r\nReturned during Get operations.","nullable":true},"ownerUserID":{"type":"string","description":"ID of the User this Config belongs to.\r\nReturned during Get operations if the user is the owner or an administrator.\r\nIgnored in other cases.","nullable":true},"ownerUserName":{"type":"string","description":"Name of the User this Config belongs to.\r\nReturned during Get operations.\r\nIgnored in other cases.","nullable":true},"ownerTenantName":{"type":"string","description":"Name of the Tenant of the User this Config belongs to.\r\nReturned during Get operations.\r\nIgnored in other cases.","nullable":true},"visibleToTenantUsers":{"type":"boolean","description":"If True this configuration can be used by other users of the owner's Tenant.\r\nIf not specified False is assumed.\r\nUsed during Creation operations and Update operations.\r\nReturned during Get operations.","nullable":true},"visibleToOtherUsers":{"type":"boolean","description":"If True this configuration can be used by users of other Tenants.\r\nIf not specified False is assumed.\r\nUsed during Creation operations and Update operations.\r\nReturned during Get operations.","nullable":true},"useAsDefault":{"type":"boolean","description":"If True this configuration is used as the default (for the operations it is enabled for)\r\nwhen a new Memori is created. The use as default requires that the configuration is visible\r\nat least to the owner's Tenant users.\r\nUsed during Creation operations and Update operations.\r\nReturned during Get operations.","nullable":true},"chargeable":{"type":"boolean","description":"If True the use of this configuration is chargeable to the customer.","nullable":true},"applyTo":{"type":"string","description":"During Creation and Update operations, when set forces this configuration to be applied to the specified Memori objects and purposes. Ignored during Get operations. <br> Can be one of the following:<ul> <li><code>ONLY_USER_MEMORI_ON_DEFAULT_ONLY_QA_PURPOSE</code>: the configuration is applied to user's Memori objects with the default configuration, for Question &amp; Answer purpose only.</li> <li><code>ONLY_USER_MEMORI_ON_DEFAULT_ONLY_IE_PURPOSE</code>: the configuration is applied to user's Memori objects with the default configuration, for Import/Export purpose only.</li> <li><code>ONLY_USER_MEMORI_ON_DEFAULT_ONLY_DT_PURPOSE</code>: the configuration is applied to user's Memori objects with the default configuration, for Deep Thought purpose only.</li> <li><code>ONLY_USER_MEMORI_ON_DEFAULT_ALL_ENABLED_PURPOSES</code>: the configuration is applied to user's Memori objects with the default configuration, for all enabled purposes.</li> <li><code>ALL_USER_MEMORI_ONLY_QA_PURPOSE</code>: the configuration is applied to all user's Memori objects, for Question &amp; Answer purpose only.</li> <li><code>ALL_USER_MEMORI_ONLY_IE_PURPOSE</code>: the configuration is applied to all user's Memori objects, for Import/Export purpose only.</li> <li><code>ALL_USER_MEMORI_ONLY_DT_PURPOSE</code>: the configuration is applied to all user's Memori objects, for Deep Thought purpose only.</li> <li><code>ALL_USER_MEMORI_ALL_ENABLED_PURPOSES</code>: the configuration is applied to all user's Memori objects, for all enabled purposes.</li> <li><code>ONLY_TENANT_MEMORI_ON_DEFAULT_ONLY_QA_PURPOSE</code>: the configuration is applied to the Tenant's Memori objects with the default configuration, for Question &amp; Answer purpose only.</li> <li><code>ONLY_TENANT_MEMORI_ON_DEFAULT_ONLY_IE_PURPOSE</code>: the configuration is applied to the Tenant's Memori objects with the default configuration, for Import/Export purpose only.</li> <li><code>ONLY_TENANT_MEMORI_ON_DEFAULT_ONLY_DT_PURPOSE</code>: the configuration is applied to the Tenant's Memori objects with the default configuration, for Deep Thought purpose only.</li> <li><code>ONLY_TENANT_MEMORI_ON_DEFAULT_ALL_ENABLED_PURPOSES</code>: the configuration is applied to the Tenant's Memori objects with the default configuration, for all enabled purposes.</li> <li><code>ALL_TENANT_MEMORI_ONLY_QA_PURPOSE</code>: the configuration is applied to all the Tenant's Memori objects, for Question &amp; Answer purpose only.</li> <li><code>ALL_TENANT_MEMORI_ONLY_IE_PURPOSE</code>: the configuration is applied to all the Tenant's Memori objects, for Import/Export purpose only.</li> <li><code>ALL_TENANT_MEMORI_ONLY_DT_PURPOSE</code>: the configuration is applied to all the Tenant's Memori objects, for Deep Thought purpose only.</li> <li><code>ALL_TENANT_MEMORI_ALL_ENABLED_PURPOSES</code>: the configuration is applied to all the Tenant's Memori objects, for all enabled purposes.</li> </ul>","nullable":true}},"additionalProperties":false,"description":"Specifications of a Completion Config object."}}}}
````

## The UpdateNotificationResponse object

````json
{"openapi":"3.0.1","info":{"title":"Memori.ai Web API V2","version":"v2"},"components":{"schemas":{"UpdateNotificationResponse":{"type":"object","properties":{"notification":{"$ref":"#/components/schemas/NotificationSpecs"},"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 reponse.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous reponse.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is indicative of the actual\r\nerror.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false},"NotificationSpecs":{"type":"object","properties":{"notificationID":{"type":"string","description":"Notificaiton ID. Unique and assigned by the system.","nullable":true},"timestamp":{"type":"string","description":"Timestamp UTC of the notification.","format":"date-time"},"severity":{"type":"string","description":"Severity level. <br> May be one of the following:<ul> <li><code>INFO</code>: the notification is an information</li> <li><code>AWARD</code>: the notification is an award</li> <li><code>BANNER</code>: the notification is a banner</li> <li><code>WARN</code>: the notification is a warning</li> <li><code>ALERT</code>: the notification is an alert</li> </ul>","nullable":true},"texts":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"Notification text, in different languages/cultures.\r\nThe key is the language/culture, e.g. \"en-US\" or \"it-IT\",\r\nand the value is the corresponding text.","nullable":true},"additionalInfo":{"type":"object","additionalProperties":{"type":"string","nullable":true},"description":"Optional additional information, in the form of key-value pairs.","nullable":true},"type":{"type":"string","description":"Notification type. /// <br> May be one of the following:<ul> <li><code>BROADCAST</code>: the notification is a broadcast</li> <li><code>TENANT</code>: the notification is a tenant notification</li> <li><code>USER</code>: the notification is a user notification</li> </ul>","nullable":true},"tenant":{"type":"string","description":"Tenant ID of the notification.","nullable":true},"userName":{"type":"string","description":"The Username of the user that the notification is addressed to.","nullable":true},"validFrom":{"type":"string","description":"The date and time from which the notification is valid. <br> Used when creating and modifying the notification. Ignored otherwise.","format":"date-time","nullable":true},"validTo":{"type":"string","description":"The date and time until which the notification is valid. <br> Used when creating and modifying the notification. Ignored otherwise.","format":"date-time","nullable":true}},"additionalProperties":false,"description":"Specifications of a Notification object."}}}}
````

## The UpdateTenantResponse object

````json
{"openapi":"3.0.1","info":{"title":"Memori.ai Web API V2","version":"v2"},"components":{"schemas":{"UpdateTenantResponse":{"type":"object","properties":{"tenant":{"$ref":"#/components/schemas/TenantSpecs"},"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 reponse.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous reponse.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is indicative of the actual\r\nerror.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response of an Update Tenant request."},"TenantSpecs":{"type":"object","properties":{"tenantID":{"type":"string","description":"Tenant ID.\r\nReturned during Get operations.\r\nIgnored in other cases.","nullable":true},"name":{"type":"string","description":"Tenant name. Usually a host name, e.g. ```app.memorytwin.com```.\r\nReturned during Get operations.\r\nUsed during Duplicate operations.\r\nIgnored in other cases.","nullable":true},"aliases":{"type":"array","items":{"type":"string"},"description":"Additional Tenant names. Usually host names, e.g. ```app.memorytwin.com```.\r\nReturned during Get operations.\r\nUsed during Update operations.\r\nIgnored in other cases.","nullable":true},"tenantType":{"type":"string","description":"Type of the Tenant. <br> The following values are possible: <ul> <li><code>Owned</code>: the tenant is owned Memori</li> <li><code>Customer</code>: the tenant is owned by a customer</li> </ul>","nullable":true},"description":{"type":"string","description":"Tenant description. Usually a human-readable name, e.g. ```MemoryTwin```.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","nullable":true},"logoURL":{"type":"string","description":"URL of the Tenant logo.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","nullable":true},"squareLogoURL":{"type":"string","description":"URL of the Tenant Icons logo.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","nullable":true},"adminEmail":{"type":"string","description":"Administrative e-mail for the Tenant.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","nullable":true},"theme":{"type":"string","description":"Color theme to be used for the Tenant.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","nullable":true},"feedbackURL":{"type":"string","description":"URL for the feedback form for the Tenant.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","nullable":true},"privacyPolicyURL":{"type":"string","description":"URL of the Privacy Policy page for the Tenant.","nullable":true},"speechProvider":{"type":"string","description":"Text to speech provider for the Tenant.","nullable":true},"speechAPIKey":{"type":"string","description":"API key for the text to speech provider.","nullable":true},"perplexityAPIKey":{"type":"string","description":"API key for Perplexity Search LLM Engine.","nullable":true},"adminCount":{"type":"integer","description":"Current number of administrative Users.\r\nReturned during Get operations.\r\nIgnored in other cases.","format":"int32"},"userCount":{"type":"integer","description":"Current number of normal Users.\r\nReturned during Get operations.\r\nIgnored in other cases.","format":"int32"},"memoriCount":{"type":"integer","description":"Current number of Memori objects.\r\nReturned during Get operations.\r\nIgnored in other cases.","format":"int32"},"scormMemoriCount":{"type":"integer","description":"Current number of Memori objects with SCORM enabled.\r\nReturned during Get operations.\r\nIgnored in other cases.\r\nOmitted when MemoriAi.WebApi.ModelV2.TenantSpecs.MaxScormMemori is not greater than zero.","format":"int32","nullable":true},"disableRegistration":{"type":"boolean","description":"If ```True``` no new User can be registered for this Tenant.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","nullable":true},"maxMemoriPerAdmin":{"type":"integer","description":"Maximum number of Memori objects per administrative User.\r\nIf ```0``` it means unlimited.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","format":"int32","nullable":true},"maxMemoriPerUser":{"type":"integer","description":"Maximum number of Memori objects per normal User.\r\nIf ```0``` it means unlimited.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","format":"int32","nullable":true},"maxTotalMemori":{"type":"integer","description":"Maximum total number of Memori objects.\r\nIf ```0``` it means unlimited.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","format":"int32","nullable":true},"maxAdmins":{"type":"integer","description":"Maximum number of administrative Users.\r\nIf ```0``` it means unlimited.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","format":"int32","nullable":true},"maxUsers":{"type":"integer","description":"Maximum number of normal Users.\r\nIf ```0``` it means unlimited.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","format":"int32","nullable":true},"maxFreeSessions":{"type":"integer","description":"Maximum total number of free sessions across all users of this Tenant.\r\nIf ```0``` it means unlimited.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","format":"int32","nullable":true},"maxFreeSessionsPerUser":{"type":"integer","description":"Maximum number of free sessions for a User.\r\nIf ```0``` it means unlimited.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","format":"int32","nullable":true},"nonFreeSessionCost":{"type":"number","description":"Cost of each new session above the max free sessions threshold.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","format":"double","nullable":true},"maxCompletions":{"type":"integer","description":"Maximum total number of completions across all users of this Tenant.\r\nif ```0``` it means unlimited.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","format":"int32","nullable":true},"maxCompletionsPerUser":{"type":"integer","description":"Maximum number of completions for a User.\r\nif ```0``` it means unlimited.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","format":"int32","nullable":true},"maxImportSize":{"type":"integer","description":"Maximum total number of characters that can be imported across\r\nall users of this Tenant.\r\nif ```0``` it means unlimited.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","format":"int64","nullable":true},"maxImportSizePerUser":{"type":"integer","description":"Maximum number of characters that can be imported by a User.\r\nif ```0``` it means unlimited.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","format":"int64","nullable":true},"maxScormMemori":{"type":"integer","description":"Maximum number of SCORM Memori for this Tenant.\r\nIf ```0``` it means unlimited.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","format":"int32","nullable":true},"paying":{"type":"boolean","description":"If ```True``` means this Tenant has an actual payment\r\ncontract in effect and non-free sessions (i.e. sessions above\r\nthe max free session thresholds) can be performed.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","nullable":true},"enableUserMemoriCreation":{"type":"boolean","description":"If ```True``` normal Users can create new Memori objects.\r\nAdministrative Users always can.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","nullable":true},"enableBoardOfExperts":{"type":"boolean","description":"If ```True``` the Board of Experts feature is enabled.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","nullable":true},"enableDCMIntegration":{"type":"boolean","description":"If ```True``` the DCM integration feature is enabled\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","nullable":true},"enableBadges":{"type":"boolean","description":"If ```True``` this Tenant accepts DCM outcomes and\r\nconsequently can receive badges in the Open Badge format.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","nullable":true},"enableDeepThought":{"type":"boolean","description":"If ```True``` the Deep Thought feature is enabled.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","nullable":true},"enableVirtualSpaces":{"type":"boolean","description":"If ```True``` the Virtual Spaces feature is enabled.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","nullable":true},"enableScorm":{"type":"boolean","description":"If ```True```, SCORM Memori may be created or enabled on this Tenant (subject to MemoriAi.WebApi.ModelV2.TenantSpecs.MaxScormMemori when billing is not delegated).\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations (SuperAdmin only).","nullable":true},"billingDelegation":{"type":"boolean","description":"If ```True``` the Tenant costs and limits are\r\ncomputed from the configured Billing interface.","nullable":true},"ssoLogin":{"type":"boolean","description":"When ```True```, SSO login is enabled for this tenant.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","nullable":true},"ssoRedirect":{"type":"string","description":"Optional redirect URL for SSO. Omitted when null.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","nullable":true},"chatLogsRetentionDays":{"type":"integer","description":"Number of days to retain chat logs. Must be at least 1.\r\nReturned during Get operations.\r\nUsed during Duplicate and Update operations.","format":"int32","nullable":true},"smtpConfig":{"$ref":"#/components/schemas/SMTPConfig"},"translationServiceConfig":{"$ref":"#/components/schemas/TranslationServiceConfig"},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true}},"additionalProperties":false,"description":"Specifications of a Tenant object."},"SMTPConfig":{"type":"object","properties":{"server":{"type":"string","nullable":true},"user":{"type":"string","nullable":true},"password":{"type":"string","nullable":true},"port":{"type":"integer","format":"int32"},"socketSecurity":{"type":"string","nullable":true},"senderEmail":{"type":"string","nullable":true},"senderName":{"type":"string","nullable":true}},"additionalProperties":false},"TranslationServiceConfig":{"type":"object","properties":{"apiKey":{"type":"string","nullable":true},"url":{"type":"string","nullable":true}},"additionalProperties":false}}}}
````

## The UpdateTrustedApplicationResponse object

````json
{"openapi":"3.0.1","info":{"title":"Memori.ai Web API V2","version":"v2"},"components":{"schemas":{"UpdateTrustedApplicationResponse":{"type":"object","properties":{"trustedApplication":{"$ref":"#/components/schemas/TrustedApplicationSpecs"},"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 reponse.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous reponse.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is indicative of the actual\r\nerror.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response of an Update TrustedApplication request."},"TrustedApplicationSpecs":{"required":["authorizationToken","isEnabled","name"],"type":"object","properties":{"trustedApplicationID":{"type":"string","description":"TrustedApplication ID. Unique and assigned by the system.\r\nReturned during Get operations. Ignored in other cases.","nullable":true},"tenantID":{"type":"string","description":"Tenant ID this TrustedApplication belongs to.\r\nRequired during Create operations. Returned during Get operations.","nullable":true},"name":{"maxLength":255,"minLength":1,"type":"string","description":"Name of the TrustedApplication. Must be unique within the tenant.\r\nRequired during Create operations. Used during Update operations.\r\nReturned during Get operations."},"description":{"maxLength":1000,"type":"string","description":"Description of the TrustedApplication.\r\nOptional during Create and Update operations.\r\nReturned during Get operations.","nullable":true},"baseUrl":{"maxLength":500,"type":"string","description":"Base URL of the TrustedApplication.\r\nOptional during Create and Update operations.\r\nReturned during Get operations.","nullable":true},"authorizationToken":{"maxLength":1000,"minLength":1,"type":"string","description":"Authorization token for the TrustedApplication.\r\nRequired during Create operations. Used during Update operations.\r\nReturned during Get operations."},"isEnabled":{"type":"boolean","description":"Whether the TrustedApplication is enabled.\r\nRequired during Create operations. Used during Update operations.\r\nReturned during Get operations."},"createdByUserID":{"type":"string","description":"User ID who created this TrustedApplication.\r\nReturned during Get operations. Ignored in other cases.","nullable":true},"lastModifiedByUserID":{"type":"string","description":"User ID who last modified this TrustedApplication.\r\nReturned during Get operations. Ignored in other cases.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true}},"additionalProperties":false,"description":"Specifications of a TrustedApplication object."}}}}
````

## The UpdateUserResponse object

````json
{"openapi":"3.0.1","info":{"title":"Memori.ai Web API V2","version":"v2"},"components":{"schemas":{"UpdateUserResponse":{"type":"object","properties":{"user":{"$ref":"#/components/schemas/UserSpecs"},"requestID":{"type":"integer","description":"Progressive number of the request (since the Server started).\r\nUse this number, together with the RequestDateTime property,\r\nto report an anomalous reponse.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous reponse.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is indicative of the actual\r\nerror.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response of an Update User request."},"UserSpecs":{"type":"object","properties":{"tenant":{"type":"string","description":"Name of the Tenant this user is associated to. Required during \r\nLogin and Registration operations. Returned during Get operations.\r\nIgnored in other cases.","nullable":true},"userID":{"type":"string","description":"User ID. Unique and assigned by the system.\r\nReturned during Login and Get operations. Ignored in other cases.","nullable":true},"userName":{"type":"string","description":"User name. Must be unique. Required during Login and Registration\r\noperations. Returned during Get operations.\r\nIgnored in other cases.","nullable":true},"eMail":{"type":"string","description":"E-mail address. Required during Registration operations. Used during Update operations. May be used as an alternative to UserName during Login operations. Returned during Get operations. <br> The address is checked via a verification code.","nullable":true},"avatarURL":{"type":"string","description":"URL of the avatar image representing the User.\r\nMay be provided during Registration and Update operations.\r\nReturned during Login and Get operations.","nullable":true},"avatar3DURL":{"type":"string","description":"URL of the avatar 3D model representing the User.\r\nMay be provided during Registration and Update operations.\r\nReturned during Login and Get operations.","nullable":true},"avatar3DURLType":{"type":"string","description":"Additional information about the avatar 3D model URL, e.g. if it's a head-only, full-body avatar, custom model etc. <br> Sample possible values are: <ul> <li><code>readyplayerme</code>: the avatar 3D URL points a half-body ReadyPlayerMe GLB model</li> <li><code>readyplayerme-full</code>: the avatar 3D URL points a full-body ReadyPlayerMe GLB model</li> <li><code>customglb</code>: the avatar 3D URL points to a custom GLB model</li> </ul>","nullable":true},"dontSendInvitationEmail":{"type":"boolean","description":"If ```True``` during a Creation operation, the automatic\r\ninvitation e-mail is not sent, and the temporary password is\r\nreturned as part of the operation response.\r\nUsed during Creation operations. Ignored in other cases.","nullable":true},"referral":{"type":"string","description":"Optional referral URL from which the User reached the registration\r\npage.","nullable":true},"couponCode":{"type":"string","description":"Optional coupon code used by the User during Registration.","nullable":true},"newsletterSubscribed":{"type":"boolean","description":"```True``` if the e-mail address is subscribed to the newsletter.\r\n            Used during Registration and Update operations.\r\n            Returned during Get operations.","nullable":true},"notificationPrefs":{"type":"array","items":{"$ref":"#/components/schemas/NotificationPrefsSpecs"},"description":"List of Notification Preferences objects.\r\nUsed Update operations. Returned during Get operations.\r\nIgnored in other cases.","nullable":true},"admin":{"type":"boolean","description":"```True``` if the User is an administrator, i.e. can administer\r\n            the tenant they are part of.\r\n            Used during Creation and Update operations by a super administrator.\r\n            Returned during Login and Get operations.","nullable":true},"superAdmin":{"type":"boolean","description":"```True``` if the User is a super administrator, i.e. can\r\n            administer all tenants.\r\n            Returned during Login and Get operations.\r\n            Ignored in other cases.","nullable":true},"numMemori":{"type":"integer","description":"The current number of Memori objects belonging to this User. Returned during Get and Login operations. Ignored in other cases. <br> Visible only to administrators and the user themself.","format":"int32","nullable":true},"maxMemori":{"type":"integer","description":"Maximum number of Memori objects this User can create.\r\nIf ```0``` it means unlimited.\r\nUsed during Creation and Update operations by a super administrator.\r\nReturned during Get and Login operations.","format":"int32","nullable":true},"monthSessions":{"type":"integer","description":"Number of sessions in the current month for this User. Returned during Get and Login operations. Ignored in other cases. <br> Visible only to administrators and the user themself.","format":"int32","nullable":true},"monthValidSessions":{"type":"integer","description":"Number of valid sessions in the current month for this User. Valid sessions are performed by a not Giver user with at least one request/response pair. Returned during Get and Login operations. Ignored in other cases. <br> Visible only to administrators and the user themself.","format":"int32","nullable":true},"monthDeepThoughtValidSessions":{"type":"integer","description":"Number of valid sessions in the current month for this User, with Deep Thought enabled. Returned during Get and Login operations. Ignored in other cases. <br> Visible only to administrators and the user themself.","format":"int32","nullable":true},"maxFreeSessions":{"type":"integer","description":"Maximum number of free Memori sessions this User can open per month.\r\nif ```0>``` it means unlimited.\r\nUsed during Creation and Update operations by a super administrator.\r\nReturned during Get and Login operations.","format":"int32","nullable":true},"nonFreeSessionCost":{"type":"number","description":"The cost of each new session above the max free sessions threshold.","format":"double","nullable":true},"monthCompletions":{"type":"integer","description":"Number of completions in the current month for this User. Returned during Get and Login operations. Ignored in other cases. <br> Visible only to administrators and the user itself.","format":"int32","nullable":true},"monthDeepThoughtCompletions":{"type":"integer","description":"Number of completions in the current month for this User, with Deep Thought enabled. Returned during Get and Login operations. Ignored in other cases. <br> Visible only to administrators and the user itself.","format":"int32","nullable":true},"monthImportedSize":{"type":"integer","description":"Number of characters imported in the current month for this User. Returned during Get and Login operations. Ignored in other cases. <br> Visible only to administrators and the user itself.","format":"int64","nullable":true},"maxCompletions":{"type":"integer","description":"Maximum number of completions for this User per month.\r\nif ```0``` it means unlimited.\r\nUsed during Creation and Update operations by a super administrator.\r\nReturned during Get and Login operations.","format":"int32","nullable":true},"maxImportSize":{"type":"integer","description":"Maximum number of characters that can imported be by this User per month.\r\nif ```0``` it means unlimited.\r\nUsed during Creation and Update operations by a super administrator.\r\nReturned during Get and Login operations.","format":"int64","nullable":true},"paying":{"type":"boolean","description":"If ```True``` means this User has an actual payment\r\ncontract in effect and non-free sessions (i.e. sessions above\r\nthe max free session threshold) can be performed.","nullable":true},"enableMemoriCreation":{"type":"boolean","description":"```True``` if the User can create new Memori objects.\r\n            Used during Creation and Update operations by an administrator.\r\n            Returned during Get and Login operations.","nullable":true},"enableBoardOfExperts":{"type":"boolean","description":"```True``` if the User can access the Board of Experts feature.\r\n            Used during Creation and Update operations by an administrator.\r\n            Returned during Get and Login operations.","nullable":true},"enableDCMIntegration":{"type":"boolean","description":"```True``` if the User access the DCM integration feature.\r\n            Used during Creation and Update operations by an administrator.\r\n            Returned during Get and Login operations.","nullable":true},"enableBadges":{"type":"boolean","description":"If ```True``` this User accepts DCM outcomes and\r\nconsequently can receive badges in the Open Badge format.\r\nUsed during Creation and Update operations by an administrator.\r\nReturned during Get and Login operations.","nullable":true},"enableDeepThought":{"type":"boolean","description":"```True``` if the User can access the Deep Thought feature.\r\n            Used during Creation and Update operations by an administrator.\r\n            Returned during Get and Login operations.","nullable":true},"enableVirtualSpaces":{"type":"boolean","description":"```True``` if the User can access the Virtual Spaces feature.\r\n            Used during Creation and Update operations by an administrator.\r\n            Returned during Get and Login operations.","nullable":true},"birthDate":{"type":"string","description":"User date of birth. Necessary of age-restricted features, such as\r\nenabling completions or accessing NSFW content.\r\nUsed during Registration and Update operations.\r\nReturned during Get operations.","format":"date-time","nullable":true},"age":{"type":"integer","description":"Age computed from the birth date.\r\nReturned during Get operations.\r\nIgnored in other cases.","format":"int32"},"tnCAndPPAccepted":{"type":"boolean","description":"Terms & Conditions and Privacy Policy acceptance flag.\r\nMay be reset to False in case of T. & C. and/or P. P. change.\r\nWhen False all operations that imply a change are blocked.\r\nMandatory during Registration. Used during Update operations.\r\nReturned during Get operations.","nullable":true},"tnCAndPPAcceptanceDate":{"type":"string","description":"Date of acceptance of Terms & Conditions and Privacy Policy.\r\nReturned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true},"pAndCUAccepted":{"type":"boolean","description":"Profiling & Commercial Use acceptance flag.\r\nMay be reset to False in case of T. & C. and/or P. P. change.\r\nWhen False features that require profiling and may imply commercial\r\ncommunication to the User (e.g. Deep Thought) are disabled.\r\nUsed during Registration and Update operations.\r\nReturned during Get operations.","nullable":true},"pAndCUAcceptanceDate":{"type":"string","description":"Date of acceptance of Profiling & Commercial Use.\r\nReturned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true},"magicLinkURL":{"type":"string","description":"Optional magic link URL. If not set a default one is used.\r\nThe URL is invoked appending the Session ID at the end.\r\nUsed during Login and Create operations.\r\nIgnored in other cases.","nullable":true},"redirectTo":{"type":"string","description":"Optional RedirectTo.\r\nIf set the user will be redirected to the specified page.\r\nIgnored in other cases.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true}},"additionalProperties":false,"description":"Specifications of a User object."},"NotificationPrefsSpecs":{"type":"object","properties":{"chatLogExtractionPeriod":{"type":"string","description":"Periodicity of chat log extraction (hourly, daily, weekly or none). When chat log extraction is enabled (i.e. not <code>None</code>) chats performed on Memori owned or managed by the User will be periodically collected and sent via e-mail. Required. <br> Can be one of the following:<ul> <li><code>None</code></li>: no chat log extraction is performed. <li><code>Hourly</code></li>: chat log extraction is performed every hour. <li><code>Hourly</code></li>: chat log extraction is performed daily. <li><code>Hourly</code></li>: chat log extraction is performed weekly. </ul>","nullable":true},"chatLogExtractionMinLines":{"type":"integer","description":"Minimum lines for an extracted chat to be sent via e-mail to\r\nthe User. If ```0``` no filter is applied.\r\nDefault is ```5```.","format":"int32","nullable":true},"memoriID":{"type":"string","description":"Memori ID to which these preferences apply to.\r\nIf ```Null``` these preferences have default value\r\nand apply to all Memori objects not specified with other\r\npreferences.","nullable":true}},"additionalProperties":false,"description":"Specifications of a Notificattion Preferences object."}}}}
````

## The UploadAssetResponse object

````json
{"openapi":"3.0.1","info":{"title":"Memori.ai Web API V2","version":"v2"},"components":{"schemas":{"UploadAssetResponse":{"type":"object","properties":{"asset":{"$ref":"#/components/schemas/AssetSpecs"},"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 reponse.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous reponse.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is indicative of the actual\r\nerror.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Response of an Upload Asset request."},"AssetSpecs":{"type":"object","properties":{"assetID":{"type":"string","description":"Asset ID. Unique and assigned by the system.\r\nReturned during Upload operations.\r\nIgnored in other cases.","nullable":true},"assetURL":{"type":"string","description":"Public URL of the Asset file. Unique and assigned by the system.\r\nReturned during Upload operations.\r\nIgnored in other cases.","nullable":true},"mimeType":{"type":"string","description":"Extrapolated MIME type.\r\nReturned during Upload operations.\r\nIgnored in other cases.","nullable":true},"originalFileName":{"type":"string","description":"Original name of the uploaded file, without the extension.\r\nReturned during Upload operations.\r\nUsed during Update operations.","nullable":true},"memoriID":{"type":"string","description":"Optional ID of the Memori object this Asset belongs to.\r\nMay be empty for assets not belonging to a Memori object.\r\nReturned during Upload operations.\r\nIgnored in other cases.","nullable":true},"remoteSessionCheck":{"type":"boolean","description":"Optional flag to protect resource downloads with remote session control.\r\nReturned during Upload operations.\r\nUsed during Update operations.","nullable":true},"engineMemoryID":{"type":"string","description":"Optional ID of the Memory object on the Memori Engine.\r\nMay be empty for public assets. \r\nReturned during Upload operations.\r\nUsed during Update operations. To clear this property during an\r\nUpdate operation set it to a single dash character (\"-\").","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true}},"additionalProperties":false,"description":"Specifications of an Asset object."}}}}
````

## The UserQueryAnalysisSpecs object

```json
{"openapi":"3.0.1","info":{"title":"Memori.ai Web API V2","version":"v2"},"components":{"schemas":{"UserQueryAnalysisSpecs":{"type":"object","properties":{"query":{"type":"string","description":"Query to be matched with User objects in the analysis.\r\nRequired.","nullable":true},"threshold":{"type":"number","description":"Threshold between 0.0 and 1.0. User objects whose match level\r\nis below this threshold will be discarded.\r\nIf null, all User objects will be returned.","format":"float","nullable":true}},"additionalProperties":false}}}}
```

## The UserQueryMatchSpecs object

```json
{"openapi":"3.0.1","info":{"title":"Memori.ai Web API V2","version":"v2"},"components":{"schemas":{"UserQueryMatchSpecs":{"type":"object","properties":{"userQueryMatchID":{"type":"string","description":"Match ID. Unique and assigned by the system.","nullable":true},"analysisID":{"type":"string","description":"ID of the Analysis object this match refers to.","nullable":true},"memoriID":{"type":"string","description":"ID of the Memori object this match refers to.","nullable":true},"engineUserID":{"type":"string","description":"ID of the corresponding User object on the Engine.","nullable":true},"userName":{"type":"string","description":"User name.","nullable":true},"tenantName":{"type":"string","description":"User's Tenant name.","nullable":true},"userEmail":{"type":"string","description":"User's e-mail.","nullable":true},"match":{"type":"number","description":"Match level between the Analysis query and this User.\r\nValue is between 0 and 1, with 0.0 meaning no match\r\nand 1.0 meaning perfect match.","format":"float"}},"additionalProperties":false,"description":"Specifications of a Deep Thought User/query Match object."}}}}
```

## The UserSpecs object

````json
{"openapi":"3.0.1","info":{"title":"Memori.ai Web API V2","version":"v2"},"components":{"schemas":{"UserSpecs":{"type":"object","properties":{"tenant":{"type":"string","description":"Name of the Tenant this user is associated to. Required during \r\nLogin and Registration operations. Returned during Get operations.\r\nIgnored in other cases.","nullable":true},"userID":{"type":"string","description":"User ID. Unique and assigned by the system.\r\nReturned during Login and Get operations. Ignored in other cases.","nullable":true},"userName":{"type":"string","description":"User name. Must be unique. Required during Login and Registration\r\noperations. Returned during Get operations.\r\nIgnored in other cases.","nullable":true},"eMail":{"type":"string","description":"E-mail address. Required during Registration operations. Used during Update operations. May be used as an alternative to UserName during Login operations. Returned during Get operations. <br> The address is checked via a verification code.","nullable":true},"avatarURL":{"type":"string","description":"URL of the avatar image representing the User.\r\nMay be provided during Registration and Update operations.\r\nReturned during Login and Get operations.","nullable":true},"avatar3DURL":{"type":"string","description":"URL of the avatar 3D model representing the User.\r\nMay be provided during Registration and Update operations.\r\nReturned during Login and Get operations.","nullable":true},"avatar3DURLType":{"type":"string","description":"Additional information about the avatar 3D model URL, e.g. if it's a head-only, full-body avatar, custom model etc. <br> Sample possible values are: <ul> <li><code>readyplayerme</code>: the avatar 3D URL points a half-body ReadyPlayerMe GLB model</li> <li><code>readyplayerme-full</code>: the avatar 3D URL points a full-body ReadyPlayerMe GLB model</li> <li><code>customglb</code>: the avatar 3D URL points to a custom GLB model</li> </ul>","nullable":true},"dontSendInvitationEmail":{"type":"boolean","description":"If ```True``` during a Creation operation, the automatic\r\ninvitation e-mail is not sent, and the temporary password is\r\nreturned as part of the operation response.\r\nUsed during Creation operations. Ignored in other cases.","nullable":true},"referral":{"type":"string","description":"Optional referral URL from which the User reached the registration\r\npage.","nullable":true},"couponCode":{"type":"string","description":"Optional coupon code used by the User during Registration.","nullable":true},"newsletterSubscribed":{"type":"boolean","description":"```True``` if the e-mail address is subscribed to the newsletter.\r\n            Used during Registration and Update operations.\r\n            Returned during Get operations.","nullable":true},"notificationPrefs":{"type":"array","items":{"$ref":"#/components/schemas/NotificationPrefsSpecs"},"description":"List of Notification Preferences objects.\r\nUsed Update operations. Returned during Get operations.\r\nIgnored in other cases.","nullable":true},"admin":{"type":"boolean","description":"```True``` if the User is an administrator, i.e. can administer\r\n            the tenant they are part of.\r\n            Used during Creation and Update operations by a super administrator.\r\n            Returned during Login and Get operations.","nullable":true},"superAdmin":{"type":"boolean","description":"```True``` if the User is a super administrator, i.e. can\r\n            administer all tenants.\r\n            Returned during Login and Get operations.\r\n            Ignored in other cases.","nullable":true},"numMemori":{"type":"integer","description":"The current number of Memori objects belonging to this User. Returned during Get and Login operations. Ignored in other cases. <br> Visible only to administrators and the user themself.","format":"int32","nullable":true},"maxMemori":{"type":"integer","description":"Maximum number of Memori objects this User can create.\r\nIf ```0``` it means unlimited.\r\nUsed during Creation and Update operations by a super administrator.\r\nReturned during Get and Login operations.","format":"int32","nullable":true},"monthSessions":{"type":"integer","description":"Number of sessions in the current month for this User. Returned during Get and Login operations. Ignored in other cases. <br> Visible only to administrators and the user themself.","format":"int32","nullable":true},"monthValidSessions":{"type":"integer","description":"Number of valid sessions in the current month for this User. Valid sessions are performed by a not Giver user with at least one request/response pair. Returned during Get and Login operations. Ignored in other cases. <br> Visible only to administrators and the user themself.","format":"int32","nullable":true},"monthDeepThoughtValidSessions":{"type":"integer","description":"Number of valid sessions in the current month for this User, with Deep Thought enabled. Returned during Get and Login operations. Ignored in other cases. <br> Visible only to administrators and the user themself.","format":"int32","nullable":true},"maxFreeSessions":{"type":"integer","description":"Maximum number of free Memori sessions this User can open per month.\r\nif ```0>``` it means unlimited.\r\nUsed during Creation and Update operations by a super administrator.\r\nReturned during Get and Login operations.","format":"int32","nullable":true},"nonFreeSessionCost":{"type":"number","description":"The cost of each new session above the max free sessions threshold.","format":"double","nullable":true},"monthCompletions":{"type":"integer","description":"Number of completions in the current month for this User. Returned during Get and Login operations. Ignored in other cases. <br> Visible only to administrators and the user itself.","format":"int32","nullable":true},"monthDeepThoughtCompletions":{"type":"integer","description":"Number of completions in the current month for this User, with Deep Thought enabled. Returned during Get and Login operations. Ignored in other cases. <br> Visible only to administrators and the user itself.","format":"int32","nullable":true},"monthImportedSize":{"type":"integer","description":"Number of characters imported in the current month for this User. Returned during Get and Login operations. Ignored in other cases. <br> Visible only to administrators and the user itself.","format":"int64","nullable":true},"maxCompletions":{"type":"integer","description":"Maximum number of completions for this User per month.\r\nif ```0``` it means unlimited.\r\nUsed during Creation and Update operations by a super administrator.\r\nReturned during Get and Login operations.","format":"int32","nullable":true},"maxImportSize":{"type":"integer","description":"Maximum number of characters that can imported be by this User per month.\r\nif ```0``` it means unlimited.\r\nUsed during Creation and Update operations by a super administrator.\r\nReturned during Get and Login operations.","format":"int64","nullable":true},"paying":{"type":"boolean","description":"If ```True``` means this User has an actual payment\r\ncontract in effect and non-free sessions (i.e. sessions above\r\nthe max free session threshold) can be performed.","nullable":true},"enableMemoriCreation":{"type":"boolean","description":"```True``` if the User can create new Memori objects.\r\n            Used during Creation and Update operations by an administrator.\r\n            Returned during Get and Login operations.","nullable":true},"enableBoardOfExperts":{"type":"boolean","description":"```True``` if the User can access the Board of Experts feature.\r\n            Used during Creation and Update operations by an administrator.\r\n            Returned during Get and Login operations.","nullable":true},"enableDCMIntegration":{"type":"boolean","description":"```True``` if the User access the DCM integration feature.\r\n            Used during Creation and Update operations by an administrator.\r\n            Returned during Get and Login operations.","nullable":true},"enableBadges":{"type":"boolean","description":"If ```True``` this User accepts DCM outcomes and\r\nconsequently can receive badges in the Open Badge format.\r\nUsed during Creation and Update operations by an administrator.\r\nReturned during Get and Login operations.","nullable":true},"enableDeepThought":{"type":"boolean","description":"```True``` if the User can access the Deep Thought feature.\r\n            Used during Creation and Update operations by an administrator.\r\n            Returned during Get and Login operations.","nullable":true},"enableVirtualSpaces":{"type":"boolean","description":"```True``` if the User can access the Virtual Spaces feature.\r\n            Used during Creation and Update operations by an administrator.\r\n            Returned during Get and Login operations.","nullable":true},"birthDate":{"type":"string","description":"User date of birth. Necessary of age-restricted features, such as\r\nenabling completions or accessing NSFW content.\r\nUsed during Registration and Update operations.\r\nReturned during Get operations.","format":"date-time","nullable":true},"age":{"type":"integer","description":"Age computed from the birth date.\r\nReturned during Get operations.\r\nIgnored in other cases.","format":"int32"},"tnCAndPPAccepted":{"type":"boolean","description":"Terms & Conditions and Privacy Policy acceptance flag.\r\nMay be reset to False in case of T. & C. and/or P. P. change.\r\nWhen False all operations that imply a change are blocked.\r\nMandatory during Registration. Used during Update operations.\r\nReturned during Get operations.","nullable":true},"tnCAndPPAcceptanceDate":{"type":"string","description":"Date of acceptance of Terms & Conditions and Privacy Policy.\r\nReturned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true},"pAndCUAccepted":{"type":"boolean","description":"Profiling & Commercial Use acceptance flag.\r\nMay be reset to False in case of T. & C. and/or P. P. change.\r\nWhen False features that require profiling and may imply commercial\r\ncommunication to the User (e.g. Deep Thought) are disabled.\r\nUsed during Registration and Update operations.\r\nReturned during Get operations.","nullable":true},"pAndCUAcceptanceDate":{"type":"string","description":"Date of acceptance of Profiling & Commercial Use.\r\nReturned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true},"magicLinkURL":{"type":"string","description":"Optional magic link URL. If not set a default one is used.\r\nThe URL is invoked appending the Session ID at the end.\r\nUsed during Login and Create operations.\r\nIgnored in other cases.","nullable":true},"redirectTo":{"type":"string","description":"Optional RedirectTo.\r\nIf set the user will be redirected to the specified page.\r\nIgnored in other cases.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Returned during Get operations.\r\nIgnored in other cases.","format":"date-time","nullable":true}},"additionalProperties":false,"description":"Specifications of a User object."},"NotificationPrefsSpecs":{"type":"object","properties":{"chatLogExtractionPeriod":{"type":"string","description":"Periodicity of chat log extraction (hourly, daily, weekly or none). When chat log extraction is enabled (i.e. not <code>None</code>) chats performed on Memori owned or managed by the User will be periodically collected and sent via e-mail. Required. <br> Can be one of the following:<ul> <li><code>None</code></li>: no chat log extraction is performed. <li><code>Hourly</code></li>: chat log extraction is performed every hour. <li><code>Hourly</code></li>: chat log extraction is performed daily. <li><code>Hourly</code></li>: chat log extraction is performed weekly. </ul>","nullable":true},"chatLogExtractionMinLines":{"type":"integer","description":"Minimum lines for an extracted chat to be sent via e-mail to\r\nthe User. If ```0``` no filter is applied.\r\nDefault is ```5```.","format":"int32","nullable":true},"memoriID":{"type":"string","description":"Memori ID to which these preferences apply to.\r\nIf ```Null``` these preferences have default value\r\nand apply to all Memori objects not specified with other\r\npreferences.","nullable":true}},"additionalProperties":false,"description":"Specifications of a Notificattion Preferences object."}}}}
````


---

# 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/backend/models.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.
