**Source URL:** https://general.veevavault.dev/rn/25r2.md

# Developer Features in 25R2

We are pleased to bring you the following additions and enhancements to Developer Portal features in 25R2.

## Service Announcements {#service-announcements}

Service Announcements are changes that may affect existing integrations. Organizations should assess these features against their existing integrations and make updates where necessary.

<ReleaseNote id="OOU0000000LL015" app_family="platform" version="25r2">### Java 17 for Vault Java SDK {#OOU0000000LL015}

In 25R2, Veeva is upgrading Vault Java SDK to Java 17. Java 17 includes optimizations that can improve performance and efficiency compared to Java 8, allowing for reduced resource usage.

In this release, Vault is auto-enabling Java 17 compilation in all Vaults. When enabled, Vault compiles new SDK code deployments with Java 17 instead of Java 8. This means that enabling Java 17 does not automatically test your custom code for compatibility, as existing code is not recompiled. To test your code for compatibility with Java 17, redeploy any existing custom code to recompile with Java 17. We are also adding additional Java 17 syntax to the JDK allowlist.

When Java 17 is enabled:

* Existing custom code deployed to your Vault is not affected.

* Updates to (or re-deployment of) existing code will cause the code to compile with Java 17 instead of Java 8.

* New code deployed to your Vault will compile with Java 17.

</ReleaseNote>
<ReleaseNote id="OOU0000000P1022" label="November 17, 2025" app_family="platform" version="25r2">### DigiCert G2 Certificate {#OOU0000000P1022}

In 25R3, Veeva will migrate from the DigiCert Legacy Root Certificate to the DigiCert G2 Root Certificate for signing Vault SSL Certificates. This is to align with [DigiCert and Mozilla's end of life for the Legacy Root Certificate in April 2026](https://knowledge.digicert.com/general-information/digicert-root-and-intermediate-ca-certificate-updates-2023). Customers with integrations built on Java 1.8 and below may be affected, and are encouraged to evaluate their integrations for G2 certificate support.

</ReleaseNote>
<ReleaseNote id="OOU0000000OP034" lr="25R1.4" app_family="platform" version="25r2">

### Enhanced Picklist Administration: Reorder Large Picklists {#enhanced-picklist-administration-reorder-large-picklists}

With this release, picklists with over 200 values can be reordered using the Admin UI. Previously, this was only possible with Vault API.

To maintain good performance within the Admin UI experience, picklist values will now be reordered to a 0 based sequence, regardless of any non-sequential order values the user may have initially specified. For example, if initial picklist values were ordered by the user with 10, 20, 30, Vault immediately reorders them as 0, 1, 2. Learn more about the new behavior for picklist order in the [Reordering Picklists guide](/mdl/documentation/guides/vault-toolbox#Understanding_Picklist_Order).

This represents a change from the current behavior, where the originally defined non-sequential order is persisted and displayed. Developers should evaluate their integrations for any reliance on exact user-entered order values.

</ReleaseNote>

## Release Highlights {#release-highlights}

The following features are the major highlights for Vault developers in this release.

### Custom Pages {#custom-pages}

The following features enhance [Custom Pages](/custom-pages).

<ReleaseNote id="OOU0000000ON024" lr="25R1.3" app_family="platform" version="25r2">#### UrlService and Window APIs {#urlservice-and-window-apis}

This feature introduces `window.vaultLocation`, which allows Custom Page developers to control navigation and history in the same way as using `window.location` when in control of the entire HTML document.

This feature also introduces `UrlService`, which enables developers to generate URLs to documents, object records, lists, and Custom Pages.

Learn more about [generating URLs to Vault Locations](/custom-pages/guides/developing-server-code#Generating_URLs) and [controlling Custom Page navigation](/custom-pages/guides/data-management#Location_History).

</ReleaseNote>
<ReleaseNote id="OOU0000000NP030" lr="25R1.3" app_family="platform" version="25r2">### Action Triggers {#action-triggers}

Action Triggers is a new Admin-configurable feature which can perform operations when records have changed, which can eliminate the need to build custom SDK `Recordtriggers` to execute these operations.

A new component type, `Actiontrigger`, has been introduced to manage the configuration of Action Triggers. Each `Actiontrigger` component record stores the object name, event type (before/after insert, update, delete), and the action to initiate. `Actiontrigger` component records can be deployed using Vault API and Vault UI.

Learn more about the [user and Admin-facing functionality of this feature in Vault Help](https://rn.veevavault.help/en/lr/new-in-25r2/#OOU0000000NP030).

</ReleaseNote>

## Access Control {#access-control}

Access control features empower Vault Admins to manage permissions and enforce security within Vault. These features allow Vault Admins to configure user access, ensuring users can only view and use the functions, documents, and object records relevant to their specific roles and responsibilities.

<ReleaseNote id="OOU0000000NP037" lr="25R1.2" app_family="platform" version="25r2">### Tree Security {#tree-security}

In this release, we’ve added a new object class `securitytree` that allows configuring security trees. When Security Tree objects are created, a corresponding *User Tree Assignment* object is created automatically with the name defined in the `user_tree_assignment_object_name` attribute. Developers can then assign the *Security Tree* object to objects using the `security_tree_object` attribute. Assigning a security tree automatically generates a *Tree Assignment* object with the name defined in the `tree_assignment_object_name` attribute.

Metadata provided in Vault API and Vault Java SDK has been enhanced to return the tree security configuration, and roles assigned using Tree Security are returned when using Object Role APIs and `RecordRole` Java SDK Services.

Learn more about [developing with Tree Security](/security/tree).

</ReleaseNote>
<ReleaseNote id="OOU0000000NT040" lr="25R1.2" app_family="platform" version="25r2">### Child Object Security {#OOU0000000NT040}

A new attribute, `replicate_sharing_from_parent`, is available on the `Object.Field` component and allows developers to configure sharing settings to be replicated from the parent object. When this setting is enabled, Custom Sharing Rules and Matching Sharing rules are deleted, and integrations cannot use Vault API or Vault Java SDK to add manual roles. Developers should evaluate existing custom solutions before enabling this setting.

Learn more about [developing with Tree Security](/security/child-object/developing-with-child-object-security).

</ReleaseNote>

## Vault API v25.2 {#vault-api-v252}

Vault API features added in 25R2 only affect API v25.2, unless otherwise noted.

### Direct Data API {#direct-data-api}

The following features enhance [Direct Data API](/direct-data-api/).

<ReleaseNote id="OOU0000000OJ026" lr="25R1.3" app_family="platform" version="25r2">#### Direct Data API Admin Enablement {#OOU0000000OJ026}

Vault Admins can now enable Direct Data API in Vaults without needing to submit a ticket to Veeva Product Support. Once enabled, Vault automatically generates Full, Log, and Incremental files. The first extract may take up to 24 hours and once Direct Data API is enabled, the feature cannot be disabled.

</ReleaseNote>
<ReleaseNote id="OOU0000000OZ019" lr="25R1.3" app_family="platform" version="25r2">#### Direct Data API Checksum Attribute for File Parts {#OOU0000000OZ019}

Direct Data API now includes a `md5checksum` attribute for each file part. This allows developers to build integrations that can verify all data was properly downloaded.

</ReleaseNote>
<ReleaseNote id="OOU0000000O5021" lr="25R1.2" app_family="platform" version="25r2">#### Direct Data API Document Relationships {#OOU0000000O5021}

Direct Data API now includes an extract that captures document relationships in Direct Data files. This allows developers to represent the relationship between documents, such as based on, supporting, and so on, in downstream systems. Learn more about the [document relationships extract](/direct-data-api/references/extract-naming/#Document_Relationships_Extract).

</ReleaseNote>
<ReleaseNote id="OOU0000000O9004" lr="25R1.2" app_family="platform" version="25r2">#### Direct Data API Retry Date {#OOU0000000O9004}

Direct Data API is designed for resiliency. When errors occur, Vault retries the Direct Data job. Starting in v25.2, Vault will return error information, including the next retry date (next_retry). This allows developers to build resilient integrations that can retrieve the file on or after the next retry date. Learn more about the retry date for failures.

</ReleaseNote>
<ReleaseNote id="OOU0000000OY002" lr="25R1.2" app_family="platform" version="25r2">#### Direct Data API Staging Job {#OOU0000000OY002}

Direct Data API now has a new job called Direct Data Staging, which runs hourly. It is responsible for the initial staging of data and monitoring any configuration changes that happen in Vault.

</ReleaseNote>

### New Endpoints {#new-endpoints}

<ReleaseNote id="OOU0000000MU087" lr="25R1.3" app_family="platform" version="25r2">#### Retrieve Deleted Attachments API {#OOU0000000MU087}

Developers can now retrieve deleted attachment IDs for documents and object records using Vault API. Deleted attachment metadata is available for 30 days.

* [Retrieve Deleted Object Record Attachments](/vault-api/api-reference/25.2/vault-objects/object-record-attachments/retrieve-deleted-object-record-attachments)

* [Retrieve Deleted Document Attachments](/vault-api/api-reference/25.2/documents/document-attachments/retrieve-deleted-document-attachments)

</ReleaseNote>
<ReleaseNote id="OOU0000000NS027" lr="25R1.3" app_family="platform" version="25r2">#### Document Text API {#OOU0000000NS027}

Vault now supports downloading the extracted text from source document content. This allows developers to build integrations to support AI use-cases without needing to download MS Word or PDF documents and perform additional processing to extract the text.

[Download Document Text](/vault-api/api-reference/25.2/documents/retrieve-documents/retrieve-document-version-text):

<Endpoint path="/api/{version}/objects/documents/{doc_id}/versions/{major_version}/{minor_version}/text" method="GET"></Endpoint></ReleaseNote>

### Existing Endpoints {#existing-endpoints}

<ReleaseNote id="OOU0000000LC048" lr="25R1.2" app_family="platform" version="25r2">#### Object Record Create, Update, and Delete Enhancements {#OOU0000000LC048}

When using Vault API or Vault Java SDK to create, update, and delete object records, developers who use an external ID now have access to the unique value supplied in the request payload. This means custom solutions can use external IDs to track success or failure without having to maintain a list of records supplied by the request. Additionally, when upserting records, Vault returns the event type (`created` or `updated`) in the response.

Enhanced endpoints and interfaces:

* Vault API: Create & Upsert Object Records

* Vault API: Update Object Records

* Vault API: Delete Object Records

* Vault Java SDK: `PositionalRecordId`

* Vault Loader

</ReleaseNote>
<ReleaseNote id="OOU0000000MT061" lr="25R1.3" app_family="platform" version="25r2">#### Jobs: Timeout Statuses {#OOU0000000MT061}

To help with troubleshooting job errors, this release introduces two new job statuses:

* `TIMEOUT`: This status represents a job instance that was `QUEUED` or `QUEUEING`, but timed out before it could begin to run. Previously, this returned an error of `FAILED_TO_RUN`.

* `COMPLETED_DUE_TO_INACTIVITY`: This status represents a job instance which was `RUNNING`, but timed out before it completed successfully. Previously, this returned an error of `ERRORS_ENCOUNTERED`.

These new statuses may appear when using Vault API to [retrieve a job status](/vault-api/api-reference/25.2/jobs/retrieve-job-status). You can also filter by these new statuses when [retrieving job histories](/vault-api/api-reference/25.2/jobs/retrieve-job-histories), and [query them with VQL](/vql/query-targets/jobs#Job_Instances).

These new statuses will appear in all versions of the API.

</ReleaseNote>
<ReleaseNote id="OOU0000000ND010" lr="25R1.3" app_family="platform" version="25r2">

#### Allow Document Owner to Delete Annotations {#OOU0000000ND010}

Document Owners can now delete annotations using Vault API and Vault Java SDK. Prior to 25R2, only the person who created an annotation could delete it. This enhancement removes the additional effort required to delete annotations.

This feature must be enabled by a Vault Admin, and the annotations can only be deleted if the user has the appropriate permissions. Learn more about the [user and Admin-facing functionality of this feature in Vault Help](https://rn.veevavault.help/en/lr/new-in-25r2/#OOU0000000ND010).

</ReleaseNote>
<ReleaseNote id="OOU0000000G1015" lr="25R1.3" app_family="platform" version="25r2">#### Vault Tokens in Expressions {#OOU0000000G1015}

Vault Admins can now use [Vault Tokens](https://platform.veevavault.help/en/gr/6382) in expressions. This allows consistent configuration across Vaults and sandboxes while using environment-specific variables to resolve expressions. For example, an Admin can create a custom Vault Token, `external_url__c`, that points to different endpoints for production versus sandbox, but allows an object formula field to be defined using `@Vault.external_url__c`.

</ReleaseNote>

### Deprecated Platform APIs {#deprecated-platform-apis}

<ReleaseNote id="OOU0000000ON019" lr="25R1.2" app_family="platform" version="25r2">

#### Deprecated API: Retrieve Object Record Collection {#OOU0000000ON019}

The **Retrieve Object Record Collection** will not be supported when using API v25.2+. Older API versions are not affected. Instead of this API, developers should use Direct Data API or VQL for optimal performance.

</ReleaseNote>
<ReleaseNote id="OOU0000000OJ019" lr="25R1.2" app_family="platform" version="25r2">

#### Deprecated API: Retrieve Document Version Notes as CSV {#OOU0000000OJ019}

The **Retrieve Document Version Notes as CSV** API will not be supported when using API v25.2+. Older API versions are not affected.
Instead of this API, developers should use the Read Annotations APIs to retrieve document annotations by document or by ID:

* [Read Annotations by Document Version and Type](/vault-api/api-reference/25.1/documents/document-annotations/read-annotations-by-document-version-and-type)

* [Read Annotations by ID](/vault-api/api-reference/25.1/documents/document-annotations/read-annotations-by-id)

</ReleaseNote>
<ReleaseNote id="OOU0000000OW030" lr="25R1.2" app_family="platform" version="25r2">

#### Deprecated API: Retrieve Anchor IDs {#OOU0000000OW030}

The **Retrieve Anchor IDs** API will not be supported when using API v25.2+. Older API versions are not affected.

Instead of this API, developers should use the Read Annotations APIs to retrieve anchor annotation IDs by document or by ID:

* [Read Annotations by Document Version and Type](/vault-api/api-reference/25.1/documents/document-annotations/read-annotations-by-document-version-and-type)

* [Read Annotations by ID](/vault-api/api-reference/25.1/documents/document-annotations/read-annotations-by-id)

</ReleaseNote>

### Veeva Clinical {#veeva-clinical}

<ReleaseNote id="OOU0000000KH011" lr="25R1.2" app_family="clinical" version="25r2">#### Bulk Update Study Migration Status {#OOU0000000KH011}

Developers can now build integration and migration tools for Veeva Clinical that can update the study migration status in bulk, enabling or disabling Study Migration Mode. This means fewer API calls are needed to enable and disable Study Migration Mode. Studies are updated asynchronously and results can be queried using VQL.

[Enable Study Migration Mode](/vault-api/api-reference/25.2/workflows/workflow-tasks):

<Endpoint path="/api/{version}/app/clinical/studies/actions/enable_migration_mode" method="POST"></Endpoint>[Disable Study Migration Mode](/vault-api/api-reference/25.2/workflows/workflow-tasks):

<Endpoint path="/api/{version}/app/clinical/studies/actions/disable_migration_mode" method="POST"></Endpoint></ReleaseNote>
<ReleaseNote id="OOU0000000MW036" lr="25R1.3" app_family="clinical" version="25r2">#### Investigator Affiliation to Multiple Sites {#OOU0000000MW036}

As part of OpenData Clinical’s “Investigator Affiliation to Multiple Sites” feature, Vault is introducing an endpoint that will list all investigator-site affiliations in OpenData Clinical for a specific investigator or site, as well as a separate endpoint to specify, for a given investigator, which site affiliation they consider primary for their purposes. The additional endpoints allow developers to more fully interrogate OpenData Clinical and adjust how they use that data in their Vault.

Learn more in the [v25.2 API Reference](/vault-api/api-reference/25.2/workflows/workflow-tasks).

</ReleaseNote>

### Veeva Quality {#veeva-quality}

<ReleaseNote id="OOU0000000P2006" lr="25R1.3" app_family="platform" version="25r2">

#### QMS: Prevent Standard QMS Lifecycle State Type Inactivation {#OOU0000000P2006}

This release standardizes customer environments by requiring object lifecycles across Quality Cloud Vaults to have certain lifecycle state types available, as these state types are needed for various application functions. Previous releases allowed developers to inactivate these lifecycle state types through Vault API or MDL (VPKs). With this feature, these lifecycle state types can no longer be inactivated with Vault API or MDL.

Developers should examine their custom code and modify any code which attempts to inactivate these lifecycle state types. Any code which attempts to inactivate these lifecycle state types will no longer execute.

The affected lifecycle state types are:

* Approved (`approved__v`)

* APQR Program Approved (`apqr_program_approved__v`)

* Proposed APQR Approved (`proposed_apqr_approved__v`)

* Approved State (`approved_state_type__v`)

* Template Approved(`approved_template__v`)

* Impact Assessment Template Approved (`ia_template_approved_template__v`)

* Cancelled (`cancelled__v`)

* Closed (`closed__v`)

* Cycle Time Start (`cycle_time_start__v`)

* Cycle Time Stop (`cycle_time_stop__v`)

* Fulfilled (`fulfilled_state_type__v`)

* In Requalification (`in_requalification_state__v`)

* In Progress (`in_progress__v`)

* No Impact Identified (`no_impact_identified__v`)

* Pending Regulatory Assessment (`pending_regulatory_assessment__v`)

* Published (`published_state_type__v`)

* Regulatory Assessment (`regulatory_assessment_complete__v`)

* Qualified (`qualified_state__v`)

This feature does not affect the function of these lifecycle state types or the ability to map them to different lifecycle state types.

</ReleaseNote>
<ReleaseNote id="OOU0000000OM002" lr="25R1.2" app_family="platform" version="25r2">#### Quality Teams API Permission Enhancements {#OOU0000000OM002}

Integration accounts no longer need admin permissions for Quality Teams to use the *Manage Quality Team Assignments* API. Users are still required to have API access and edit permissions for Quality Team Relationships on the specified records.

Learn more about the [user and Admin-facing functionality of this feature in Vault Help](https://rn.veevavault.help/en/lr/new-in-25r2/#OOU0000000OM002).

</ReleaseNote>
<ReleaseNote id="OOU0000000OK006" lr="25R1.3" app_family="platform" version="25r2">

#### Create Disposition APIs {#OOU0000000OK006}

Developers can add dispositions to batches from external systems, such as an ERP, by providing a Batch ID and Disposition Plan Name. Learn more in the [v25.2 API Reference](/vault-api/api-reference/25.2/workflows/workflow-tasks).

</ReleaseNote>

### Veeva QualityOne {#veeva-qualityone}

<ReleaseNote id="OOU0000000OY035" lr="25R1.3" app_family="qualityone" version="25r2">

#### QualityOne: HACCP Plan Translation APIs {#OOU0000000OY035}

This feature introduces three (3) new public endpoints to manage HACCP plan translations by allowing for the export, retrieval, and import of all translatable fields from a *HACCP Plan* record and its related transactional records. The new endpoints process JSON files to execute asynchronous jobs that handle the translation export and import operations. These APIs facilitate the integration of third-party translation services to deliver an automated end-to-end translation process of a HACCP plan, ensuring that users who aren't fluent in English can view HACCP plans in their local language.

View these endpoints in the [v25.2 API reference](/vault-api/api-reference/25.2/workflows/workflow-tasks).

</ReleaseNote>

## MDL {#mdl}

The following features enhance [Metadata Definition Language](/mdl/), which gives developers the ability to manage Vault configuration.

<ReleaseNote id="OOU000000097025" lr="25R1.2" app_family="platform" version="25r2">### Email to Vault: Bounce Notifications {#OOU000000097025}

Using MDL, Vault Admins can now configure the `Inboundemailaddress` component to notify Vault User and *Person* senders if the *Email* record is created in a *Bounced* state. A new attribute, `send_bounce_notification`, has a default value of `false`.

</ReleaseNote>
<ReleaseNote id="OOU0000000NV007" lr="25R1.2" app_family="platform" version="25r2">### Metadata Clearing on PDF Viewable Renditions {#OOU0000000NV007}

A new attribute, `clear_rendition_properties`, has been added to the `Renditionprofile` component. This allows developers to configure rendition profiles to remove document metadata from generated renditions. When set to true (`default = false`), renditions will not include document metadata.

</ReleaseNote>
<ReleaseNote id="OOU0000000LE029" lr="25R1.4" app_family="platform" version="25r2">### Copy Record Action Security {#OOU0000000LE029}

This feature enhances the existing *Copy Record* object action to support action-level security configuration. When enabled, Vault Admins can control whether the *Copy Record* action is available to secure with permission sets, atomic security, and on object types.

To support this feature, we’ve added a new MDL attribute, `secure_copy_record`, to the `Object` component. This attribute controls the ability to execute the *Copy Record* action at the object type, permission set, or object record lifecycle state through atomic security.

</ReleaseNote>
<ReleaseNote id="OOU0000000OR016" lr="25R1.3" app_family="platform" version="25r2">### Select All for Complex Relationships {#OOU0000000OR016}

This feature enables Vault UI users to use a *Select All* button while relating multiple records at once in a related object section. Learn more about the [user and Admin-facing functionality of this feature in Vault Help](https://rn.veevavault.help/en/lr/new-in-25r2/#OOU0000000OR016).

This feature introduces a new attribute for the `Object` component named `relate_records_select_all`. This attribute can only be used for join objects, and it can only be set to `true` if `multi_select` is also set to `true`. For simple join objects, this attribute is always set to `true`. Otherwise, this attribute is not allowed. If set to `true`, Vault UI users can use the *Select All* button while relating multiple records at once in a related object section.

</ReleaseNote>
<ReleaseNote id="OOU0000000OX003" lr="25R1.4" app_family="platform" version="25r2">### Document Readiness Panel: Checks {#OOU0000000OX003}

Administrators can configure Document Readiness using two new component types, `Documentchecksection` and `Documentcheck`. Component records define the section, help text, and document type for the specified document check.

</ReleaseNote>

### Veeva Quality {#veeva-quality-1}

<ReleaseNote id="OOU0000000OY045" lr="25R1.3" app_family="platform" version="25r2">#### QMS Email Processors: Email Thread Detection {#OOU0000000OY045}

This feature introduces a new attribute for the `Qualityinboundemailaddressconfiguration` component named `email_thread_detection`. The attribute can be set to `MATCH_ON_ROOT_MESSAGE_ID` or `MATCH_ON_MESSAGE_ID`. If neither is specified, the default value is `MATCH_ON_MESSAGE_ID`. Learn more about the [user and Admin-facing functionality of this feature in Vault Help](https://rn.veevavault.help/en/lr/new-in-25r2/#OOU0000000OY045).

</ReleaseNote>

## VQL {#vql}

The following features enhance [Vault Query Language](/vql/overview).

<ReleaseNote id="OOU0000000MF097" lr="25R1.3" app_family="platform" version="25r2">#### SHOW TARGETS, FIELDS, & RELATIONSHIPS {#OOU0000000MF097}

This feature allows VQL developers to programmatically discover and describe query targets, fields, and relationships.

* `SHOW TARGETS` returns the queryable targets.

* `SHOW FIELDS FROM {query target}` returns the queryable fields on the specified query target.

* `SHOW RELATIONSHIPS FROM {query target} ` returns the queryable relationships on the query target.

This is also supported in Vault Java SDK `QueryService`.

Learn more in the [VQL documentation](/vql/clauses/show).

</ReleaseNote>

## Vault Java SDK {#vault-java-sdk}

The following features enhance Vault Java SDK.

<ReleaseNote id="OOU0000000NO019" lr="25R1.3" app_family="platform" version="25r2">#### Cancel a Job in Queued or Queueing State {#OOU0000000NO019}

With this feature, we’ve added a new attribute called `adminCancellable` to the `@JobInfo` annotation. This determines if an SDK job instance is cancellable by an Admin in the Vault’s *Job Status* page.

Previously, the `adminConfigurable` annotation determined if an SDK job was cancellable. The new `adminCancellable` annotation ensures that `adminConfigurable` is used to determine whether a job can be called with custom SDK code or configurable as a Job Definition in the Vault UI, and isn’t tied to job instances also being cancellable.

</ReleaseNote>
<ReleaseNote id="OOU0000000P0003" lr="25R1.3" app_family="platform" version="25r2">#### Developer Logs {#OOU0000000P0003}

In the Vault UI, *Vault Java SDK Logs* have now been renamed to *Developer Logs*. Integrations that download debug and runtime logs are not impacted by this change.

</ReleaseNote>
<ReleaseNote id="OOU0000000OT052" lr="25R1.2" app_family="platform" version="25r2">#### Object Metadata SDK: Predefault Object Reference {#OOU0000000OT052}

Developers can now access the *Pre-Default Object Reference Field Setting* metadata for object fields using `ObjectMetadataService`.

</ReleaseNote>