Skip to content

Promote Full Text Search BETA APIs to GA in azure-cosmos#48538

Open
kushagraThapar wants to merge 5 commits intoAzure:mainfrom
kushagraThapar:kushagra/ga-beta-apis
Open

Promote Full Text Search BETA APIs to GA in azure-cosmos#48538
kushagraThapar wants to merge 5 commits intoAzure:mainfrom
kushagraThapar:kushagra/ga-beta-apis

Conversation

@kushagraThapar
Copy link
Member

@kushagraThapar kushagraThapar commented Mar 23, 2026

Promote Full Text Search BETA APIs to GA in azure-cosmos

Motivation

The Java SDK has 68 @Beta-annotated public APIs. After cross-referencing each feature area against the Azure Cosmos DB service documentation and comparing with the Python SDK's GA status, 4 Full Text Search APIs are eligible for GA promotion because the underlying service feature is already generally available.

Changes

Removed @Beta annotations from the following Full Text Search APIs:

Full Text Search — service feature is GA

Python SDK already GA'd this in 4.9.0 (Nov 2024). Service docs page has no "(preview)" label.

File Method
CosmosContainerProperties getFullTextPolicy()
CosmosContainerProperties setFullTextPolicy(CosmosFullTextPolicy)
IndexingPolicy getCosmosFullTextIndexes()
IndexingPolicy setCosmosFullTextIndexes(List)

Note: CosmosFullTextIndex, CosmosFullTextPath, and CosmosFullTextPolicy classes were already GA (no @Beta). Only the container/index-policy accessor methods were still annotated.

JavaDoc and grammar fixes (from review)

  • IndexingPolicy: getter javadoc corrected from "paths" to "indexes", setter @return corrected from "excluded paths" to "IndexingPolicy"
  • CosmosContainerProperties: setFullTextPolicy javadoc corrected from "Gets" to "Sets"
  • ThroughputControlGroupConfigBuilder: grammar fix "should between" → "should be between" in exception messages

APIs intentionally kept as @Beta

Feature Reason
Deprecated + Beta APIs (ThroughputControlGroupConfigBuilder setters, CosmosDiagnostics.getRegionsContacted, EncryptionKeyWrapMetadata 3-arg ctor) @Beta retained on deprecated APIs so they can be removed later if needed
Change Feed All Versions & Deletes (25 APIs) Service docs: "All versions and deletes change feed mode (preview)". Requires portal enrollment.
ReadConsistencyStrategy (13 APIs) Docs note: "currently only working when using direct mode". New enum values (LATEST_COMMITTED, GLOBAL_STRONG) beyond standard consistency levels.
Http2ConnectionConfig (12 APIs) setEnabled() JavaDoc: "false while in preview, true later".
Throughput Buckets V4_74_0 (4 APIs) Service docs: "Throughput buckets in Azure Cosmos DB (preview)". Requires portal enrollment.

Validation

  • mvn compile with checkstyle passes cleanly
  • No behavioral changes — only annotation removal and javadoc fixes
  • No public API surface changes (methods were already public)

Remove @beta annotations from APIs whose service-side features are GA:

1. Full Text Search (GA per service docs):
   - CosmosContainerProperties.getFullTextPolicy()/setFullTextPolicy()
   - IndexingPolicy.getCosmosFullTextIndexes()/setCosmosFullTextIndexes()

2. Throughput Control V4_13_0 (GA since 2021):
   - ThroughputControlGroupConfigBuilder.setGroupName()
   - ThroughputControlGroupConfigBuilder.setTargetThroughput()
   - ThroughputControlGroupConfigBuilder.setTargetThroughputThreshold()
   - ThroughputControlGroupConfigBuilder.setDefault()

3. Deprecated+Beta misc (already deprecated, unrelated to preview features):
   - CosmosDiagnostics.getRegionsContacted()
   - EncryptionKeyWrapMetadata(String, String, String)

APIs intentionally kept as @beta (service features still in preview):
- Change Feed All Versions & Deletes (service preview)
- ReadConsistencyStrategy (direct-mode only)
- Http2ConnectionConfig (SDK preview)
- Throughput Buckets V4_74_0 (service preview)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@kushagraThapar kushagraThapar marked this pull request as ready for review March 23, 2026 20:57
@kushagraThapar kushagraThapar requested review from a team and kirankumarkolli as code owners March 23, 2026 20:57
Copilot AI review requested due to automatic review settings March 23, 2026 20:57
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR promotes a set of previously @Beta-annotated public APIs in azure-cosmos to GA by removing the @Beta annotations (and now-unused Beta imports where applicable), aligning the Java SDK surface with GA service functionality.

Changes:

  • Removed @Beta from Full Text Search accessors on CosmosContainerProperties and IndexingPolicy.
  • Removed @Beta from several deprecated Throughput Control builder setters and a deprecated diagnostics accessor.
  • Updated the azure-cosmos changelog to note the GA promotion.

Reviewed changes

Copilot reviewed 6 out of 6 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/models/IndexingPolicy.java Removes @Beta from full text index accessors and drops the unused Beta import.
sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/models/CosmosContainerProperties.java Removes @Beta from getFullTextPolicy/setFullTextPolicy.
sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/ThroughputControlGroupConfigBuilder.java Removes @Beta from deprecated builder setters for throughput control group configuration.
sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/CosmosDiagnostics.java Removes @Beta from deprecated getRegionsContacted() and drops the unused Beta import.
sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/models/EncryptionKeyWrapMetadata.java Removes @Beta from deprecated constructor and drops the unused Beta import.
sdk/cosmos/azure-cosmos/CHANGELOG.md Notes the GA promotion in release history.

kushagraThapar and others added 2 commits March 23, 2026 16:39
- IndexingPolicy: getter javadoc says 'indexes' not 'paths', setter
  @return says 'IndexingPolicy' not 'excluded paths'
- CosmosContainerProperties: setFullTextPolicy javadoc says 'Sets' not
  'Gets'
- ThroughputControlGroupConfigBuilder: fix grammar 'should between' →
  'should be between' in both exception messages

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Keep @beta annotation on deprecated APIs so they can be removed later
if needed. Only Full Text Search APIs (getFullTextPolicy,
setFullTextPolicy, getCosmosFullTextIndexes, setCosmosFullTextIndexes)
are promoted to GA since their underlying service feature is GA.

Restored @beta on:
- CosmosDiagnostics.getRegionsContacted() (V4_9_0)
- ThroughputControlGroupConfigBuilder.setGroupName/setTargetThroughput/
  setTargetThroughputThreshold/setDefault (V4_13_0)
- EncryptionKeyWrapMetadata 3-arg constructor (V4_16_0)

Updated changelog to reflect reduced GA scope.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@kushagraThapar kushagraThapar changed the title Promote 10 BETA public APIs to GA in azure-cosmos Promote Full Text Search BETA APIs to GA in azure-cosmos Mar 23, 2026
Copy link
Member

@tvaron3 tvaron3 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants