IRPCObjectOperations.CreateNewObjectWithPropertyMetadata
Vault API / core write session or assertion returns metadata structure version
Creates a new object without files, storing metadata about each property value.
| Service | Objects, versions, properties and files MFiles.IRPCObjectOperations |
|---|---|
| gRPC method | /MFiles.IRPCObjectOperations/CreateNewObjectWithPropertyMetadata |
| HTTP (mf-http-grpc) | POST /grpc/v1/create-new-object-with-property-metadata |
| Request | CreateNewObjectWithPropertyMetadataRequest |
| Response | CreateNewObjectWithPropertyMetadataResponse |
| Book and level | Vault API, core |
| Kind | write |
| Session | Required: a session (mfiles-session-id-bin metadata) or a session assertion (x-mf-session-assertion metadata). |
| Idempotent | no |
| Returns metadata structure version | yes (in the mfiles-metadata-version-bin trailer) |
| Streaming | none (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.
| Field | Type | Description |
|---|---|---|
object_type_id | int32 | The object type of the new object. |
properties_with_metadata[] | repeated PropertyValueWithMetadata | Property values of the new object, each with value_metadata (required, with a numeric confidence). |
properties_with_metadata[].property_def | int32 | Property definition ID. |
properties_with_metadata[].value | TypedValueWithMetadata | The value of the property. |
properties_with_metadata[].value.type | Datatype | Data type. Note. Name of the property can't be isNull because name collision with Objective-C reserved name. |
properties_with_metadata[].value.is_null_value | bool | Is the value unset. |
properties_with_metadata[].value.data | TypedValueUnionWithMetadata | The value data as a union, if set. |
properties_with_metadata[].value.value_metadata | TypedValueMetadata | The metadata about the typed value. If the value is a Lookup or MSLookup, this data will be in that struct. |
acl | AccessControlList | The permissions of the new object. Unset gives an empty ACL; see AddObjectWithFiles. |
acl.checked_out_to_user | int32 | Specifies 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_authoritative | bool | Specifies whether this access control list is set to ignore the secondary permissions that come from the latest checked in version. |
acl.custom_component | AccessControlListComponent | Accesses the custom component of this ACL. |
acl.custom_component.named_acl_id | int32 | Specifies the named ACL link of this component. |
acl.custom_component.has_named_acl | bool | True if the component links to a named ACL (named_acl_id). |
acl.custom_component.current_user_id | int32 | Specifies the current user binding of this component. |
acl.custom_component.has_current_user | bool | True if the component has an access control entry for the current user. |
acl.custom_component.permissions[] | repeated AccessControlEntry | The access control entry datas. The data belongs to the key in the corresponding index. |
acl.custom_component.overridability_permissions[] | repeated AccessControlEntry | Overridability permission data of this ACL component. |
acl.custom_component.status | ACCESSCONTROLLISTCOMPONENTSTATUSFLAGS | Modification status of this component. |
acl.restrictive_components[] | repeated AccessControlListComponentMapEntry | Accesses the restrictive automatic components of this ACL. |
acl.restrictive_components[].key | AccessControlListComponentKey | Access control list component. |
acl.restrictive_components[].component | AccessControlListComponent | Access control list component. |
acl.secondary_access_control_list | AccessControlList (recursive) | Secondary ACL used for latest version ACL. Not used for access check if null. |
acl.additive_components[] | repeated AccessControlListComponentMapEntry | Accesses the additive automatic components of this ACL. |
acl.additive_components[].key | AccessControlListComponentKey | Access control list component. |
acl.additive_components[].component | AccessControlListComponent | Access control list component. |
options | OBJECTOPFLAGS | Flags that control this operation. |
options.all | bool | Specifies all flags set; Including any future flags. |
options.require_read_access_after_operation | bool | Requires 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_operation | bool | Requires 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_change | bool | If specified, the operation will fail if it causes a change in the object version's name. |
options.require_change_permissions_access_after_operation | bool | Requires 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_operation | bool | Requires 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_versions | bool | Changes 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_document | bool | Verify the document is locked for WOPI Co-authoring or editing during checkin. |
check_in | bool | If true, the object is checked in immediately, otherwise the object is left checked out. |
allow_missing_required_properties | bool | If 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.
| Field | Type | Description |
|---|---|---|
is_visible_to_user | bool | True if the latest version of the object is visible after the operation. |
created_object | ObjectVersionExWP | If set (i.e. isVisibleToUser is true), the information, properties, and ACL of the latest version of the object after the operation. |
created_object.object_version | ObjectVersionEx | Object info. |
created_object.object_version.version_info | ObjectVersion | Object Version information. |
created_object.object_version.object_info | ObjectLevelInfo | Object-level information. |
created_object.properties[] | repeated PropertyValue | Property values, or an empty array. |
created_object.properties[].property_def | int32 | The property definition ID, for example 0 for "Name or title" or 100 for "Class". |
created_object.properties[].value | TypedValue | The value. Its type must match the data type of the property definition. |
created_object.acl | AccessControlList | If set, ACL. |
created_object.acl.checked_out_to_user | int32 | Specifies 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_authoritative | bool | Specifies whether this access control list is set to ignore the secondary permissions that come from the latest checked in version. |
created_object.acl.custom_component | AccessControlListComponent | Accesses the custom component of this ACL. |
created_object.acl.restrictive_components[] | repeated AccessControlListComponentMapEntry | Accesses the restrictive automatic components of this ACL. |
created_object.acl.secondary_access_control_list | AccessControlList (recursive) | Secondary ACL used for latest version ACL. Not used for access check if null. |
created_object.acl.additive_components[] | repeated AccessControlListComponentMapEntry | Accesses the additive automatic components of this ACL. |
created_object.current_user_permissions | ObjectPermissionsForClient | If set, permissions of the object version. |
created_object.current_user_permissions.can_user_see | bool | The object is visible for the current user (provided for symmetry). |
created_object.current_user_permissions.can_user_edit | bool | The current user can edit the object. |
created_object.current_user_permissions.can_user_delete | bool | The current user can delete the object. |
created_object.current_user_permissions.can_user_change_permissions | bool | The current user can change the object permissions. |
Related methods
- AddObjectWithFiles -- Creates a new object, optionally with its files, and optionally checks it in.