IRPCObjectOperations.AddOrUpdateExternalObject

View as Markdown

Vault API / core write session or assertion

Creates, updates or deletes the object that mirrors an item of an external system, identified by its external ID.

ServiceObjects, versions, properties and files MFiles.IRPCObjectOperations
gRPC method/MFiles.IRPCObjectOperations/AddOrUpdateExternalObject
HTTP (mf-http-grpc)POST /grpc/v1/add-or-update-external-object
RequestAddOrUpdateExternalObjectRequest
ResponseAddOrUpdateExternalObjectResponse
Book and levelVault API, core
Kindwrite
SessionRequired: a session (mfiles-session-id-bin metadata) or a session assertion (x-mf-session-assertion metadata).
Idempotentno
Returns metadata structure versionno
Streamingnone (unary)

Remarks

With deleted: true the object is deleted instead; the deletion is not sent back to the external system. Not available on servers where the feature is not enabled (fails with not implemented).

Request: AddOrUpdateExternalObjectRequest

A structure that specifies add or update external object request.

Nested message fields are expanded to depth 3; follow a type link for deeper levels and for the type's own page.

FieldTypeDescription
ext_idstringThe external ID of the object to update or create.
obj_idObjIDThe object ID of the object to update. Object type is required. Use id -1 if unknown, then extid is used.
obj_id.typeint32The object type ID, for example 0 for documents. In a lookup value, the value list ID (for a lookup to objects, the object type ID).
obj_id.item_idItemIDThe ID of the object within its type, in item_id.internal_id.
obj_id.item_id.internal_idint32The ID of the object or value list item.
obj_id.item_id.external_repository_idExternalRepositoryIDUsed only for objects in external repositories (external connectors). Leave it unset for objects stored in the vault.
properties[]repeated PropertyValueProperties of the new object.
properties[].property_defint32The property definition ID, for example 0 for "Name or title" or 100 for "Class".
properties[].valueTypedValueThe value. Its type must match the data type of the property definition.
properties[].value.is_null_valueboolTrue if the value is empty. data is then unset.
properties[].value.typeDatatypeThe data type of the value.
properties[].value.dataTypedValueUnionThe value, in the member that matches type. Unset for an empty value.
deletedboolTrue to delete the object identified by ext_id or obj_id instead of adding or updating it. The deletion is not sent back to the external system, where the change came from.

Response: AddOrUpdateExternalObjectResponse

A structure that specifies add or update external object response.

Nested message fields are expanded to depth 3; follow a type link for deeper levels and for the type's own page. Fields marked (recursive) refer to a type already on their path.

FieldTypeDescription
object_infoObjectVersionExWPThe information, properties, and ACL of the latest version of the object after the operation.
object_info.object_versionObjectVersionExObject info.
object_info.object_version.version_infoObjectVersionObject Version information.
object_info.object_version.object_infoObjectLevelInfoObject-level information.
object_info.properties[]repeated PropertyValueProperty values, or an empty array.
object_info.properties[].property_defint32The property definition ID, for example 0 for "Name or title" or 100 for "Class".
object_info.properties[].valueTypedValueThe value. Its type must match the data type of the property definition.
object_info.aclAccessControlListIf set, ACL.
object_info.acl.checked_out_to_userint32Specifies the ID of the user who has extended rights because of the checkout operation performed by her. 0 if such user does not exist.
object_info.acl.is_fully_authoritativeboolSpecifies whether this access control list is set to ignore the secondary permissions that come from the latest checked in version.
object_info.acl.custom_componentAccessControlListComponentAccesses the custom component of this ACL.
object_info.acl.restrictive_components[]repeated AccessControlListComponentMapEntryAccesses the restrictive automatic components of this ACL.
object_info.acl.secondary_access_control_listAccessControlList (recursive)Secondary ACL used for latest version ACL. Not used for access check if null.
object_info.acl.additive_components[]repeated AccessControlListComponentMapEntryAccesses the additive automatic components of this ACL.
object_info.current_user_permissionsObjectPermissionsForClientIf set, permissions of the object version.
object_info.current_user_permissions.can_user_seeboolThe object is visible for the current user (provided for symmetry).
object_info.current_user_permissions.can_user_editboolThe current user can edit the object.
object_info.current_user_permissions.can_user_deleteboolThe current user can delete the object.
object_info.current_user_permissions.can_user_change_permissionsboolThe current user can change the object permissions.