IRPCObjectTypes.GetObjectTypes
Vault API / core read session or assertion idempotent returns metadata structure version
Gets all object types (real object types only, not plain value lists), with their icons.
| Service | Object types MFiles.IRPCObjectTypes |
|---|---|
| gRPC method | /MFiles.IRPCObjectTypes/GetObjectTypes |
| HTTP (mf-http-grpc) | POST /grpc/v1/get-object-types |
| Request | GetObjectTypesRequest |
| Response | GetObjectTypesResponse |
| Book and level | Vault API, core |
| Kind | read |
| Session | Required: a session (mfiles-session-id-bin metadata) or a session assertion (x-mf-session-assertion metadata). |
| Idempotent | yes |
| Returns metadata structure version | yes (in the mfiles-metadata-version-bin trailer) |
| Streaming | none (unary) |
Remarks
- Requires a vault session. No special vault rights are needed.
- Returns only real object types (
is_real_object_typeis true). For plain value lists such as Country, call GetValueLists, which returns both kinds but no icons. - Object types that the user is not allowed to see are not left out: they are returned with
empty
name_singularandname_plural, andobject_type_permissions.can_user_seefalse. Filter onobject_type_permissionsbefore showing a list to the user. object_type_permissions.can_user_add_new_itemstells whether the user may create objects of the type;options.can_add_itemstells whether the type allows new objects at all.- Names are in the session language when the vault has translations for it.
iconholds the type's .ICO image (about 17 KB for the default icon), so the response grows with the number of types.- Cacheable by metadata structure version.
Request: GetObjectTypesRequest
Nested message fields are expanded to depth 3; follow a type link for deeper levels and for the type's own page.
| Field | Type | Description |
|---|---|---|
call_importance | CallImportance | The importance level of this call. Typically CALL_IMPORTANCE_NORMAL.Values: CALL_IMPORTANCE_DEFAULT (0), CALL_IMPORTANCE_NORMAL (1), CALL_IMPORTANCE_CAN_BE_REJECTED (2). |
Response: GetObjectTypesResponse
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_types[] | repeated ValueList | The real object types of the vault, including those the user cannot see (with empty names). See ValueList. |
object_types[].id | int32 | The ID of the object type or value list. Object types and value lists share one ID space; property definition IDs and item IDs are separate spaces. |
object_types[].name_singular | string | The singular name, for example "Customer". Empty if the caller is not allowed to see the list. |
object_types[].name_plural | string | The plural name, for example "Customers". Empty if the caller is not allowed to see the list. |
object_types[].icon | bytes | The icon in .ICO format. Filled only by GetObjectTypes and GetObjectType, and only for real object types; empty in GetValueLists and GetValueList. |
object_types[].is_real_object_type | bool | True for an object type, whose items are objects (documents, customers); false for a plain value list (Country, Classes, Users). |
object_types[].is_hierarchical | bool | True if items can have a parent item in the same list (ValueListItem.has_parent). |
object_types[].has_owner | bool | True if every item belongs to an item of another list, the owner list (owner_object_type). For example, contact persons are owned by customers. |
object_types[].owner_object_type | int32 | With has_owner, the ID of the owner list or object type. |
object_types[].owner_property_def | int32 | Owner property def. Subobjects of objects of this object type have this property in their meta data for describing owner relationships. |
object_types[].options | OBJTYPEFLAGS | Flags of the list, for example can_add_items and is_external. See OBJTYPEFLAGS. |
object_types[].options.all | bool | Specifies all flags set; Including any future flags. |
object_types[].options.can_have_files | bool | Can objects have files? |
object_types[].options.can_add_items | bool | True if new items (value lists) or new objects (object types) can be added. The caller also needs ValueList.object_type_permissions.can_user_add_new_items. |
object_types[].options.is_external | bool | True if the list is marked external. Built-in lists such as Users (6), Workflows (7) and User groups (16) also have this flag. |
object_types[].options.show_new_object_command_in_task_pane | bool | Show the creation command for this type in the task pane? |
object_types[].options.is_external_connection_disabled | bool | Is external connection currently disabled? |
object_types[].options.is_translatable | bool | Can the contents of value list or object type be translated? |
object_types[].options.is_separate_property_storage | bool | True if the object type has its own storage of property values for searches. |
object_types[].options.disallow_as_grouping_level | bool | Is using this object type as a grouping level in views disallowed? |
object_types[].options.basic | bool | Is basic tier object type? |
object_types[].default_property_def | int32 | The ID of the lookup property definition that refers to items of this list by default, for example 1079 (Customer) for the Customer object type. |
object_types[].read_only_properties_during_insert[] | repeated int32 | The propertydef IDs of those properties that cannot be entered during the creation of a new object because they are not included in the INSERT INTO statement. |
object_types[].read_only_properties_during_update[] | repeated int32 | The propertydef IDs of those properties that cannot be entered during the editing of an existing object because they are not included in the UPDATE statement. |
object_types[].targets_for_browsing[] | repeated ObjectTypeTargetForBrowsing | Object type targets for browsing. |
object_types[].targets_for_browsing[].target_object_type | int32 | The ID of the target object type. |
object_types[].targets_for_browsing[].view | int32 | The ID of the view collection where instances of the target object type are being browsed. This view collection resides in the predefined Built-in Views view folder. |
object_types[].acl | AccessControlList | Specifies the ACL that defines the visibility and other permission settings of this object type. Also specifies who can add new items to this object type. |
object_types[].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. |
object_types[].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. |
object_types[].acl.custom_component | AccessControlListComponent | Accesses the custom component of this ACL. |
object_types[].acl.restrictive_components[] | repeated AccessControlListComponentMapEntry | Accesses the restrictive automatic components of this ACL. |
object_types[].acl.secondary_access_control_list | AccessControlList (recursive) | Secondary ACL used for latest version ACL. Not used for access check if null. |
object_types[].acl.additive_components[] | repeated AccessControlListComponentMapEntry | Accesses the additive automatic components of this ACL. |
object_types[].object_type_permissions | ObjectTypePermissionsForClient | What the caller may do with the list: see it (can_user_see) and add items or objects (can_user_add_new_items). Filled by the read calls of IRPCObjectTypes and IRPCValueLists. |
object_types[].object_type_permissions.can_user_see | bool | The object type is visible for the current user (provided for symmetry). |
object_types[].object_type_permissions.can_user_add_new_items | bool | The current user can add new items. |
object_types[].default_acl_for_objects | AccessControlList | Default ACL for new items/objects of this type. If unset, the global default is used (vlitems: read access to all internal users; real objects: full control for all internal users). |
object_types[].default_acl_for_objects.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. |
object_types[].default_acl_for_objects.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. |
object_types[].default_acl_for_objects.custom_component | AccessControlListComponent | Accesses the custom component of this ACL. |
object_types[].default_acl_for_objects.restrictive_components[] | repeated AccessControlListComponentMapEntry | Accesses the restrictive automatic components of this ACL. |
object_types[].default_acl_for_objects.secondary_access_control_list | AccessControlList (recursive) | Secondary ACL used for latest version ACL. Not used for access check if null. |
object_types[].default_acl_for_objects.additive_components[] | repeated AccessControlListComponentMapEntry | Accesses the additive automatic components of this ACL. |
object_types[].vl_sorting_type_reserved | VLSortingType | The sorting type of value list items. NOTE: This value is not currently used but is reserved for future use. Currently, sorting order is specified on the property definition level only.Values: VLSORTING_TYPE_BY_DISPLAY_NAME (0), VLSORTING_TYPE_BY_EXTERNAL_ID (1). |
object_types[].sort_ascending_reserved | bool | True to sort in ascending order, false to sort in descending order. NOTE: This value is not currently used but is reserved for future use. Currently, sorting order is specified on the property definition level only. |
object_types[].guid | string | The GUID of the object type or value list, with braces. Resolve it to the vault's ID with GetMetadataStructureItemIdByGUID. |
object_types[].preferred_title_property_def_id | int32 | Property definition ID of the title property for the user's preferred language. |
object_types[].search_characteristics | ObjectTypeSearchCharacteristics | If set, specifies search characteristics of the object type. |
object_types[].search_characteristics.exclude_in_entire_file_data_search | bool | Specifies whether object type is excluded from file content searches. |
object_types[].search_characteristics.exclude_in_entire_meta_data_search | bool | Specifies whether object type is excluded from metadata searches. |
object_types[].indexing_definition | ObjectTypeIndexingDefinition | If set, defines the indexed value lists and properties of the object type. Used for searching from Master Storage. |
object_types[].indexing_definition.indexed_value_lists[] | repeated int32 | IDs of indexed value lists. |
object_types[].indexing_definition.indexed_properties[] | repeated int32 | IDs of indexed properties. |
object_types[].view_id | int32 | The ID of the object type specific view. |
Related methods
- IRPCValueLists.GetValueLists -- Gets all value lists of the vault, including the object types, without icons.