# People

## Lists all Person objects.

> This API requires a Giver session.

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

## Lists Person objects with pagination.

> This API requires a Giver session.

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

## Gets the details of a Person object.

> This API requires a Giver session.

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

## Removes an existing Person object.

> This API requires a Giver session.> \
> Only Receiver objects can be removed.

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"paths":{"/memori/v2/Person/{strSessionID}/{strPersonID}":{"delete":{"tags":["People"],"summary":"Removes an existing Person object.","description":"This API requires a Giver session.\r\nOnly Receiver objects can be removed.","operationId":"People-RemovePerson","parameters":[{"name":"strSessionID","in":"path","description":"The session ID","required":true,"schema":{"type":"string"}},{"name":"strPersonID","in":"path","description":"The Person object ID","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}}}}}},"components":{"schemas":{"Response":{"type":"object","properties":{"requestID":{"type":"integer","description":"Progressive number of the request (since the Server started).\r\nUse this number, together with the RequestDateTime property,\r\nto report an anomalous response.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous response.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is equivalent to the HTTP\r\nstatus code.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Base response."}}}}
````

## Updates an existing Person object.

> This API requires a Giver session.> \
> Only non-null (present) fields are considered for update.> \
> Null or absent fields are left unaltered.

````json
{"openapi":"3.0.1","info":{"title":"Memori Web API V2","version":"v2"},"paths":{"/memori/v2/Person/{strSessionID}/{strPersonID}":{"patch":{"tags":["People"],"summary":"Updates an existing Person object.","description":"This API requires a Giver session.\r\nOnly non-null (present) fields are considered for update.\r\nNull or absent fields are left unaltered.","operationId":"People-UpdatePerson","parameters":[{"name":"strSessionID","in":"path","description":"The session ID","required":true,"schema":{"type":"string"}},{"name":"strPersonID","in":"path","description":"The Person object ID","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"The Person object specifications","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdatePersonSpecs"}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}}}}}},"components":{"schemas":{"UpdatePersonSpecs":{"type":"object","properties":{"personID":{"type":"string","description":"Person object ID.","nullable":true},"personType":{"type":"string","description":"Person type, e.g. ```Giver``` or ```Receiver```.\r\nRequired during Add operations.","nullable":true},"name":{"type":"string","description":"Person name.\r\nMay be ```Null``` only when the Person object is created by\r\nthe Dialog State Machine and the name has not been set yet.","nullable":true},"information":{"type":"string","description":"Person information.\r\nCurrently this is a free (unprocessed) text.","nullable":true},"pin":{"type":"string","description":"Person PIN. Must be a code between ```000000``` and ```999999```.\r\nMay be ```Null``` only when the Person object is created by\r\nthe Dialog State Machine and the PIN has not been set yet.\r\nRequired during Add operations.","nullable":true},"tag":{"type":"string","description":"Person tag.\r\nCan be any publicly visible string that the person recognizes as distinctive.\r\nTypically it is an emoji symbol, but could also be an RFID code or\r\nsomething else.","nullable":true},"creationTimestamp":{"type":"string","description":"Timestamp of creation. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"creationSessionID":{"type":"string","description":"ID of the session that created this object.","nullable":true},"lastChangeTimestamp":{"type":"string","description":"Timestamp of latest change. Always present when reading/receiving\r\nan object, ignored when writing/sending an object.","format":"date-time","nullable":true},"lastChangeSessionID":{"type":"string","description":"ID of the latest session that changed this object.","nullable":true}},"additionalProperties":false,"description":"Specifications for an Update Person request."},"Response":{"type":"object","properties":{"requestID":{"type":"integer","description":"Progressive number of the request (since the Server started).\r\nUse this number, together with the RequestDateTime property,\r\nto report an anomalous response.","format":"int64"},"requestDateTime":{"type":"string","description":"Timestamp of the request.\r\nUse this timestamp, together with the RequestID property,\r\nto report an anomalous response.","format":"date-time"},"resultCode":{"type":"integer","description":"Result code. A code of ```0``` means no errors.\r\nWhen the request fails, its value is equivalent to the HTTP\r\nstatus code.","format":"int32"},"resultMessage":{"type":"string","description":"Result message. A message of ```Ok``` means no errors.","nullable":true}},"additionalProperties":false,"description":"Base response."}}}}
````

## Adds a new Person object.

> This API requires a Giver session.> \
> Only Receiver objects can be created with this API,> \
> the Giver object is always created by the Dialog State Machine.

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