Home docs nex protocols Data Store (115)
Post

Data Store (115)

Extended protocols

The following games have additional methods in the datastore protocol:

This remainder of this page describes the methods that are not specific to any game.

Methods

(1) PrepareGetObjectV1

Request

Response

TypeName
DataStoreReqGetInfoV1pReqGetInfo

(2) PreparePostObjectV1

Request

Response

TypeName
DataStoreReqPostInfoV1pReqPostInfo

(3) CompletePostObjectV1

Request

Response

This method does not return anything.

(4) DeleteObject

Request

Response

This method does not return anything.

(5) DeleteObjects

Request

TypeName
List<DataStoreDeleteParam>params
Booltransactional

Response

TypeName
List<Result>pResults

(6) ChangeMetaV1

Request

Response

This method does not return anything.

(7) ChangeMetasV1

Request

TypeName
List<Uint64>dataIds
List<DataStoreChangeMetaParamV1>params
Booltransactional

Response

TypeName
List<Result>pResults

(8) GetMeta

Request

Response

TypeName
DataStoreMetaInfopMetaInfo

(9) GetMetas

Request

TypeName
List<Uint64>dataIds
DataStoreGetMetaParamparam

Response

TypeName
List<DataStoreMetaInfo>pMetaInfo
List<Result>pResults

(10) PrepareUpdateObject

Request

Response

TypeName
DataStoreReqUpdateInfopReqUpdateInfo

(11) CompleteUpdateObject

Request

Response

This method does not return anything.

(12) SearchObject

Request

Response

TypeName
DataStoreSearchResultpSearchResult

(13) GetNotificationUrl

Request

Response

(14) GetNewArrivedNotificationsV1

Request

Response

TypeName
List<DataStoreNotificationV1>pResult
BoolpHasNext

(15) RateObject

Request

TypeName
DataStoreRatingTargettarget
DataStoreRateObjectParamparam
BoolfetchRatings

Response

TypeName
DataStoreRatingInfopRating

(16) GetRating

Request

TypeName
DataStoreRatingTargettarget
Uint64accessPassword

Response

TypeName
DataStoreRatingInfopRating

(17) GetRatings

Request

TypeName
List<Uint64>dataIds
Uint64accessPassword

Response

TypeName
List<List<DataStoreRatingInfoWithSlot>>pRatings
List<Result>pResults

(18) ResetRating

Request

TypeName
DataStoreRatingTargettarget
Uint64updatePassword

Response

This method does not return anything.

(19) ResetRatings

Request

TypeName
List<Uint64>dataIds
Booltransactional

Response

TypeName
List<Result>pResults

(20) GetSpecificMetaV1

Request

Response

(21) PostMetaBinary

Request

Response

TypeName
Uint64dataId

(22) TouchObject

Request

Response

This method does not return anything.

(23) GetRatingWithLog

Request

TypeName
DataStoreRatingTargettarget
Uint64accessPassword

Response

TypeName
DataStoreRatingInfopRating
DataStoreRatingLogpRatingLog

(24) PreparePostObject

Request

Response

TypeName
DataStoreReqPostInfopReqPostInfo

(25) PrepareGetObject

Request

Response

TypeName
DataStoreReqGetInfopReqGetInfo

(26) CompletePostObject

Request

Response

This method does not return anything.

(27) GetNewArrivedNotifications

Request

Response

TypeName
List<DataStoreNotification>pResult
BoolpHasNext

(28) GetSpecificMeta

Request

Response

TypeName
List<DataStoreSpecificMetaInfo>pMetaInfos

(29) GetPersistenceInfo

Request

TypeName
PIDownerId
Uint16persistenceSlotId

Response

TypeName
DataStorePersistenceInfopPersistenceInfo

(30) GetPersistenceInfos

Request

TypeName
PIDownerId
List<Uint16>persistenceSlotIds

Response

TypeName
List<DataStorePersistenceInfo>pPersistenceInfo
List<Result>pResults

(31) PerpetuateObject

Request

TypeName
Uint16persistenceSlotId
Uint64dataId
BooldeleteLastObject

Response

This method does not return anything.

(32) UnperpetuateObject

Request

TypeName
Uint16persistenceSlotId
BooldeleteLastObject

Response

This method does not return anything.

(33) PrepareGetObjectOrMetaBinary

Request

Response

TypeName
DataStoreReqGetInfopReqGetInfo
DataStoreReqGetAdditionalMetapReqGetAdditionalMeta

(34) GetPasswordInfo

Request

TypeName
Uint64dataId

Response

TypeName
DataStorePasswordInfopPasswordInfo

(35) GetPasswordInfos

Request

TypeName
List<Uint64>dataIds

Response

TypeName
List<DataStorePasswordInfo>pPasswordInfos
List<Result>pResults

(36) GetMetasMultipleParam

Request

Response

TypeName
List<DataStoreMetaInfo>pMetaInfo
List<Result>pResults

(37) CompletePostObjects

Request

TypeName
List<Uint64>dataIds

Response

This method does not return anything.

(38) ChangeMeta

Request

Response

This method does not return anything.

(39) ChangeMetas

Request

TypeName
List<Uint64>dataIds
List<DataStoreChangeMetaParam>params
Booltransactional

Response

TypeName
List<Result>pResults

(40) RateObjects

Request

TypeName
List<DataStoreRatingTarget>targets
List<DataStoreRateObjectParam>params
Booltransactional
BoolfetchRatings

Response

TypeName
List<DataStoreRatingInfo>pRatings
List<Result>pResults

(41) PostMetaBinaryWithDataId

Request

TypeName
Uint64dataId
DataStorePreparePostParamparam

Response

This method does not return anything.

(42) PostMetaBinariesWithDataId

Request

TypeName
List<Uint64>dataIds
List<DataStorePreparePostParam>params
Booltransactional

Response

TypeName
List<Result>pResults

(43) RateObjectWithPosting

Request

TypeName
DataStoreRatingTargettarget
DataStoreRateObjectParamrateParam
DataStorePreparePostParampostParam
BoolfetchRatings

Response

TypeName
DataStoreRatingInfopRating

(44) RateObjectsWithPosting

Request

TypeName
List<DataStoreRatingTarget>targets
List<DataStoreRateObjectParam>rateParams
List<DataStorePreparePostParam>postParams
Booltransactional
BoolfetchRatings

Response

TypeName
List<DataStoreRatingInfo>pRatings
List<Result>pResults

(45) GetObjectInfos

Request

TypeName
List<Uint64>dataIds

Response

TypeName
List<DataStoreReqGetInfo>pInfos
List<Result>pResults

(46) SearchObjectLight

Request

Response

TypeName
DataStoreSearchResultpSearchResult

Types

DataStorePrepareGetParamV1 (Structure)

TypeName
Uint32dataId
Uint32lockId

DataStorePrepareGetParam (Structure)

TypeName
Uint64dataId
Uint32lockId
DataStorePersistenceTargetpersistenceTarget
Uint64accessPassword

In NEX version 3.5, one more field was added:

TypeName
List<String>extraData

DataStoreReqGetInfoV1 (Structure)

TypeName
Stringurl
List<DataStoreKeyValue>requestHeaders
Uint32size
BufferrootCaCert

DataStoreReqGetInfo (Structure)

TypeName
Stringurl
List<DataStoreKeyValue>requestHeaders
Uint32size
BufferrootCaCert

In NEX version 3.5, one more field was added:

TypeName
Uint64dataId

DataStoreReqGetAdditionalMeta (Structure)

TypeName
PIDownerId
Uint16dataType
Uint16version
qBuffermetaBinary

DataStorePreparePostParamV1 (Structure)

TypeName
Uint32size
Stringname
Uint16dataType
qBuffermetaBinary
DataStorePermissionpermission
DataStorePermissiondelPermission
Uint32flag
Uint16period
Uint32referDataId
List<String>tags
List<DataStoreRatingInitParamWithSlot>ratingInitParams

DataStorePreparePostParam (Structure)

TypeName
Uint32size
Stringname
Uint16dataType
qBuffermetaBinary
DataStorePermissionpermission
DataStorePermissiondelPermission
Uint32flag
Uint16period
Uint32referDataId
List<String>tags
List<DataStoreRatingInitParamWithSlot>ratingInitParams
DataStorePersistenceInitParampersistenceInitParam

In NEX version 3.5, one more field was added:

TypeName
List<String>extraData

DataStoreReqPostInfoV1 (Structure)

TypeName
Uint32dataId
Stringurl
List<DataStoreKeyValue>requestHeaders
List<DataStoreKeyValue>formFields
BufferrootCaCert

DataStoreReqPostInfo (Structure)

TypeName
Uint64dataId
Stringurl
List<DataStoreKeyValue>requestHeaders
List<DataStoreKeyValue>formFields
BufferrootCaCert

DataStoreCompletePostParamV1 (Structure)

TypeName
Uint32dataId
BoolisSuccess

DataStoreCompletePostParam (Structure)

TypeName
Uint64dataId
BoolisSuccess

DataStoreDeleteParam (Structure)

TypeName
Uint64dataId
Uint64updatePassword

DataStoreChangeMetaParamV1 (Structure)

TypeName
Uint64dataId
Uint32modifiesFlag
Stringname
DataStorePermissionpermission
DataStorePermissiondelPermission
Uint16period
qBuffermetaBinary
List<String>tags
Uint64updatePassword

DataStoreChangeMetaParam (Structure)

TypeName
Uint64dataId
Uint32modifiesFlag
Stringname
DataStorePermissionpermission
DataStorePermissiondelPermission
Uint16period
qBuffermetaBinary
List<String>tags
Uint64updatePassword
Uint32referredCnt
Uint16dataType
Uint8status
DataStoreChangeMetaCompareParamcompareParam

Revision 1:

TypeName
DataStorePersistenceTargetpersistenceTarget

DataStoreGetMetaParam (Structure)

TypeName
Uint64dataId
DataStorePersistenceTargetpersistenceTarget
Uint8resultOption
Uint64accessPassword

DataStoreRatingInfo (Structure)

TypeName
Sint64totalValue
Uint32count
Sint64initialValue

DataStoreRatingInfoWithSlot (Structure)

TypeName
Sint8slot
DataStoreRatingInforating

DataStoreMetaInfo (Structure)

TypeName
Uint64dataId
PIDownerId
Uint32size
Stringname
Uint16dataType
qBuffermetaBinary
DataStorePermissionpermission
DataStorePermissiondelPermission
DateTimecreatedTime
DateTimeupdatedTime
Uint16period
Uint8status
Uint32referredCnt
Uint32referDataId
Uint32flag
DateTimereferredTime
DateTimeexpireTime
List<String>tags
List<DataStoreRatingInfoWithSlot>ratings

DataStorePrepareUpdateParam (Structure)

Up to NEX version 2.x, this structure looks as follows:

TypeName
Uint32dataId
Uint32size

In NEX version 3.0, the data ID was set to a Uint64 and one more field was added:

TypeName
Uint64dataId
Uint32size
Uint64updatePassword

In NEX version 3.5, one more field was added:

TypeName
List<String>extraData

DataStoreReqUpdateInfo (Structure)

Up to NEX version 2.x, this structure looks as follows:

TypeName
Uint16version
Stringurl
List<DataStoreKeyValue>requestHeaders
List<DataStoreKeyValue>formFields
BufferrootCaCert

In NEX version 3.0, the version was set to a Uint32:

TypeName
Uint32version
Stringurl
List<DataStoreKeyValue>requestHeaders
List<DataStoreKeyValue>formFields
BufferrootCaCert

DataStoreCompleteUpdateParam (Structure)

Up to NEX version 2.x, this structure looks as follows:

TypeName
Uint32dataId
Uint16version
BoolisSuccess

In NEX version 3.0, the data ID was set to a Uint64 and the version was set to a Uint32:

TypeName
Uint64dataId
Uint32version
BoolisSuccess

DataStoreSearchParam (Structure)

TypeName
Uint8searchTarget
List<PID>ownerIds
Uint8ownerType
List<PID>destinationIds
Uint16dataType
DateTimecreatedAfter
DateTimecreatedBefore
DateTimeupdatedAfter
DateTimeupdatedBefore
Uint32referDataId
List<String>tags
Uint8resultOrderColumn
Uint8resultOrder
ResultRangeresultRange
Uint8resultOption
Uint32minimalRatingFrequency

Revision 1:

TypeName
BooluseCache

Revision 2:

TypeName
List<Uint16>dataTypes

In revision 3, a total count enabled field was added. Note that this field was inserted before the data types field:

TypeName
Uint8searchTarget
List<PID>ownerIds
Uint8ownerType
List<PID>destinationIds
Uint16dataType
DateTimecreatedAfter
DateTimecreatedBefore
DateTimeupdatedAfter
DateTimeupdatedBefore
Uint32referDataId
List<String>tags
Uint8resultOrderColumn
Uint8resultOrder
ResultRangeresultRange
Uint8resultOption
Uint32minimalRatingFrequency
BooluseCache
BooltotalCountEnabled
List<Uint16>dataTypes

In NEX version 4.0, the revision number was set back to 0 with no other changes.

DataStoreSearchResult (Structure)

TypeName
Uint32totalCount
List<DataStoreMetaInfo>result
Uint8totalCountType

Total count types:

TypeDescription
0Total number of results (if all results are returned)
1Total number of results (if not all results are returned)
3Disabled

DataStoreGetNotificationUrlParam (Structure)

TypeName
StringpreviousUrl

DataStoreReqGetNotificationUrlInfo (Structure)

TypeName
Stringurl
Stringkey
Stringquery
BufferrootCaCert

DataStoreGetNewArrivedNotificationsParam (Structure)

TypeName
Uint64lastNotificationId
Uint16limit

DataStoreNotificationV1 (Structure)

TypeName
Uint64notificationId
Uint32dataId

DataStoreNotification (Structure)

TypeName
Uint64notificationId
Uint64dataId

DataStoreRateObjectParam (Structure)

TypeName
Sint32ratingValue
Uint64accessPassword

DataStoreRatingTarget (Structure)

TypeName
Uint64dataId
Sint8slot

DataStoreGetSpecificMetaParamV1 (Structure)

TypeName
List<Uint32>dataIds

DataStoreGetSpecificMetaParam (Structure)

TypeName
List<Uint64>dataIds

DataStoreSpecificMetaInfoV1 (Structure)

TypeName
Uint32dataId
PIDownerId
Uint32size
Uint16dataType
Uint16version

DataStoreSpecificMetaInfo (Structure)

TypeName
Uint64dataId
PIDownerId
Uint32size
Uint16dataType
Uint32version

DataStoreTouchObjectParam (Structure)

TypeName
Uint64dataId
Uint32lockId
Uint64accessPassword

DataStoreRatingLog (Structure)

TypeName
BoolisRated
PIDpid
Sint32ratingValue
DateTimelockExpirationTime

DataStorePersistenceInfo (Structure)

TypeName
PIDownerId
Uint16persistenceSlotId
Uint64dataId

DataStorePasswordInfo (Structure)

TypeName
Uint64dataId
Uint64accessPassword
Uint64updatePassword

DataStorePersistenceTarget (Structure)

TypeName
PIDownerId
Uint16persistenceSlotId

DataStoreKeyValue (Structure)

TypeName
Stringkey
Stringvalue

DataStorePermission (Structure)

TypeName
Uint8permission
List<PID>recipientIds

Permission types:

ValueDescription
0Everyone
1Friends
2Recipient IDs
3Owner only

DataStoreRatingInitParamWithSlot (Structure)

TypeName
Sint8slot
DataStoreRatingInitParamparam

DataStorePersistenceInitParam (Structure)

TypeName
Uint16persistenceSlotId
BooldeleteLastObject

DataStoreChangeMetaCompareParam (Structure)

TypeName
Uint32comparisonFlag
Stringname
DataStorePermissionpermission
DataStorePermissiondelPermission
Uint16period
qBuffermetaBinary
List<String>tags
Uint32referredCnt
Uint16dataType
Uint8status

DataStoreRatingInitParam (Structure)

TypeName
Uint8flag
Uint8internalFlag
Uint8lockType
Sint64initialValue
Sint32rangeMin
Sint32rangeMax
Sint8periodHour
Sint16periodDuration

Result options

In DataStore resultOption is a set of flags which determine what extra data gets returned when requesting an objects metadata. The following flags are used

FlagDescription
0x1Populate the objects tags field
0x2Populate the objects ratings field
0x4Populate the objects metaBinary field

Modifies flag

In DataStore modifiesFlag is a set of flags which determine what data gets updated when changing an objects metadata. The following flags are used. None of these changes update the objects updatedTime field besides flag 0x40, which updates the S3 object itself. updatedTime likely refers to only the object, then, and not the metadata.

FlagDescription
0x001Update objects name field
0x002Update objects access permission field
0x004Update objects delete permission field
0x008Update objects period field
0x010Update objects metaBinary field
0x020Update objects tags field. Replaced, not appended
0x040Refresh objects expire time using the period field. If also using flag 0x8, this uses the NEW period
0x080Update objects name field
0x100Update objects referredCnt field. Set, not added
0x200Update objects status field. Anything besides 0 seems to result in DataStore::NotFound on future requests

Period

DataStore objects are really just S3 objects. The period field of an object is the number of days the object is valid for before it expires and is deleted from S3. Objects can be “refreshed” to update their expire time, which also updates the objects updatedTime field. Not all games respect this value, however, and will either set their own expire time or never expire objects even if a period is set for them.

Contents