IRPCObjectOperations.CreateNewObjectWithPropertyMetadata

View as Markdown

Vault API / core write session or assertion returns metadata structure version

Creates a new object without files, storing metadata about each property value.

ServiceObjects, versions, properties and files MFiles.IRPCObjectOperations
gRPC method/MFiles.IRPCObjectOperations/CreateNewObjectWithPropertyMetadata
HTTP (mf-http-grpc)POST /grpc/v1/create-new-object-with-property-metadata
RequestCreateNewObjectWithPropertyMetadataRequest
ResponseCreateNewObjectWithPropertyMetadataResponse
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 versionyes (in the mfiles-metadata-version-bin trailer)
Streamingnone (unary)

Remarks

Every value must carry value_metadata with a numeric confidence string (for example "0"); otherwise the call fails with "Type mismatch." The required properties and the acl pitfall are the same as for AddObjectWithFiles.

Request: CreateNewObjectWithPropertyMetadataRequest

A request structure for the CreateNewObjectWithPropertyMetadata RPC call. Creates a new object in a single call, storing the property-related metadata (metametadata) carried alongside each property value in addition to the value itself.

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_type_idint32The object type of the new object.
properties_with_metadata[]repeated PropertyValueWithMetadataProperty values of the new object, each with value_metadata (required, with a numeric confidence).
properties_with_metadata[].property_defint32Property definition ID.
properties_with_metadata[].valueTypedValueWithMetadataThe value of the property.
properties_with_metadata[].value.typeDatatypeData type. Note. Name of the property can't be isNull because name collision with Objective-C reserved name.
properties_with_metadata[].value.is_null_valueboolIs the value unset.
properties_with_metadata[].value.dataTypedValueUnionWithMetadataThe value data as a union, if set.
properties_with_metadata[].value.value_metadataTypedValueMetadataThe metadata about the typed value. If the value is a Lookup or MSLookup, this data will be in that struct.
aclAccessControlListThe permissions of the new object. Unset gives an empty ACL; see AddObjectWithFiles.
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.
acl.is_fully_authoritativeboolSpecifies whether this access control list is set to ignore the secondary permissions that come from the latest checked in version.
acl.custom_componentAccessControlListComponentAccesses the custom component of this ACL.
acl.custom_component.named_acl_idint32Specifies the named ACL link of this component.
acl.custom_component.has_named_aclboolTrue if the component links to a named ACL (named_acl_id).
acl.custom_component.current_user_idint32Specifies the current user binding of this component.
acl.custom_component.has_current_userboolTrue if the component has an access control entry for the current user.
acl.custom_component.permissions[]repeated AccessControlEntryThe access control entry datas. The data belongs to the key in the corresponding index.
acl.custom_component.overridability_permissions[]repeated AccessControlEntryOverridability permission data of this ACL component.
acl.custom_component.statusACCESSCONTROLLISTCOMPONENTSTATUSFLAGSModification status of this component.
acl.restrictive_components[]repeated AccessControlListComponentMapEntryAccesses the restrictive automatic components of this ACL.
acl.restrictive_components[].keyAccessControlListComponentKeyAccess control list component.
acl.restrictive_components[].componentAccessControlListComponentAccess control list component.
acl.secondary_access_control_listAccessControlList (recursive)Secondary ACL used for latest version ACL. Not used for access check if null.
acl.additive_components[]repeated AccessControlListComponentMapEntryAccesses the additive automatic components of this ACL.
acl.additive_components[].keyAccessControlListComponentKeyAccess control list component.
acl.additive_components[].componentAccessControlListComponentAccess control list component.
optionsOBJECTOPFLAGSFlags that control this operation.
options.allboolSpecifies all flags set; Including any future flags.
options.require_read_access_after_operationboolRequires read access to the object after the object operation. If available, the operation fails if the user does not have read access to the object after the operation.
options.require_edit_access_after_operationboolRequires edit access to the object after the object operation. If available, the operation fails if the user does not have edit access to the object after the operation.
options.disallow_name_changeboolIf specified, the operation will fail if it causes a change in the object version's name.
options.require_change_permissions_access_after_operationboolRequires security change access to the object after the object operation. If available, the operation fails if the user does not have security change access to the object after the operation.
options.require_full_access_after_operationboolRequires full access to the object after the object operation. If available, the operation fails if the user does not have full access to the object after the operation.
options.change_acl_in_all_versionsboolChanges the ACL of all versions of the object. This is currently used to request setting the ACL of all versions of an object, not just a specific version, when calling ChangeSecurity.
options.verify_check_in_wopi_locked_documentboolVerify the document is locked for WOPI Co-authoring or editing during checkin.
check_inboolIf true, the object is checked in immediately, otherwise the object is left checked out.
allow_missing_required_propertiesboolIf true, the object can be created with missing required properties.

Response: CreateNewObjectWithPropertyMetadataResponse

A response structure for the CreateNewObjectWithPropertyMetadata RPC call.

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
is_visible_to_userboolTrue if the latest version of the object is visible after the operation.
created_objectObjectVersionExWPIf set (i.e. isVisibleToUser is true), the information, properties, and ACL of the latest version of the object after the operation.
created_object.object_versionObjectVersionExObject info.
created_object.object_version.version_infoObjectVersionObject Version information.
created_object.object_version.object_infoObjectLevelInfoObject-level information.
created_object.properties[]repeated PropertyValueProperty values, or an empty array.
created_object.properties[].property_defint32The property definition ID, for example 0 for "Name or title" or 100 for "Class".
created_object.properties[].valueTypedValueThe value. Its type must match the data type of the property definition.
created_object.aclAccessControlListIf set, ACL.
created_object.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.
created_object.acl.is_fully_authoritativeboolSpecifies whether this access control list is set to ignore the secondary permissions that come from the latest checked in version.
created_object.acl.custom_componentAccessControlListComponentAccesses the custom component of this ACL.
created_object.acl.restrictive_components[]repeated AccessControlListComponentMapEntryAccesses the restrictive automatic components of this ACL.
created_object.acl.secondary_access_control_listAccessControlList (recursive)Secondary ACL used for latest version ACL. Not used for access check if null.
created_object.acl.additive_components[]repeated AccessControlListComponentMapEntryAccesses the additive automatic components of this ACL.
created_object.current_user_permissionsObjectPermissionsForClientIf set, permissions of the object version.
created_object.current_user_permissions.can_user_seeboolThe object is visible for the current user (provided for symmetry).
created_object.current_user_permissions.can_user_editboolThe current user can edit the object.
created_object.current_user_permissions.can_user_deleteboolThe current user can delete the object.
created_object.current_user_permissions.can_user_change_permissionsboolThe current user can change the object permissions.