Class CosmosAsyncContainer

java.lang.Object
com.azure.cosmos.CosmosAsyncContainer

public class CosmosAsyncContainer extends Object
Provides methods for reading, deleting, and replacing existing Containers. Provides methods for interacting with child resources (Items, Scripts, Conflicts)
  • Method Details

    • getId

      public String getId()
      Get the id of the CosmosAsyncContainer.
      Returns:
      the id of the CosmosAsyncContainer.
    • read

      public Mono<CosmosContainerResponse> read()
      Reads the current container.

      After subscription the operation will be performed. The Mono upon successful completion will contain a single Cosmos container response with the read container. In case of failure the Mono will error.

      Returns:
      an Mono containing the single Cosmos container response with the read container or an error.
    • read

      Reads the current container while specifying additional options such as If-Match.

      After subscription the operation will be performed. The Mono upon successful completion will contain a single Cosmos container response with the read container. In case of failure the Mono will error.

      Parameters:
      options - the Cosmos container request options.
      Returns:
      an Mono containing the single Cosmos container response with the read container or an error.
    • delete

      Deletes the container

      After subscription the operation will be performed. The Mono upon successful completion will contain a single Cosmos container response for the deleted database. In case of failure the Mono will error.

      Parameters:
      options - the request options.
      Returns:
      an Mono containing the single Cosmos container response for the deleted database or an error.
    • delete

      public Mono<CosmosContainerResponse> delete()
      Deletes the current container.

      After subscription the operation will be performed. The Mono upon successful completion will contain a single Cosmos container response for the deleted container. In case of failure the Mono will error.

      Returns:
      an Mono containing the single Cosmos container response for the deleted container or an error.
    • replace

      public Mono<CosmosContainerResponse> replace(CosmosContainerProperties containerProperties)
      Replaces the current container's properties.

      After subscription the operation will be performed. The Mono upon successful completion will contain a single Cosmos container response with the replaced container properties. In case of failure the Mono will error.

      Parameters:
      containerProperties - the container properties
      Returns:
      an Mono containing the single Cosmos container response with the replaced container properties or an error.
    • replace

      Replaces the current container properties while using non-default request options.

      After subscription the operation will be performed. The Mono upon successful completion will contain a single Cosmos container response with the replaced container properties. In case of failure the Mono will error.

      Parameters:
      containerProperties - the container properties
      options - the Cosmos container request options.
      Returns:
      an Mono containing the single Cosmos container response with the replaced container properties or an error.
    • createItem

      public <T> Mono<CosmosItemResponse<T>> createItem(T item)
      Creates an item.

      After subscription the operation will be performed. The Mono upon successful completion will contain a single resource response with the created Cosmos item. In case of failure the Mono will error.

      Type Parameters:
      T - the type parameter.
      Parameters:
      item - the Cosmos item represented as a POJO or Cosmos item object.
      Returns:
      an Mono containing the single resource response with the created Cosmos item or an error.
    • createItem

      public <T> Mono<CosmosItemResponse<T>> createItem(T item, PartitionKey partitionKey, CosmosItemRequestOptions options)
      Creates an item.

      After subscription the operation will be performed. The Mono upon successful completion will contain a single resource response with the created Cosmos item. In case of failure the Mono will error.

      Type Parameters:
      T - the type parameter.
      Parameters:
      item - the Cosmos item represented as a POJO or Cosmos item object.
      partitionKey - the partition key.
      options - the request options.
      Returns:
      an Mono containing the single resource response with the created Cosmos item or an error.
    • createItem

      public <T> Mono<CosmosItemResponse<T>> createItem(T item, CosmosItemRequestOptions options)
      Creates a Cosmos item.
      Type Parameters:
      T - the type parameter.
      Parameters:
      item - the item.
      options - the item request options.
      Returns:
      an Mono containing the single resource response with the created Cosmos item or an error.
    • upsertItem

      public <T> Mono<CosmosItemResponse<T>> upsertItem(T item)
      Upserts an item.

      After subscription the operation will be performed. The Mono upon successful completion will contain a single resource response with the upserted item. In case of failure the Mono will error.

      Type Parameters:
      T - the type parameter.
      Parameters:
      item - the item represented as a POJO or Item object to upsert.
      Returns:
      an Mono containing the single resource response with the upserted item or an error.
    • upsertItem

      public <T> Mono<CosmosItemResponse<T>> upsertItem(T item, CosmosItemRequestOptions options)
      Upserts an item.

      After subscription the operation will be performed. The Mono upon successful completion will contain a single resource response with the upserted item. In case of failure the Mono will error.

      Type Parameters:
      T - the type parameter.
      Parameters:
      item - the item represented as a POJO or Item object to upsert.
      options - the request options.
      Returns:
      an Mono containing the single resource response with the upserted item or an error.
    • upsertItem

      public <T> Mono<CosmosItemResponse<T>> upsertItem(T item, PartitionKey partitionKey, CosmosItemRequestOptions options)
      Upserts an item.

      After subscription the operation will be performed. The Mono upon successful completion will contain a single resource response with the upserted item. In case of failure the Mono will error.

      Type Parameters:
      T - the type parameter.
      Parameters:
      item - the item represented as a POJO or Item object to upsert.
      partitionKey - the partition key.
      options - the request options.
      Returns:
      an Mono containing the single resource response with the upserted item or an error.
    • queryItems

      public <T> CosmosPagedFlux<T> queryItems(String query, Class<T> classType)
      Query for items in the current container.

      After subscription the operation will be performed. The CosmosPagedFlux will contain one or several feed response of the obtained items. In case of failure the CosmosPagedFlux will error.

      Type Parameters:
      T - the type parameter.
      Parameters:
      query - the query.
      classType - the class type.
      Returns:
      a CosmosPagedFlux containing one or several feed response pages of the obtained items or an error.
    • openConnectionsAndInitCaches

      @Beta(value=V4_14_0, warningText="Preview API - subject to change in non-backwards compatible way") public Mono<Void> openConnectionsAndInitCaches()
      Best effort to initializes the container by warming up the caches and connections for the current read region. Depending on how many partitions the container has, the total time needed will also change. But generally you can use the following formula to get an estimated time: If it took 200ms to establish a connection, and you have 100 partitions in your container then it will take around (100 * 4 / CPUCores) * 200ms to open all connections after get the address list


      NOTE: This API ideally should be called only once during application initialization before any workload.
      In case of any transient error, caller should consume the error and continue the regular workload.

      Returns:
      Mono of Void.
    • queryItems

      public <T> CosmosPagedFlux<T> queryItems(String query, CosmosQueryRequestOptions options, Class<T> classType)
      Query for items in the current container using a string.

      After subscription the operation will be performed. The CosmosPagedFlux will contain one or several feed response of the obtained items. In case of failure the CosmosPagedFlux will error.

      Type Parameters:
      T - the type parameter.
      Parameters:
      query - the query.
      options - the query request options.
      classType - the class type.
      Returns:
      a CosmosPagedFlux containing one or several feed response pages of the obtained items or an error.
    • queryItems

      public <T> CosmosPagedFlux<T> queryItems(SqlQuerySpec querySpec, Class<T> classType)
      Query for items in the current container using a SqlQuerySpec.

      After subscription the operation will be performed. The CosmosPagedFlux will contain one or several feed response of the obtained items. In case of failure the CosmosPagedFlux will error.

      Type Parameters:
      T - the type parameter.
      Parameters:
      querySpec - the SQL query specification.
      classType - the class type.
      Returns:
      a CosmosPagedFlux containing one or several feed response pages of the obtained items or an error.
    • queryItems

      public <T> CosmosPagedFlux<T> queryItems(SqlQuerySpec querySpec, CosmosQueryRequestOptions options, Class<T> classType)
      Query for items in the current container using a SqlQuerySpec and CosmosQueryRequestOptions.

      After subscription the operation will be performed. The Flux will contain one or several feed response of the obtained items. In case of failure the CosmosPagedFlux will error.

      Type Parameters:
      T - the type parameter.
      Parameters:
      querySpec - the SQL query specification.
      options - the query request options.
      classType - the class type.
      Returns:
      a CosmosPagedFlux containing one or several feed response pages of the obtained items or an error.
    • queryChangeFeed

      @Beta(value=V4_12_0, warningText="Preview API - subject to change in non-backwards compatible way") public <T> CosmosPagedFlux<T> queryChangeFeed(CosmosChangeFeedRequestOptions options, Class<T> classType)
      Query for items in the change feed of the current container using the CosmosChangeFeedRequestOptions.

      After subscription the operation will be performed. The Flux will contain one or several feed response of the obtained items. In case of failure the CosmosPagedFlux will error.

      Type Parameters:
      T - the type parameter.
      Parameters:
      options - the change feed request options.
      classType - the class type.
      Returns:
      a CosmosPagedFlux containing one or several feed response pages of the obtained items or an error.
    • executeCosmosBatch

      public Mono<CosmosBatchResponse> executeCosmosBatch(CosmosBatch cosmosBatch)
      Executes the transactional batch.
      Parameters:
      cosmosBatch - Batch having list of operation and partition key which will be executed by this container.
      Returns:
      A Mono response which contains details of execution of the transactional batch.

      If the transactional batch executes successfully, the value returned by CosmosBatchResponse.getStatusCode() on the response returned will be set to 200}.

      If an operation within the transactional batch fails during execution, no changes from the batch will be committed and the status of the failing operation is made available by CosmosBatchResponse.getStatusCode() or by the exception. To obtain information about the operations that failed in case of some user error like conflict, not found etc, the response can be enumerated. This returns CosmosBatchOperationResult instances corresponding to each operation in the transactional batch in the order they were added to the transactional batch. For a result corresponding to an operation within the transactional batch, use CosmosBatchOperationResult.getStatusCode() to access the status of the operation. If the operation was not executed or it was aborted due to the failure of another operation within the transactional batch, the value of this field will be 424; for the operation that caused the batch to abort, the value of this field will indicate the cause of failure.

      If there are issues such as request timeouts, Gone, session not available, network failure or if the service somehow returns 5xx then the Mono will return error instead of CosmosBatchResponse.

      Use CosmosBatchResponse.isSuccessStatusCode() on the response returned to ensure that the transactional batch succeeded.

    • executeCosmosBatch

      public Mono<CosmosBatchResponse> executeCosmosBatch(CosmosBatch cosmosBatch, CosmosBatchRequestOptions requestOptions)
      Executes the transactional batch.
      Parameters:
      cosmosBatch - Batch having list of operation and partition key which will be executed by this container.
      requestOptions - Options that apply specifically to batch request.
      Returns:
      A Mono response which contains details of execution of the transactional batch.

      If the transactional batch executes successfully, the value returned by CosmosBatchResponse.getStatusCode() on the response returned will be set to 200}.

      If an operation within the transactional batch fails during execution, no changes from the batch will be committed and the status of the failing operation is made available by CosmosBatchResponse.getStatusCode() or by the exception. To obtain information about the operations that failed in case of some user error like conflict, not found etc, the response can be enumerated. This returns CosmosBatchOperationResult instances corresponding to each operation in the transactional batch in the order they were added to the transactional batch. For a result corresponding to an operation within the transactional batch, use CosmosBatchOperationResult.getStatusCode() to access the status of the operation. If the operation was not executed or it was aborted due to the failure of another operation within the transactional batch, the value of this field will be 424; for the operation that caused the batch to abort, the value of this field will indicate the cause of failure.

      If there are issues such as request timeouts, Gone, session not available, network failure or if the service somehow returns 5xx then the Mono will return error instead of CosmosBatchResponse.

      Use CosmosBatchResponse.isSuccessStatusCode() on the response returned to ensure that the transactional batch succeeded.

    • executeBulkOperations

      public <TContext> Flux<CosmosBulkOperationResponse<TContext>> executeBulkOperations(Flux<CosmosItemOperation> operations)
      Executes flux of operations in Bulk.
      Type Parameters:
      TContext - The context for the bulk processing.
      Parameters:
      operations - Flux of operation which will be executed by this container.
      Returns:
      A Flux of CosmosBulkOperationResponse which contains operation and it's response or exception.

      To create a operation which can be executed here, use CosmosBulkOperations. For eg. for a upsert operation use CosmosBulkOperations.getUpsertItemOperation(Object, PartitionKey)

      We can get the corresponding operation using CosmosBulkOperationResponse.getOperation() and it's response using CosmosBulkOperationResponse.getResponse(). If the operation was executed successfully, the value returned by CosmosBulkItemResponse.isSuccessStatusCode() will be true. To get actual status use CosmosBulkItemResponse.getStatusCode().

      To check if the operation had any exception, use CosmosBulkOperationResponse.getException() to get the exception.
    • executeBulkOperations

      public <TContext> Flux<CosmosBulkOperationResponse<TContext>> executeBulkOperations(Flux<CosmosItemOperation> operations, CosmosBulkExecutionOptions bulkOptions)
      Executes flux of operations in Bulk.
      Type Parameters:
      TContext - The context for the bulk processing.
      Parameters:
      operations - Flux of operation which will be executed by this container.
      bulkOptions - Options that apply for this Bulk request which specifies options regarding execution like concurrency, batching size, interval and context.
      Returns:
      A Flux of CosmosBulkOperationResponse which contains operation and it's response or exception.

      To create a operation which can be executed here, use CosmosBulkOperations. For eg. for a upsert operation use CosmosBulkOperations.getUpsertItemOperation(Object, PartitionKey)

      We can get the corresponding operation using CosmosBulkOperationResponse.getOperation() and it's response using CosmosBulkOperationResponse.getResponse(). If the operation was executed successfully, the value returned by CosmosBulkItemResponse.isSuccessStatusCode() will be true. To get actual status use CosmosBulkItemResponse.getStatusCode().

      To check if the operation had any exception, use CosmosBulkOperationResponse.getException() to get the exception.
    • readItem

      public <T> Mono<CosmosItemResponse<T>> readItem(String itemId, PartitionKey partitionKey, Class<T> itemType)
      Reads an item.

      After subscription the operation will be performed. The Mono upon successful completion will contain an item response with the read item.

      Type Parameters:
      T - the type parameter.
      Parameters:
      itemId - the item id.
      partitionKey - the partition key.
      itemType - the item type.
      Returns:
      an Mono containing the Cosmos item response with the read item or an error.
    • readItem

      public <T> Mono<CosmosItemResponse<T>> readItem(String itemId, PartitionKey partitionKey, CosmosItemRequestOptions options, Class<T> itemType)
      Reads an item using a configured CosmosItemRequestOptions.

      After subscription the operation will be performed. The Mono upon successful completion will contain a Cosmos item response with the read item.

      Type Parameters:
      T - the type parameter.
      Parameters:
      itemId - the item id.
      partitionKey - the partition key.
      options - the request CosmosItemRequestOptions.
      itemType - the item type.
      Returns:
      an Mono containing the Cosmos item response with the read item or an error.
    • readMany

      public <T> Mono<FeedResponse<T>> readMany(List<CosmosItemIdentity> itemIdentityList, Class<T> classType)
      Reads many documents.
      Type Parameters:
      T - the type parameter
      Parameters:
      itemIdentityList - CosmosItem id and partition key tuple of items that that needs to be read
      classType - class type
      Returns:
      a Mono with feed response of cosmos items
    • readMany

      public <T> Mono<FeedResponse<T>> readMany(List<CosmosItemIdentity> itemIdentityList, String sessionToken, Class<T> classType)
      Reads many documents.
      Type Parameters:
      T - the type parameter
      Parameters:
      itemIdentityList - CosmosItem id and partition key tuple of items that that needs to be read
      sessionToken - the optional Session token - null if the read can be made without specific session token
      classType - class type
      Returns:
      a Mono with feed response of cosmos items
    • readAllItems

      public <T> CosmosPagedFlux<T> readAllItems(PartitionKey partitionKey, Class<T> classType)
      Reads all the items of a logical partition

      After subscription the operation will be performed. The CosmosPagedFlux will contain one or several feed responses of the read Cosmos items. In case of failure the CosmosPagedFlux will error.

      Type Parameters:
      T - the type parameter.
      Parameters:
      partitionKey - the partition key value of the documents that need to be read
      classType - the class type.
      Returns:
      a CosmosPagedFlux containing one or several feed response pages of the read Cosmos items or an error.
    • readAllItems

      public <T> CosmosPagedFlux<T> readAllItems(PartitionKey partitionKey, CosmosQueryRequestOptions options, Class<T> classType)
      Reads all the items of a logical partition

      After subscription the operation will be performed. The CosmosPagedFlux will contain one or several feed responses of the read Cosmos items. In case of failure the CosmosPagedFlux will error.

      Type Parameters:
      T - the type parameter.
      Parameters:
      partitionKey - the partition key value of the documents that need to be read
      options - the feed options.
      classType - the class type.
      Returns:
      a CosmosPagedFlux containing one or several feed response pages of the read Cosmos items or an error.
    • replaceItem

      public <T> Mono<CosmosItemResponse<T>> replaceItem(T item, String itemId, PartitionKey partitionKey)
      Replaces an item with the passed in item.

      After subscription the operation will be performed. The Mono upon successful completion will contain a single Cosmos item response with the replaced item.

      Type Parameters:
      T - the type parameter.
      Parameters:
      item - the item to replace (containing the item id).
      itemId - the item id.
      partitionKey - the partition key.
      Returns:
      an Mono containing the Cosmos item resource response with the replaced item or an error.
    • replaceItem

      public <T> Mono<CosmosItemResponse<T>> replaceItem(T item, String itemId, PartitionKey partitionKey, CosmosItemRequestOptions options)
      Replaces an item with the passed in item.

      After subscription the operation will be performed. The Mono upon successful completion will contain a single Cosmos item response with the replaced item.

      Type Parameters:
      T - the type parameter.
      Parameters:
      item - the item to replace (containing the item id).
      itemId - the item id.
      partitionKey - the partition key.
      options - the request comosItemRequestOptions.
      Returns:
      an Mono containing the Cosmos item resource response with the replaced item or an error.
    • patchItem

      public <T> Mono<CosmosItemResponse<T>> patchItem(String itemId, PartitionKey partitionKey, CosmosPatchOperations cosmosPatchOperations, Class<T> itemType)
      Run patch operations on an Item.

      After subscription the operation will be performed. The Mono upon successful completion will contain a single Cosmos item response with the patched item.

      Type Parameters:
      T - the type parameter.
      Parameters:
      itemId - the item id.
      partitionKey - the partition key.
      cosmosPatchOperations - Represents a container having list of operations to be sequentially applied to the referred Cosmos item.
      itemType - the item type.
      Returns:
      an Mono containing the Cosmos item resource response with the patched item or an error.
    • patchItem

      public <T> Mono<CosmosItemResponse<T>> patchItem(String itemId, PartitionKey partitionKey, CosmosPatchOperations cosmosPatchOperations, CosmosPatchItemRequestOptions options, Class<T> itemType)
      Run patch operations on an Item.

      After subscription the operation will be performed. The Mono upon successful completion will contain a single Cosmos item response with the patched item.

      Type Parameters:
      T - the type parameter.
      Parameters:
      itemId - the item id.
      partitionKey - the partition key.
      cosmosPatchOperations - Represents a container having list of operations to be sequentially applied to the referred Cosmos item.
      options - the request options.
      itemType - the item type.
      Returns:
      an Mono containing the Cosmos item resource response with the patched item or an error.
    • deleteItem

      public Mono<CosmosItemResponse<Object>> deleteItem(String itemId, PartitionKey partitionKey)
      Deletes an item.

      After subscription the operation will be performed. The Mono upon successful completion will contain a single Cosmos item response for the deleted item.

      Parameters:
      itemId - the item id.
      partitionKey - the partition key.
      Returns:
      an Mono containing the Cosmos item resource response.
    • deleteItem

      public Mono<CosmosItemResponse<Object>> deleteItem(String itemId, PartitionKey partitionKey, CosmosItemRequestOptions options)
      Deletes the item.

      After subscription the operation will be performed. The Mono upon successful completion will contain a single Cosmos item response for the deleted item.

      Parameters:
      itemId - id of the item.
      partitionKey - partitionKey of the item.
      options - the request options.
      Returns:
      an Mono containing the Cosmos item resource response.
    • deleteAllItemsByPartitionKey

      @Beta(value=V4_19_0, warningText="Preview API - subject to change in non-backwards compatible way") public Mono<CosmosItemResponse<Object>> deleteAllItemsByPartitionKey(PartitionKey partitionKey, CosmosItemRequestOptions options)
      Deletes all items in the Container with the specified partitionKey value. Starts an asynchronous Cosmos DB background operation which deletes all items in the Container with the specified value. The asynchronous Cosmos DB background operation runs using a percentage of user RUs. After subscription the operation will be performed. The Mono upon successful completion will contain a single Cosmos item response for all the deleted items.
      Parameters:
      partitionKey - partitionKey of the item.
      options - the request options.
      Returns:
      an Mono containing the Cosmos item resource response.
    • deleteItem

      public <T> Mono<CosmosItemResponse<Object>> deleteItem(T item, CosmosItemRequestOptions options)
      Deletes the item.

      After subscription the operation will be performed. The Mono upon successful completion will contain a single Cosmos item response for the deleted item.

      Type Parameters:
      T - the type parameter.
      Parameters:
      item - item to be deleted.
      options - the request options.
      Returns:
      an Mono containing the Cosmos item resource response.
    • getScripts

      public CosmosAsyncScripts getScripts()
      Gets a CosmosAsyncScripts using the current container as context.

      This can be further used to perform various operations on Cosmos scripts.

      Returns:
      the CosmosAsyncScripts.
    • readAllConflicts

      Lists all the conflicts in the current container.
      Parameters:
      options - the query request options
      Returns:
      a CosmosPagedFlux containing one or several feed response pages of the obtained conflicts or an error.
    • queryConflicts

      public CosmosPagedFlux<CosmosConflictProperties> queryConflicts(String query)
      Queries all the conflicts in the current container.
      Parameters:
      query - the query.
      Returns:
      a CosmosPagedFlux containing one or several feed response pages of the obtained conflicts or an error.
    • queryConflicts

      Queries all the conflicts in the current container.
      Parameters:
      query - the query.
      options - the query request options.
      Returns:
      a CosmosPagedFlux containing one or several feed response pages of the obtained conflicts or an error.
    • getConflict

      public CosmosAsyncConflict getConflict(String id)
      Gets a CosmosAsyncConflict object using current container for context.
      Parameters:
      id - the id of the Cosmos conflict.
      Returns:
      a Cosmos conflict.
    • replaceThroughput

      public Mono<ThroughputResponse> replaceThroughput(ThroughputProperties throughputProperties)
      Replace the throughput.
      Parameters:
      throughputProperties - the throughput properties.
      Returns:
      the mono containing throughput response.
    • readThroughput

      public Mono<ThroughputResponse> readThroughput()
      Read the throughput provisioned for the current container.
      Returns:
      the mono containing throughput response.
    • getDatabase

      public CosmosAsyncDatabase getDatabase()
      Gets the parent CosmosAsyncDatabase for the current container.
      Returns:
      the CosmosAsyncDatabase.
    • getFeedRanges

      @Beta(value=V4_9_0, warningText="Preview API - subject to change in non-backwards compatible way") public Mono<List<FeedRange>> getFeedRanges()
      Obtains a list of FeedRange that can be used to parallelize Feed operations.
      Returns:
      An unmodifiable list of FeedRange
    • enableLocalThroughputControlGroup

      @Beta(value=V4_13_0, warningText="Preview API - subject to change in non-backwards compatible way") public void enableLocalThroughputControlGroup(ThroughputControlGroupConfig groupConfig)
      Enable the throughput control group with local control mode.
       ThroughputControlGroupConfig groupConfig =
           new ThroughputControlGroupConfigBuilder()
               .groupName("localControlGroup")
               .targetThroughputThreshold(0.1)
               .build();
      
       container.enableLocalThroughputControlGroup(groupConfig);
       
      Parameters:
      groupConfig - A ThroughputControlGroupConfig.
    • enableGlobalThroughputControlGroup

      @Beta(value=V4_13_0, warningText="Preview API - subject to change in non-backwards compatible way") public void enableGlobalThroughputControlGroup(ThroughputControlGroupConfig groupConfig, GlobalThroughputControlConfig globalControlConfig)
      Enable the throughput control group with global control mode. The defined throughput limit will be shared across different clients.
       ThroughputControlGroupConfig groupConfig =
           new ThroughputControlGroupConfigBuilder()
               .groupName("localControlGroup")
               .targetThroughputThreshold(0.1)
               .build();
      
       GlobalThroughputControlConfig globalControlConfig =
           this.client.createGlobalThroughputControlConfigBuilder(database.getId(), container.getId())
               .setControlItemRenewInterval(Duration.ofSeconds(5))
               .setControlItemExpireInterval(Duration.ofSeconds(10))
               .build();
      
       container.enableGlobalThroughputControlGroup(groupConfig, globalControlConfig);
       
      Parameters:
      groupConfig - The throughput control group configuration, see GlobalThroughputControlGroup.
      globalControlConfig - The global throughput control configuration, see GlobalThroughputControlConfig.