diff --git a/NEXT_CHANGELOG.md b/NEXT_CHANGELOG.md index 74791cd46..4fa1ef0f3 100644 --- a/NEXT_CHANGELOG.md +++ b/NEXT_CHANGELOG.md @@ -4,10 +4,14 @@ ### New Features and Improvements +* Added `Paginator.newTokenPagination(...)` and `Paginator.newOffsetPagination(...)` factory methods in `com.databricks.sdk.support`, which make the pagination strategy explicit. The `Paginator` constructor is now deprecated in favor of these; it keeps its previous (offset/limit) behavior. + ### Breaking Changes ### Bug Fixes +* Fixed `Paginator` silently dropping results when a token-paginated response returned an empty page with a non-empty `next_page_token`. List methods (e.g. `tables().list()`) now keep paging until the page token is absent instead of stopping at the first empty page. + ### Security Vulnerabilities ### Documentation diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/apps/AppsAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/apps/AppsAPI.java index d4412af75..e40f6499c 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/apps/AppsAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/apps/AppsAPI.java @@ -356,7 +356,7 @@ public AppUpdate getUpdate(GetAppUpdateRequest request) { /** Lists all apps in the workspace. */ public Iterable list(ListAppsRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::list, ListAppsResponse::getApps, @@ -375,7 +375,7 @@ public Iterable listDeployments(String appName) { /** Lists all app deployments for the app with the supplied name. */ public Iterable listDeployments(ListAppDeploymentsRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::listDeployments, ListAppDeploymentsResponse::getAppDeployments, @@ -390,7 +390,7 @@ public Iterable listDeployments(ListAppDeploymentsRequest request /** Lists all app spaces in the workspace. */ public Iterable listSpaces(ListSpacesRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::listSpaces, ListSpacesResponse::getSpaces, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/apps/AppsSettingsAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/apps/AppsSettingsAPI.java index b9f117990..4097b33fb 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/apps/AppsSettingsAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/apps/AppsSettingsAPI.java @@ -49,7 +49,7 @@ public CustomTemplate getCustomTemplate(GetCustomTemplateRequest request) { /** Lists all custom templates in the workspace. */ public Iterable listCustomTemplates(ListCustomTemplatesRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::listCustomTemplates, ListCustomTemplatesResponse::getTemplates, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/billing/BudgetPolicyAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/billing/BudgetPolicyAPI.java index 3ef7ee9e6..92f5559c5 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/billing/BudgetPolicyAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/billing/BudgetPolicyAPI.java @@ -51,7 +51,7 @@ public BudgetPolicy get(GetBudgetPolicyRequest request) { * Lists all policies. Policies are returned in the alphabetically ascending order of their names. */ public Iterable list(ListBudgetPoliciesRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::list, ListBudgetPoliciesResponse::getPolicies, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/billing/BudgetsAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/billing/BudgetsAPI.java index f00b6a28d..9683a04a0 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/billing/BudgetsAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/billing/BudgetsAPI.java @@ -62,7 +62,7 @@ public GetBudgetConfigurationResponse get(GetBudgetConfigurationRequest request) /** Gets all budgets associated with this account. */ public Iterable list(ListBudgetConfigurationsRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::list, ListBudgetConfigurationsResponse::getBudgets, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/billing/LogDeliveryAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/billing/LogDeliveryAPI.java index fc70d6b6a..28364e50f 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/billing/LogDeliveryAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/billing/LogDeliveryAPI.java @@ -123,7 +123,7 @@ public GetLogDeliveryConfigurationResponse get(GetLogDeliveryRequest request) { /** Gets all Databricks log delivery configurations associated with an account specified by ID. */ public Iterable list(ListLogDeliveryRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::list, WrappedLogDeliveryConfigurations::getLogDeliveryConfigurations, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/bundle/BundleAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/bundle/BundleAPI.java index 66379d56f..21c50a839 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/bundle/BundleAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/bundle/BundleAPI.java @@ -135,7 +135,7 @@ public HeartbeatResponse heartbeat(HeartbeatRequest request) { /** Lists deployments in the workspace. */ public Iterable listDeployments(ListDeploymentsRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::listDeployments, ListDeploymentsResponse::getDeployments, @@ -154,7 +154,7 @@ public Iterable listOperations(String parent) { /** Lists resource operations under a version. */ public Iterable listOperations(ListOperationsRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::listOperations, ListOperationsResponse::getOperations, @@ -173,7 +173,7 @@ public Iterable listResources(String parent) { /** Lists resources under a deployment. */ public Iterable listResources(ListResourcesRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::listResources, ListResourcesResponse::getResources, @@ -192,7 +192,7 @@ public Iterable listVersions(String parent) { /** Lists versions under a deployment, ordered by version_id descending (most recent first). */ public Iterable listVersions(ListVersionsRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::listVersions, ListVersionsResponse::getVersions, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/AccountMetastoreAssignmentsAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/AccountMetastoreAssignmentsAPI.java index fdd574273..a935ad6cd 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/AccountMetastoreAssignmentsAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/AccountMetastoreAssignmentsAPI.java @@ -62,7 +62,7 @@ public Iterable list(String metastoreId) { /** Gets a list of all Databricks workspace IDs that have been assigned to given metastore. */ public Iterable list(ListAccountMetastoreAssignmentsRequest request) { - return new Paginator<>( + return Paginator.newOffsetPagination( request, impl::list, ListAccountMetastoreAssignmentsResponse::getWorkspaceIds, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/AccountMetastoresAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/AccountMetastoresAPI.java index c0cccb1bd..2c57e67be 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/AccountMetastoresAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/AccountMetastoresAPI.java @@ -52,7 +52,7 @@ public AccountsGetMetastoreResponse get(GetAccountMetastoreRequest request) { /** Gets all Unity Catalog metastores associated with an account specified by ID. */ public Iterable list() { - return new Paginator<>( + return Paginator.newOffsetPagination( null, (Void v) -> impl.list(), AccountsListMetastoresResponse::getMetastores, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/AccountStorageCredentialsAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/AccountStorageCredentialsAPI.java index 8c9f78d97..8bee609fa 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/AccountStorageCredentialsAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/AccountStorageCredentialsAPI.java @@ -74,7 +74,7 @@ public Iterable list(String metastoreId) { /** Gets a list of all storage credentials that have been assigned to given metastore. */ public Iterable list(ListAccountStorageCredentialsRequest request) { - return new Paginator<>( + return Paginator.newOffsetPagination( request, impl::list, ListAccountStorageCredentialsResponse::getStorageCredentials, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/CatalogsAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/CatalogsAPI.java index 2b0b14808..ad279aa1d 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/CatalogsAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/CatalogsAPI.java @@ -83,7 +83,7 @@ public Iterable list(ListCatalogsRequest request) { if (request.getMaxResults() == null) { request.setMaxResults(0L); } - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::list, ListCatalogsResponse::getCatalogs, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ConnectionsAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ConnectionsAPI.java index ebe4368a4..95d7b10c7 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ConnectionsAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ConnectionsAPI.java @@ -78,7 +78,7 @@ public Iterable list(ListConnectionsRequest request) { if (request.getMaxResults() == null) { request.setMaxResults(0L); } - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::list, ListConnectionsResponse::getConnections, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/CredentialsAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/CredentialsAPI.java index a76a01d11..149b025f6 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/CredentialsAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/CredentialsAPI.java @@ -90,7 +90,7 @@ public CredentialInfo getCredential(GetCredentialRequest request) { * absent, which is the only indication that the end of results has been reached. */ public Iterable listCredentials(ListCredentialsRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::listCredentials, ListCredentialsResponse::getCredentials, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/EntityTagAssignmentsAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/EntityTagAssignmentsAPI.java index af6be2968..e1e425506 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/EntityTagAssignmentsAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/EntityTagAssignmentsAPI.java @@ -97,7 +97,7 @@ public Iterable list(String entityType, String entityName) * absent, which is the only indication that the end of results has been reached. */ public Iterable list(ListEntityTagAssignmentsRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::list, ListEntityTagAssignmentsResponse::getTagAssignments, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ExternalLineageAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ExternalLineageAPI.java index e8578ce85..4b336b608 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ExternalLineageAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ExternalLineageAPI.java @@ -69,7 +69,7 @@ public Iterable listExternalLineageRelationships( */ public Iterable listExternalLineageRelationships( ListExternalLineageRelationshipsRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::listExternalLineageRelationships, ListExternalLineageRelationshipsResponse::getExternalLineageRelationships, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ExternalLocationsAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ExternalLocationsAPI.java index 625c0454d..dcf5f6634 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ExternalLocationsAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ExternalLocationsAPI.java @@ -87,7 +87,7 @@ public Iterable list(ListExternalLocationsRequest request) if (request.getMaxResults() == null) { request.setMaxResults(0L); } - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::list, ListExternalLocationsResponse::getExternalLocations, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ExternalMetadataAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ExternalMetadataAPI.java index 10cae669e..c2b25c013 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ExternalMetadataAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ExternalMetadataAPI.java @@ -72,7 +72,7 @@ public ExternalMetadata getExternalMetadata(GetExternalMetadataRequest request) * specific ordering of the elements in the array. */ public Iterable listExternalMetadata(ListExternalMetadataRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::listExternalMetadata, ListExternalMetadataResponse::getExternalMetadata, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/FunctionsAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/FunctionsAPI.java index da719042a..6de23cd0e 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/FunctionsAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/FunctionsAPI.java @@ -100,7 +100,7 @@ public Iterable list(ListFunctionsRequest request) { if (request.getMaxResults() == null) { request.setMaxResults(0L); } - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::list, ListFunctionsResponse::getFunctions, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/MetastoresAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/MetastoresAPI.java index 18a7d68f1..4704e9712 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/MetastoresAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/MetastoresAPI.java @@ -99,7 +99,7 @@ public Iterable list(ListMetastoresRequest request) { if (request.getMaxResults() == null) { request.setMaxResults(0L); } - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::list, ListMetastoresResponse::getMetastores, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ModelVersionsAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ModelVersionsAPI.java index 9708c466c..f59ca853e 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ModelVersionsAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ModelVersionsAPI.java @@ -102,7 +102,7 @@ public Iterable list(String fullName) { * absent, which is the only indication that the end of results has been reached. */ public Iterable list(ListModelVersionsRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::list, ListModelVersionsResponse::getModelVersions, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/PoliciesAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/PoliciesAPI.java index 8a9a01e54..1bfa8d190 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/PoliciesAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/PoliciesAPI.java @@ -82,7 +82,7 @@ public Iterable listPolicies(String onSecurableType, String onSecura * absent, which is the only indication that the end of results has been reached. */ public Iterable listPolicies(ListPoliciesRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::listPolicies, ListPoliciesResponse::getPolicies, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/RegisteredModelsAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/RegisteredModelsAPI.java index ae9172cf1..c7737bf48 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/RegisteredModelsAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/RegisteredModelsAPI.java @@ -130,7 +130,7 @@ public RegisteredModelInfo get(GetRegisteredModelRequest request) { * absent, which is the only indication that the end of results has been reached. */ public Iterable list(ListRegisteredModelsRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::list, ListRegisteredModelsResponse::getRegisteredModels, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ResourceQuotasAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ResourceQuotasAPI.java index 191e7d4ce..f392e0cd8 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ResourceQuotasAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ResourceQuotasAPI.java @@ -60,7 +60,7 @@ public GetQuotaResponse getQuota(GetQuotaRequest request) { * absent, which is the only indication that the end of results has been reached. */ public Iterable listQuotas(ListQuotasRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::listQuotas, ListQuotasResponse::getQuotas, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/SchemasAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/SchemasAPI.java index c258266b0..28bf44a5c 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/SchemasAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/SchemasAPI.java @@ -84,7 +84,7 @@ public Iterable list(ListSchemasRequest request) { if (request.getMaxResults() == null) { request.setMaxResults(0L); } - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::list, ListSchemasResponse::getSchemas, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/SecretsUcAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/SecretsUcAPI.java index cbaa2c120..b9569f509 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/SecretsUcAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/SecretsUcAPI.java @@ -85,7 +85,7 @@ public Secret getSecret(GetSecretRequest request) { * to retrieve subsequent pages. */ public Iterable listSecrets(ListSecretsRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::listSecrets, ListSecretsResponse::getSecrets, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/StorageCredentialsAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/StorageCredentialsAPI.java index 7fb47bc89..ff05dc3ec 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/StorageCredentialsAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/StorageCredentialsAPI.java @@ -89,7 +89,7 @@ public Iterable list(ListStorageCredentialsRequest reques if (request.getMaxResults() == null) { request.setMaxResults(0L); } - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::list, ListStorageCredentialsResponse::getStorageCredentials, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/SystemSchemasAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/SystemSchemasAPI.java index 7fc499b01..03c34a27e 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/SystemSchemasAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/SystemSchemasAPI.java @@ -69,7 +69,7 @@ public Iterable list(ListSystemSchemasRequest request) { if (request.getMaxResults() == null) { request.setMaxResults(0L); } - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::list, ListSystemSchemasResponse::getSchemas, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/TablesAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/TablesAPI.java index abe09ac9b..11114153c 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/TablesAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/TablesAPI.java @@ -133,7 +133,7 @@ public Iterable list(ListTablesRequest request) { if (request.getMaxResults() == null) { request.setMaxResults(0L); } - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::list, ListTablesResponse::getTables, @@ -167,7 +167,7 @@ public Iterable listSummaries(String catalogName) { * absent, which is the only indication that the end of results has been reached. */ public Iterable listSummaries(ListSummariesRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::listSummaries, ListTableSummariesResponse::getTables, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/VolumesAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/VolumesAPI.java index 8b4f922c4..ebbf25311 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/VolumesAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/VolumesAPI.java @@ -89,7 +89,7 @@ public Iterable list(String catalogName, String schemaName) { * absent, which is the only indication that the end of results has been reached. */ public Iterable list(ListVolumesRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::list, ListVolumesResponseContent::getVolumes, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/WorkspaceBindingsAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/WorkspaceBindingsAPI.java index a90ac838d..ad41bcda5 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/WorkspaceBindingsAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/WorkspaceBindingsAPI.java @@ -76,7 +76,7 @@ public Iterable getBindings(GetBindingsRequest request) { if (request.getMaxResults() == null) { request.setMaxResults(0L); } - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::getBindings, GetWorkspaceBindingsResponse::getBindings, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/cleanrooms/CleanRoomAssetRevisionsAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/cleanrooms/CleanRoomAssetRevisionsAPI.java index 971e60ca1..1e58cdda7 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/cleanrooms/CleanRoomAssetRevisionsAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/cleanrooms/CleanRoomAssetRevisionsAPI.java @@ -53,7 +53,7 @@ public Iterable list( /** List revisions for an asset */ public Iterable list(ListCleanRoomAssetRevisionsRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::list, ListCleanRoomAssetRevisionsResponse::getRevisions, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/cleanrooms/CleanRoomAssetsAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/cleanrooms/CleanRoomAssetsAPI.java index 14f374a29..823c0bceb 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/cleanrooms/CleanRoomAssetsAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/cleanrooms/CleanRoomAssetsAPI.java @@ -76,7 +76,7 @@ public Iterable list(String cleanRoomName) { /** List assets. */ public Iterable list(ListCleanRoomAssetsRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::list, ListCleanRoomAssetsResponse::getAssets, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/cleanrooms/CleanRoomAutoApprovalRulesAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/cleanrooms/CleanRoomAutoApprovalRulesAPI.java index 6d418437e..9df0a8a30 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/cleanrooms/CleanRoomAutoApprovalRulesAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/cleanrooms/CleanRoomAutoApprovalRulesAPI.java @@ -62,7 +62,7 @@ public Iterable list(String cleanRoomName) { /** List all auto-approval rules for the caller */ public Iterable list(ListCleanRoomAutoApprovalRulesRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::list, ListCleanRoomAutoApprovalRulesResponse::getRules, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/cleanrooms/CleanRoomTaskRunsAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/cleanrooms/CleanRoomTaskRunsAPI.java index 1a771b2e9..e20c6b853 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/cleanrooms/CleanRoomTaskRunsAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/cleanrooms/CleanRoomTaskRunsAPI.java @@ -30,7 +30,7 @@ public Iterable list(String cleanRoomName) { /** List all the historical notebook task runs in a clean room. */ public Iterable list(ListCleanRoomNotebookTaskRunsRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::list, ListCleanRoomNotebookTaskRunsResponse::getRuns, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/cleanrooms/CleanRoomsAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/cleanrooms/CleanRoomsAPI.java index 077ad9b01..f33cc5551 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/cleanrooms/CleanRoomsAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/cleanrooms/CleanRoomsAPI.java @@ -123,7 +123,7 @@ public CleanRoom get(GetCleanRoomRequest request) { * returned. */ public Iterable list(ListCleanRoomsRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::list, ListCleanRoomsResponse::getCleanRooms, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/compute/ClusterPoliciesAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/compute/ClusterPoliciesAPI.java index 6bd533283..b05b19567 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/compute/ClusterPoliciesAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/compute/ClusterPoliciesAPI.java @@ -104,7 +104,7 @@ public ClusterPolicyPermissions getPermissions(GetClusterPolicyPermissionsReques /** Returns a list of policies accessible by the requesting user. */ public Iterable list(ListClusterPoliciesRequest request) { - return new Paginator<>( + return Paginator.newOffsetPagination( request, impl::list, ListPoliciesResponse::getPolicies, response -> null); } diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/compute/ClustersAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/compute/ClustersAPI.java index 5c888b195..26a9c8dd7 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/compute/ClustersAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/compute/ClustersAPI.java @@ -215,7 +215,7 @@ public Wait edit(EditCluster request) { * page of events. */ public Iterable events(GetEvents request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::events, GetEventsResponse::getEvents, response -> response.getNextPage()); } @@ -255,7 +255,7 @@ public ClusterPermissions getPermissions(GetClusterPermissionsRequest request) { * last 30 days. Clusters terminated prior to this period are not included. */ public Iterable list(ListClustersRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::list, ListClustersResponse::getClusters, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/compute/GlobalInitScriptsAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/compute/GlobalInitScriptsAPI.java index a0b8c0356..d0e9f31d8 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/compute/GlobalInitScriptsAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/compute/GlobalInitScriptsAPI.java @@ -61,7 +61,7 @@ public GlobalInitScriptDetailsWithContent get(GetGlobalInitScriptRequest request * global init script](:method:globalinitscripts/get) operation. */ public Iterable list() { - return new Paginator<>( + return Paginator.newOffsetPagination( null, (Void v) -> impl.list(), ListGlobalInitScriptsResponse::getScripts, response -> null); } diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/compute/InstancePoolsAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/compute/InstancePoolsAPI.java index 38cdd03bf..5a38a18e2 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/compute/InstancePoolsAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/compute/InstancePoolsAPI.java @@ -97,7 +97,7 @@ public InstancePoolPermissions getPermissions(GetInstancePoolPermissionsRequest /** Gets a list of instance pools with their statistics. */ public Iterable list() { - return new Paginator<>( + return Paginator.newOffsetPagination( null, (Void v) -> impl.list(), ListInstancePools::getInstancePools, response -> null); } diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/compute/InstanceProfilesAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/compute/InstanceProfilesAPI.java index d4c6c28b3..f6582bbba 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/compute/InstanceProfilesAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/compute/InstanceProfilesAPI.java @@ -66,7 +66,7 @@ public void edit(InstanceProfile request) { *

This API is available to all users. */ public Iterable list() { - return new Paginator<>( + return Paginator.newOffsetPagination( null, (Void v) -> impl.list(), ListInstanceProfilesResponse::getInstanceProfiles, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/compute/LibrariesAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/compute/LibrariesAPI.java index b7e736ae8..488e06abb 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/compute/LibrariesAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/compute/LibrariesAPI.java @@ -45,7 +45,7 @@ public LibrariesAPI(LibrariesService mock) { * installed on this cluster via the API or the libraries UI. */ public Iterable allClusterStatuses() { - return new Paginator<>( + return Paginator.newOffsetPagination( null, (Void v) -> impl.allClusterStatuses(), ListAllClusterLibraryStatusesResponse::getStatuses, @@ -64,7 +64,7 @@ public Iterable clusterStatus(String clusterId) { * this cluster or, but are now marked for removal, in no particular order, are returned last. */ public Iterable clusterStatus(ClusterStatus request) { - return new Paginator<>( + return Paginator.newOffsetPagination( request, impl::clusterStatus, ClusterLibraryStatuses::getLibraryStatuses, response -> null); } diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/compute/PolicyComplianceForClustersAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/compute/PolicyComplianceForClustersAPI.java index c70aea53f..9933b1997 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/compute/PolicyComplianceForClustersAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/compute/PolicyComplianceForClustersAPI.java @@ -74,7 +74,7 @@ public Iterable listCompliance(String policyId) { * out of compliance if their policy was updated after the cluster was last edited. */ public Iterable listCompliance(ListClusterCompliancesRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::listCompliance, ListClusterCompliancesResponse::getClusters, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/compute/PolicyFamiliesAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/compute/PolicyFamiliesAPI.java index f0147ee76..e01e15536 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/compute/PolicyFamiliesAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/compute/PolicyFamiliesAPI.java @@ -48,7 +48,7 @@ public PolicyFamily get(GetPolicyFamilyRequest request) { * is paginated. */ public Iterable list(ListPolicyFamiliesRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::list, ListPolicyFamiliesResponse::getPolicyFamilies, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/dashboards/LakeviewAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/dashboards/LakeviewAPI.java index cfb035a8a..35d3ca246 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/dashboards/LakeviewAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/dashboards/LakeviewAPI.java @@ -109,7 +109,7 @@ public Subscription getSubscription(GetSubscriptionRequest request) { /** List dashboards. */ public Iterable list(ListDashboardsRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::list, ListDashboardsResponse::getDashboards, @@ -128,7 +128,7 @@ public Iterable listSchedules(String dashboardId) { /** List dashboard schedules. */ public Iterable listSchedules(ListSchedulesRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::listSchedules, ListSchedulesResponse::getSchedules, @@ -148,7 +148,7 @@ public Iterable listSubscriptions(String dashboardId, String sched /** List schedule subscriptions. */ public Iterable listSubscriptions(ListSubscriptionsRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::listSubscriptions, ListSubscriptionsResponse::getSubscriptions, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/database/DatabaseAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/database/DatabaseAPI.java index b8fbfaaae..18ac94420 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/database/DatabaseAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/database/DatabaseAPI.java @@ -212,7 +212,7 @@ public Iterable listDatabaseCatalogs(String instanceName) { /** This API is currently unimplemented, but exposed for Terraform support. */ public Iterable listDatabaseCatalogs(ListDatabaseCatalogsRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::listDatabaseCatalogs, ListDatabaseCatalogsResponse::getDatabaseCatalogs, @@ -238,7 +238,7 @@ public Iterable listDatabaseInstanceRoles(String instanceN */ public Iterable listDatabaseInstanceRoles( ListDatabaseInstanceRolesRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::listDatabaseInstanceRoles, ListDatabaseInstanceRolesResponse::getDatabaseInstanceRoles, @@ -253,7 +253,7 @@ public Iterable listDatabaseInstanceRoles( /** List Database Instances. */ public Iterable listDatabaseInstances(ListDatabaseInstancesRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::listDatabaseInstances, ListDatabaseInstancesResponse::getDatabaseInstances, @@ -274,7 +274,7 @@ public Iterable listSyncedDatabaseTables(String instanceNam /** This API is currently unimplemented, but exposed for Terraform support. */ public Iterable listSyncedDatabaseTables( ListSyncedDatabaseTablesRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::listSyncedDatabaseTables, ListSyncedDatabaseTablesResponse::getSyncedTables, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/dataquality/DataQualityAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/dataquality/DataQualityAPI.java index 620731811..2f0b7076c 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/dataquality/DataQualityAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/dataquality/DataQualityAPI.java @@ -166,7 +166,7 @@ public Refresh getRefresh(GetRefreshRequest request) { /** (Unimplemented) List data quality monitors. */ public Iterable listMonitor(ListMonitorRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::listMonitor, ListMonitorResponse::getMonitors, @@ -198,7 +198,7 @@ public Iterable listRefresh(String objectType, String objectId) { * **USE_CATALOG** on the schema's parent catalog, and **USE_SCHEMA** on the schema. */ public Iterable listRefresh(ListRefreshRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::listRefresh, ListRefreshResponse::getRefreshes, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/disasterrecovery/DisasterRecoveryAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/disasterrecovery/DisasterRecoveryAPI.java index 0075e7b18..7b52629ec 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/disasterrecovery/DisasterRecoveryAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/disasterrecovery/DisasterRecoveryAPI.java @@ -81,7 +81,7 @@ public Iterable listFailoverGroups(String parent) { /** List failover groups. */ public Iterable listFailoverGroups(ListFailoverGroupsRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::listFailoverGroups, ListFailoverGroupsResponse::getFailoverGroups, @@ -100,7 +100,7 @@ public Iterable listStableUrls(String parent) { /** List stable URLs for an account. */ public Iterable listStableUrls(ListStableUrlsRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::listStableUrls, ListStableUrlsResponse::getStableUrls, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/environments/EnvironmentsAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/environments/EnvironmentsAPI.java index c00f8101c..9ff5042e9 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/environments/EnvironmentsAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/environments/EnvironmentsAPI.java @@ -108,7 +108,7 @@ public WorkspaceBaseEnvironment getWorkspaceBaseEnvironment( */ public Iterable listWorkspaceBaseEnvironments( ListWorkspaceBaseEnvironmentsRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::listWorkspaceBaseEnvironments, ListWorkspaceBaseEnvironmentsResponse::getWorkspaceBaseEnvironments, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/files/DbfsAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/files/DbfsAPI.java index 3c5681fde..f50fc4a32 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/files/DbfsAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/files/DbfsAPI.java @@ -114,7 +114,8 @@ public Iterable list(String path) { * same functionality without timing out. */ public Iterable list(ListDbfsRequest request) { - return new Paginator<>(request, impl::list, ListStatusResponse::getFiles, response -> null); + return Paginator.newOffsetPagination( + request, impl::list, ListStatusResponse::getFiles, response -> null); } public void mkdirs(String path) { diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/files/FilesAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/files/FilesAPI.java index 2d2a86657..7a1de488d 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/files/FilesAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/files/FilesAPI.java @@ -125,7 +125,7 @@ public Iterable listDirectoryContents(String directoryPath) { * returns a HTTP 404 error. */ public Iterable listDirectoryContents(ListDirectoryContentsRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::listDirectoryContents, ListDirectoryResponse::getContents, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/AccountGroupsAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/AccountGroupsAPI.java index e54e978ee..b25e3dd1b 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/AccountGroupsAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/AccountGroupsAPI.java @@ -66,7 +66,7 @@ public Iterable list(ListAccountGroupsRequest request) { if (request.getCount() == null) { request.setCount(10000L); } - return new Paginator<>( + return Paginator.newOffsetPagination( request, impl::list, ListGroupsResponse::getResources, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/AccountGroupsV2API.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/AccountGroupsV2API.java index 741098068..7ac313a48 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/AccountGroupsV2API.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/AccountGroupsV2API.java @@ -67,7 +67,7 @@ public Iterable list(ListAccountGroupsRequest request) { if (request.getCount() == null) { request.setCount(10000L); } - return new Paginator<>( + return Paginator.newOffsetPagination( request, impl::list, ListAccountGroupsResponse::getResources, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/AccountServicePrincipalsAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/AccountServicePrincipalsAPI.java index 2f61b45c9..7e3b099dc 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/AccountServicePrincipalsAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/AccountServicePrincipalsAPI.java @@ -59,7 +59,7 @@ public Iterable list(ListAccountServicePrincipalsRequest reque if (request.getCount() == null) { request.setCount(10000L); } - return new Paginator<>( + return Paginator.newOffsetPagination( request, impl::list, ListServicePrincipalResponse::getResources, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/AccountServicePrincipalsV2API.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/AccountServicePrincipalsV2API.java index 42173e14a..cbac8a067 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/AccountServicePrincipalsV2API.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/AccountServicePrincipalsV2API.java @@ -59,7 +59,7 @@ public Iterable list(ListAccountServicePrincipalsReques if (request.getCount() == null) { request.setCount(10000L); } - return new Paginator<>( + return Paginator.newOffsetPagination( request, impl::list, ListAccountServicePrincipalsResponse::getResources, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/AccountUsersAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/AccountUsersAPI.java index 6763d07bc..c2f616923 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/AccountUsersAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/AccountUsersAPI.java @@ -69,7 +69,7 @@ public Iterable list(ListAccountUsersRequest request) { if (request.getCount() == null) { request.setCount(10000L); } - return new Paginator<>( + return Paginator.newOffsetPagination( request, impl::list, ListUsersResponse::getResources, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/AccountUsersV2API.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/AccountUsersV2API.java index af29f791a..4332aa564 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/AccountUsersV2API.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/AccountUsersV2API.java @@ -69,7 +69,7 @@ public Iterable list(ListAccountUsersRequest request) { if (request.getCount() == null) { request.setCount(10000L); } - return new Paginator<>( + return Paginator.newOffsetPagination( request, impl::list, ListAccountUsersResponse::getResources, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/GroupsAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/GroupsAPI.java index 0d3a94834..b99c026ec 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/GroupsAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/GroupsAPI.java @@ -63,7 +63,7 @@ public Iterable list(ListGroupsRequest request) { if (request.getCount() == null) { request.setCount(10000L); } - return new Paginator<>( + return Paginator.newOffsetPagination( request, impl::list, ListGroupsResponse::getResources, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/GroupsV2API.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/GroupsV2API.java index 638be6c41..0870ee90c 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/GroupsV2API.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/GroupsV2API.java @@ -63,7 +63,7 @@ public Iterable list(ListGroupsRequest request) { if (request.getCount() == null) { request.setCount(10000L); } - return new Paginator<>( + return Paginator.newOffsetPagination( request, impl::list, ListGroupsResponse::getResources, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/ServicePrincipalsAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/ServicePrincipalsAPI.java index 775e8d732..6b89aee49 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/ServicePrincipalsAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/ServicePrincipalsAPI.java @@ -59,7 +59,7 @@ public Iterable list(ListServicePrincipalsRequest request) { if (request.getCount() == null) { request.setCount(10000L); } - return new Paginator<>( + return Paginator.newOffsetPagination( request, impl::list, ListServicePrincipalResponse::getResources, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/ServicePrincipalsV2API.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/ServicePrincipalsV2API.java index 53bfcf54a..314c9ed9a 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/ServicePrincipalsV2API.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/ServicePrincipalsV2API.java @@ -59,7 +59,7 @@ public Iterable list(ListServicePrincipalsRequest request) { if (request.getCount() == null) { request.setCount(10000L); } - return new Paginator<>( + return Paginator.newOffsetPagination( request, impl::list, ListServicePrincipalResponse::getResources, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/UsersAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/UsersAPI.java index d484f717f..1c9873da9 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/UsersAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/UsersAPI.java @@ -82,7 +82,7 @@ public Iterable list(ListUsersRequest request) { if (request.getCount() == null) { request.setCount(10000L); } - return new Paginator<>( + return Paginator.newOffsetPagination( request, impl::list, ListUsersResponse::getResources, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/UsersV2API.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/UsersV2API.java index 9c41a6766..29614bda8 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/UsersV2API.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/UsersV2API.java @@ -83,7 +83,7 @@ public Iterable list(ListUsersRequest request) { if (request.getCount() == null) { request.setCount(10000L); } - return new Paginator<>( + return Paginator.newOffsetPagination( request, impl::list, ListUsersResponse::getResources, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/WorkspaceAssignmentAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/WorkspaceAssignmentAPI.java index f5cabec7a..a920d7e35 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/WorkspaceAssignmentAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/WorkspaceAssignmentAPI.java @@ -59,7 +59,7 @@ public Iterable list(long workspaceId) { * Get the permission assignments for the specified Databricks account and Databricks workspace. */ public Iterable list(ListWorkspaceAssignmentRequest request) { - return new Paginator<>( + return Paginator.newOffsetPagination( request, impl::list, PermissionAssignments::getPermissionAssignments, response -> null); } diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/JobsAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/JobsAPI.java index da097f96f..d4125be6e 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/JobsAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/JobsAPI.java @@ -231,7 +231,7 @@ public RunOutput getRunOutput(GetRunOutputRequest request) { /** Retrieves a list of jobs. */ public Iterable list(ListJobsRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::list, ListJobsResponse::getJobs, @@ -246,7 +246,7 @@ public Iterable list(ListJobsRequest request) { /** List runs in descending order by start time. */ public Iterable listRuns(ListRunsRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::listRuns, ListRunsResponse::getRuns, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/PolicyComplianceForJobsAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/PolicyComplianceForJobsAPI.java index 9a4912efd..aab155881 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/PolicyComplianceForJobsAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/PolicyComplianceForJobsAPI.java @@ -68,7 +68,7 @@ public Iterable listCompliance(String policyId) { * clusters no longer comply with the updated policy. */ public Iterable listCompliance(ListJobComplianceRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::listCompliance, ListJobComplianceForPolicyResponse::getJobs, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/knowledgeassistants/KnowledgeAssistantsAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/knowledgeassistants/KnowledgeAssistantsAPI.java index 7545ec5f7..eba3277b8 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/knowledgeassistants/KnowledgeAssistantsAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/knowledgeassistants/KnowledgeAssistantsAPI.java @@ -127,7 +127,7 @@ public Iterable listExamples(String parent) { /** Lists examples under a Knowledge Assistant. */ public Iterable listExamples(ListExamplesRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::listExamples, ListExamplesResponse::getExamples, @@ -143,7 +143,7 @@ public Iterable listExamples(ListExamplesRequest request) { /** List Knowledge Assistants */ public Iterable listKnowledgeAssistants( ListKnowledgeAssistantsRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::listKnowledgeAssistants, ListKnowledgeAssistantsResponse::getKnowledgeAssistants, @@ -162,7 +162,7 @@ public Iterable listKnowledgeSources(String parent) { /** Lists Knowledge Sources under a Knowledge Assistant. */ public Iterable listKnowledgeSources(ListKnowledgeSourcesRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::listKnowledgeSources, ListKnowledgeSourcesResponse::getKnowledgeSources, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/marketplace/ConsumerFulfillmentsAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/marketplace/ConsumerFulfillmentsAPI.java index 99475af00..1673a54c8 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/marketplace/ConsumerFulfillmentsAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/marketplace/ConsumerFulfillmentsAPI.java @@ -30,7 +30,7 @@ public Iterable get(String listingId) { /** Get a high level preview of the metadata of listing installable content. */ public Iterable get(GetListingContentMetadataRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::get, GetListingContentMetadataResponse::getSharedDataObjects, @@ -54,7 +54,7 @@ public Iterable list(String listingId) { * attached share or git repo, as well as the Delta Sharing recipient type. */ public Iterable list(ListFulfillmentsRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::list, ListFulfillmentsResponse::getFulfillments, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/marketplace/ConsumerInstallationsAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/marketplace/ConsumerInstallationsAPI.java index b1ee91230..0428f6f84 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/marketplace/ConsumerInstallationsAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/marketplace/ConsumerInstallationsAPI.java @@ -43,7 +43,7 @@ public void delete(DeleteInstallationRequest request) { /** List all installations across all listings. */ public Iterable list(ListAllInstallationsRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::list, ListAllInstallationsResponse::getInstallations, @@ -62,7 +62,7 @@ public Iterable listListingInstallations(String listingId) { /** List all installations for a particular listing. */ public Iterable listListingInstallations(ListInstallationsRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::listListingInstallations, ListInstallationsResponse::getInstallations, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/marketplace/ConsumerListingsAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/marketplace/ConsumerListingsAPI.java index 17400dae3..0521933c1 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/marketplace/ConsumerListingsAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/marketplace/ConsumerListingsAPI.java @@ -45,7 +45,7 @@ public GetListingResponse get(GetListingRequest request) { /** List all published listings in the Databricks Marketplace that the consumer has access to. */ public Iterable

list(ListListingsRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::list, ListListingsResponse::getListings, @@ -67,7 +67,7 @@ public Iterable search(String query) { * query supports a variety of different search parameters and performs fuzzy matching. */ public Iterable search(SearchListingsRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::search, SearchListingsResponse::getListings, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/marketplace/ConsumerPersonalizationRequestsAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/marketplace/ConsumerPersonalizationRequestsAPI.java index 041a1ba28..94a762088 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/marketplace/ConsumerPersonalizationRequestsAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/marketplace/ConsumerPersonalizationRequestsAPI.java @@ -47,7 +47,7 @@ public GetPersonalizationRequestResponse get(GetPersonalizationRequestRequest re /** List personalization requests for a consumer across all listings. */ public Iterable list(ListAllPersonalizationRequestsRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::list, ListAllPersonalizationRequestsResponse::getPersonalizationRequests, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/marketplace/ConsumerProvidersAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/marketplace/ConsumerProvidersAPI.java index 717185c15..4d9bb033f 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/marketplace/ConsumerProvidersAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/marketplace/ConsumerProvidersAPI.java @@ -40,7 +40,7 @@ public GetProviderResponse get(GetProviderRequest request) { /** List all providers in the Databricks Marketplace with at least one visible listing. */ public Iterable list(ListConsumerProvidersRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::list, ListProvidersResponse::getProviders, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/marketplace/ProviderExchangeFiltersAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/marketplace/ProviderExchangeFiltersAPI.java index 4190317b6..975c90386 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/marketplace/ProviderExchangeFiltersAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/marketplace/ProviderExchangeFiltersAPI.java @@ -44,7 +44,7 @@ public Iterable list(String exchangeId) { /** List exchange filter */ public Iterable list(ListExchangeFiltersRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::list, ListExchangeFiltersResponse::getFilters, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/marketplace/ProviderExchangesAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/marketplace/ProviderExchangesAPI.java index bc199e7e4..044eda3e5 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/marketplace/ProviderExchangesAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/marketplace/ProviderExchangesAPI.java @@ -65,7 +65,7 @@ public GetExchangeResponse get(GetExchangeRequest request) { /** List exchanges visible to provider */ public Iterable list(ListExchangesRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::list, ListExchangesResponse::getExchanges, @@ -84,7 +84,7 @@ public Iterable listExchangesForListing(String listingId) { /** List exchanges associated with a listing */ public Iterable listExchangesForListing(ListExchangesForListingRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::listExchangesForListing, ListExchangesForListingResponse::getExchangeListing, @@ -103,7 +103,7 @@ public Iterable listListingsForExchange(String exchangeId) { /** List listings associated with an exchange */ public Iterable listListingsForExchange(ListListingsForExchangeRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::listListingsForExchange, ListListingsForExchangeResponse::getExchangeListings, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/marketplace/ProviderFilesAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/marketplace/ProviderFilesAPI.java index 90a97a1ca..7142f599f 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/marketplace/ProviderFilesAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/marketplace/ProviderFilesAPI.java @@ -56,7 +56,7 @@ public Iterable list(FileParent fileParent) { /** List files attached to a parent entity. */ public Iterable list(ListFilesRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::list, ListFilesResponse::getFileInfos, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/marketplace/ProviderListingsAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/marketplace/ProviderListingsAPI.java index deed60786..3f5485840 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/marketplace/ProviderListingsAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/marketplace/ProviderListingsAPI.java @@ -52,7 +52,7 @@ public GetListingResponse get(GetListingRequest request) { /** List listings owned by this provider */ public Iterable list(GetListingsRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::list, GetListingsResponse::getListings, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/marketplace/ProviderPersonalizationRequestsAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/marketplace/ProviderPersonalizationRequestsAPI.java index de6fbd8c9..f7630b94a 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/marketplace/ProviderPersonalizationRequestsAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/marketplace/ProviderPersonalizationRequestsAPI.java @@ -33,7 +33,7 @@ public ProviderPersonalizationRequestsAPI(ProviderPersonalizationRequestsService * regardless of which listing they are for. */ public Iterable list(ListAllPersonalizationRequestsRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::list, ListAllPersonalizationRequestsResponse::getPersonalizationRequests, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/marketplace/ProviderProvidersAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/marketplace/ProviderProvidersAPI.java index db463ab07..451b5f97e 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/marketplace/ProviderProvidersAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/marketplace/ProviderProvidersAPI.java @@ -49,7 +49,7 @@ public GetProviderResponse get(GetProviderRequest request) { /** List provider profiles for account. */ public Iterable list(ListProvidersRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::list, ListProvidersResponse::getProviders, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/ExperimentsAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/ExperimentsAPI.java index 4585c5e74..9a4a51a61 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/ExperimentsAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/ExperimentsAPI.java @@ -144,7 +144,7 @@ public Iterable getHistory(String metricKey) { /** Gets a list of all values for the specified metric for a given run. */ public Iterable getHistory(GetHistoryRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::getHistory, GetMetricHistoryResponse::getMetrics, @@ -211,7 +211,7 @@ public GetRunResponse getRun(GetRunRequest request) { * API](/api/workspace/files/listdirectorycontents). */ public Iterable listArtifacts(ListArtifactsRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::listArtifacts, ListArtifactsResponse::getFiles, @@ -226,7 +226,7 @@ public Iterable listArtifacts(ListArtifactsRequest request) { /** Gets a list of all experiments. */ public Iterable listExperiments(ListExperimentsRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::listExperiments, ListExperimentsResponse::getExperiments, @@ -367,7 +367,7 @@ public RestoreRunsResponse restoreRuns(RestoreRuns request) { /** Searches for experiments that satisfy specified search criteria. */ public Iterable searchExperiments(SearchExperiments request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::searchExperiments, SearchExperimentsResponse::getExperiments, @@ -391,7 +391,7 @@ public SearchLoggedModelsResponse searchLoggedModels(SearchLoggedModelsRequest r *

Search expressions can use `mlflowMetric` and `mlflowParam` keys. */ public Iterable searchRuns(SearchRuns request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::searchRuns, SearchRunsResponse::getRuns, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/FeatureEngineeringAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/FeatureEngineeringAPI.java index f26b55bdf..88e553f31 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/FeatureEngineeringAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/FeatureEngineeringAPI.java @@ -140,7 +140,7 @@ public Iterable listFeatures(String catalogName, String schemaName) { /** List Features. */ public Iterable listFeatures(ListFeaturesRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::listFeatures, ListFeaturesResponse::getFeatures, @@ -158,7 +158,7 @@ public Iterable listFeatures(ListFeaturesRequest request) { * under the entire metastore. Only the creator of the Kafka config can delete it. */ public Iterable listKafkaConfigs(ListKafkaConfigsRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::listKafkaConfigs, ListKafkaConfigsResponse::getKafkaConfigs, @@ -174,7 +174,7 @@ public Iterable listKafkaConfigs(ListKafkaConfigsRequest request) { /** List materialized features. */ public Iterable listMaterializedFeatures( ListMaterializedFeaturesRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::listMaterializedFeatures, ListMaterializedFeaturesResponse::getMaterializedFeatures, @@ -189,7 +189,7 @@ public Iterable listMaterializedFeatures( /** List Streams under a given catalog.schema parent. */ public Iterable listStreams(ListStreamsRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::listStreams, ListStreamsResponse::getStreams, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/FeatureStoreAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/FeatureStoreAPI.java index b287ef956..06d49bfc8 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/FeatureStoreAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/FeatureStoreAPI.java @@ -65,7 +65,7 @@ public OnlineStore getOnlineStore(GetOnlineStoreRequest request) { /** List Online Feature Stores. */ public Iterable listOnlineStores(ListOnlineStoresRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::listOnlineStores, ListOnlineStoresResponse::getOnlineStores, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/MaterializedFeaturesAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/MaterializedFeaturesAPI.java index 5cd8ff588..a9d099283 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/MaterializedFeaturesAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/MaterializedFeaturesAPI.java @@ -72,7 +72,7 @@ public Iterable listFeatureTags(String tableName, String featureName /** Lists FeatureTags. */ public Iterable listFeatureTags(ListFeatureTagsRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::listFeatureTags, ListFeatureTagsResponse::getFeatureTags, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/ModelRegistryAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/ModelRegistryAPI.java index 7b6874526..e11d5c861 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/ModelRegistryAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/ml/ModelRegistryAPI.java @@ -143,7 +143,7 @@ public void deleteWebhook(DeleteWebhookRequest request) { /** Gets the latest version of a registered model. */ public Iterable getLatestVersions(GetLatestVersionsRequest request) { - return new Paginator<>( + return Paginator.newOffsetPagination( request, impl::getLatestVersions, GetLatestVersionsResponse::getModelVersions, @@ -212,7 +212,7 @@ public RegisteredModelPermissions getPermissions(GetRegisteredModelPermissionsRe /** Lists all available registered models, up to the limit specified in __max_results__. */ public Iterable listModels(ListModelsRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::listModels, ListModelsResponse::getRegisteredModels, @@ -232,7 +232,7 @@ public Iterable listTransitionRequests(String name, String version) { /** Gets a list of all open stage transition requests for the model version. */ public Iterable listTransitionRequests(ListTransitionRequestsRequest request) { - return new Paginator<>( + return Paginator.newOffsetPagination( request, impl::listTransitionRequests, ListTransitionRequestsResponse::getRequests, @@ -241,7 +241,7 @@ public Iterable listTransitionRequests(ListTransitionRequestsRequest r /** **NOTE:** This endpoint is in Public Preview. Lists all registry webhooks. */ public Iterable listWebhooks(ListWebhooksRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::listWebhooks, ListRegistryWebhooks::getWebhooks, @@ -266,7 +266,7 @@ public RenameModelResponse renameModel(RenameModelRequest request) { /** Searches for specific model versions based on the supplied __filter__. */ public Iterable searchModelVersions(SearchModelVersionsRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::searchModelVersions, SearchModelVersionsResponse::getModelVersions, @@ -281,7 +281,7 @@ public Iterable searchModelVersions(SearchModelVersionsRequest req /** Search for registered models based on the specified __filter__. */ public Iterable searchModels(SearchModelsRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::searchModels, SearchModelsResponse::getRegisteredModels, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/networking/EndpointsAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/networking/EndpointsAPI.java index d0ce9c4de..01fb89b18 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/networking/EndpointsAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/networking/EndpointsAPI.java @@ -66,7 +66,7 @@ public Iterable listEndpoints(String parent) { /** Lists all network connectivity endpoints for the account. */ public Iterable listEndpoints(ListEndpointsRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::listEndpoints, ListEndpointsResponse::getItems, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/oauth2/AccountFederationPolicyAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/oauth2/AccountFederationPolicyAPI.java index c58b62a87..a736a0e3a 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/oauth2/AccountFederationPolicyAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/oauth2/AccountFederationPolicyAPI.java @@ -91,7 +91,7 @@ public FederationPolicy get(GetAccountFederationPolicyRequest request) { /** List account federation policies. */ public Iterable list(ListAccountFederationPoliciesRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::list, ListFederationPoliciesResponse::getPolicies, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/oauth2/CustomAppIntegrationAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/oauth2/CustomAppIntegrationAPI.java index 80df61c41..ecdba7ce3 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/oauth2/CustomAppIntegrationAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/oauth2/CustomAppIntegrationAPI.java @@ -59,7 +59,7 @@ public GetCustomAppIntegrationOutput get(GetCustomAppIntegrationRequest request) /** Get the list of custom OAuth app integrations for the specified Databricks account */ public Iterable list(ListCustomAppIntegrationsRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::list, GetCustomAppIntegrationsOutput::getApps, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/oauth2/OAuthPublishedAppsAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/oauth2/OAuthPublishedAppsAPI.java index ea7a3ca69..203f35e2a 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/oauth2/OAuthPublishedAppsAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/oauth2/OAuthPublishedAppsAPI.java @@ -30,7 +30,7 @@ public OAuthPublishedAppsAPI(OAuthPublishedAppsService mock) { /** Get all the available published OAuth apps in Databricks. */ public Iterable list(ListOAuthPublishedAppsRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::list, GetPublishedAppsOutput::getApps, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/oauth2/PublishedAppIntegrationAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/oauth2/PublishedAppIntegrationAPI.java index 631b40b47..88514bdfc 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/oauth2/PublishedAppIntegrationAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/oauth2/PublishedAppIntegrationAPI.java @@ -62,7 +62,7 @@ public GetPublishedAppIntegrationOutput get(GetPublishedAppIntegrationRequest re /** Get the list of published OAuth app integrations for the specified Databricks account */ public Iterable list( ListPublishedAppIntegrationsRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::list, GetPublishedAppIntegrationsOutput::getApps, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/oauth2/ServicePrincipalFederationPolicyAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/oauth2/ServicePrincipalFederationPolicyAPI.java index 2a5362945..865906a9c 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/oauth2/ServicePrincipalFederationPolicyAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/oauth2/ServicePrincipalFederationPolicyAPI.java @@ -106,7 +106,7 @@ public Iterable list(long servicePrincipalId) { /** List account federation policies. */ public Iterable list(ListServicePrincipalFederationPoliciesRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::list, ListFederationPoliciesResponse::getPolicies, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/oauth2/ServicePrincipalSecretsAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/oauth2/ServicePrincipalSecretsAPI.java index d7ad47258..01125bb3f 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/oauth2/ServicePrincipalSecretsAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/oauth2/ServicePrincipalSecretsAPI.java @@ -64,7 +64,7 @@ public Iterable list(String servicePrincipalId) { * information about the secrets themselves and does not include the secret values. */ public Iterable list(ListServicePrincipalSecretsRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::list, ListServicePrincipalSecretsResponse::getSecrets, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/oauth2/ServicePrincipalSecretsProxyAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/oauth2/ServicePrincipalSecretsProxyAPI.java index 5085fd7c1..f6ed62a76 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/oauth2/ServicePrincipalSecretsProxyAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/oauth2/ServicePrincipalSecretsProxyAPI.java @@ -65,7 +65,7 @@ public Iterable list(String servicePrincipalId) { * information about the secrets themselves and does not include the secret values. */ public Iterable list(ListServicePrincipalSecretsRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::list, ListServicePrincipalSecretsResponse::getSecrets, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/pipelines/PipelinesAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/pipelines/PipelinesAPI.java index fcd0623fe..e8871d17c 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/pipelines/PipelinesAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/pipelines/PipelinesAPI.java @@ -172,7 +172,7 @@ public Iterable listPipelineEvents(String pipelineId) { /** Retrieves events for a pipeline. */ public Iterable listPipelineEvents(ListPipelineEventsRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::listPipelineEvents, ListPipelineEventsResponse::getEvents, @@ -187,7 +187,7 @@ public Iterable listPipelineEvents(ListPipelineEventsRequest requ /** Lists pipelines defined in the Spark Declarative Pipelines system. */ public Iterable listPipelines(ListPipelinesRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::listPipelines, ListPipelinesResponse::getStatuses, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/postgres/PostgresAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/postgres/PostgresAPI.java index 255b88164..9db4ad53c 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/postgres/PostgresAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/postgres/PostgresAPI.java @@ -245,7 +245,7 @@ public Iterable listBranches(String parent) { /** Returns a paginated list of database branches in the project. */ public Iterable listBranches(ListBranchesRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::listBranches, ListBranchesResponse::getBranches, @@ -264,7 +264,7 @@ public Iterable listDatabases(String parent) { /** List Databases. */ public Iterable listDatabases(ListDatabasesRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::listDatabases, ListDatabasesResponse::getDatabases, @@ -283,7 +283,7 @@ public Iterable listEndpoints(String parent) { /** Returns a paginated list of compute endpoints in the branch. */ public Iterable listEndpoints(ListEndpointsRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::listEndpoints, ListEndpointsResponse::getEndpoints, @@ -301,7 +301,7 @@ public Iterable listEndpoints(ListEndpointsRequest request) { * access. */ public Iterable listProjects(ListProjectsRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::listProjects, ListProjectsResponse::getProjects, @@ -320,7 +320,7 @@ public Iterable listRoles(String parent) { /** Returns a paginated list of Postgres roles in the branch. */ public Iterable listRoles(ListRolesRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::listRoles, ListRolesResponse::getRoles, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/qualitymonitorv2/QualityMonitorV2API.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/qualitymonitorv2/QualityMonitorV2API.java index 29f476ab8..11c987ebf 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/qualitymonitorv2/QualityMonitorV2API.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/qualitymonitorv2/QualityMonitorV2API.java @@ -66,7 +66,7 @@ public QualityMonitor getQualityMonitor(GetQualityMonitorRequest request) { * (Unimplemented) List quality monitors. */ public Iterable listQualityMonitor(ListQualityMonitorRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::listQualityMonitor, ListQualityMonitorResponse::getQualityMonitors, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/serving/ServingEndpointsAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/serving/ServingEndpointsAPI.java index a57e9b817..d795e1294 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/serving/ServingEndpointsAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/serving/ServingEndpointsAPI.java @@ -193,7 +193,7 @@ public HttpRequestResponse httpRequest(ExternalFunctionRequest request) { /** Get all serving endpoints. */ public Iterable list() { - return new Paginator<>( + return Paginator.newOffsetPagination( null, (Void v) -> impl.list(), ListEndpointsResponse::getEndpoints, response -> null); } diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settings/AccountIpAccessListsAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settings/AccountIpAccessListsAPI.java index 089ee1fbe..d36c9ef75 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settings/AccountIpAccessListsAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settings/AccountIpAccessListsAPI.java @@ -84,7 +84,7 @@ public GetIpAccessListResponse get(GetAccountIpAccessListRequest request) { /** Gets all IP access lists for the specified account. */ public Iterable list() { - return new Paginator<>( + return Paginator.newOffsetPagination( null, (Void v) -> impl.list(), GetIpAccessListsResponse::getIpAccessLists, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settings/IpAccessListsAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settings/IpAccessListsAPI.java index c012a0328..38601cfbc 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settings/IpAccessListsAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settings/IpAccessListsAPI.java @@ -84,7 +84,7 @@ public FetchIpAccessListResponse get(GetIpAccessListRequest request) { /** Gets all IP access lists for the specified workspace. */ public Iterable list() { - return new Paginator<>( + return Paginator.newOffsetPagination( null, (Void v) -> impl.list(), ListIpAccessListResponse::getIpAccessLists, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settings/NetworkConnectivityAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settings/NetworkConnectivityAPI.java index d8c648128..cf8d0d1ed 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settings/NetworkConnectivityAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settings/NetworkConnectivityAPI.java @@ -131,7 +131,7 @@ public NccPrivateEndpointRule getPrivateEndpointRule(GetPrivateEndpointRuleReque /** Gets an array of network connectivity configurations. */ public Iterable listNetworkConnectivityConfigurations( ListNetworkConnectivityConfigurationsRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::listNetworkConnectivityConfigurations, ListNetworkConnectivityConfigurationsResponse::getItems, @@ -154,7 +154,7 @@ public Iterable listPrivateEndpointRules( /** Gets an array of private endpoint rules. */ public Iterable listPrivateEndpointRules( ListPrivateEndpointRulesRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::listPrivateEndpointRules, ListPrivateEndpointRulesResponse::getItems, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settings/NetworkPoliciesAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settings/NetworkPoliciesAPI.java index c733b9761..4ea333f32 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settings/NetworkPoliciesAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settings/NetworkPoliciesAPI.java @@ -59,7 +59,7 @@ public AccountNetworkPolicy getNetworkPolicyRpc(GetNetworkPolicyRequest request) /** Gets an array of network policies. */ public Iterable listNetworkPoliciesRpc(ListNetworkPoliciesRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::listNetworkPoliciesRpc, ListNetworkPoliciesResponse::getItems, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settings/NotificationDestinationsAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settings/NotificationDestinationsAPI.java index a19d242cb..db48f0cd2 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settings/NotificationDestinationsAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settings/NotificationDestinationsAPI.java @@ -55,7 +55,7 @@ public NotificationDestination get(GetNotificationDestinationRequest request) { /** Lists notification destinations. */ public Iterable list( ListNotificationDestinationsRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::list, ListNotificationDestinationsResponse::getResults, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settings/TokenManagementAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settings/TokenManagementAPI.java index becfa549a..25b39a34b 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settings/TokenManagementAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settings/TokenManagementAPI.java @@ -62,7 +62,7 @@ public TokenPermissions getPermissions() { /** Lists all tokens associated with the specified workspace or user. */ public Iterable list(ListTokenManagementRequest request) { - return new Paginator<>( + return Paginator.newOffsetPagination( request, impl::list, ListTokensResponse::getTokenInfos, response -> null); } diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settings/TokensAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settings/TokensAPI.java index 2541b65df..3714ede4f 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settings/TokensAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settings/TokensAPI.java @@ -52,7 +52,7 @@ public void delete(RevokeTokenRequest request) { /** Lists all the valid tokens for a user-workspace pair. */ public Iterable list() { - return new Paginator<>( + return Paginator.newOffsetPagination( null, (Void v) -> impl.list(), ListPublicTokensResponse::getTokenInfos, response -> null); } diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settingsv2/AccountSettingsV2API.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settingsv2/AccountSettingsV2API.java index 75a78f4dd..004d81d83 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settingsv2/AccountSettingsV2API.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settingsv2/AccountSettingsV2API.java @@ -59,7 +59,7 @@ public UserPreference getPublicAccountUserPreference( */ public Iterable listAccountSettingsMetadata( ListAccountSettingsMetadataRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::listAccountSettingsMetadata, ListAccountSettingsMetadataResponse::getSettingsMetadata, @@ -86,7 +86,7 @@ public Iterable listAccountUserPreferencesMetadata(String user */ public Iterable listAccountUserPreferencesMetadata( ListAccountUserPreferencesMetadataRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::listAccountUserPreferencesMetadata, ListAccountUserPreferencesMetadataResponse::getSettingsMetadata, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settingsv2/WorkspaceSettingsV2API.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settingsv2/WorkspaceSettingsV2API.java index 511c84287..8f1a5d3f0 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settingsv2/WorkspaceSettingsV2API.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settingsv2/WorkspaceSettingsV2API.java @@ -43,7 +43,7 @@ public Setting getPublicWorkspaceSetting(GetPublicWorkspaceSettingRequest reques */ public Iterable listWorkspaceSettingsMetadata( ListWorkspaceSettingsMetadataRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::listWorkspaceSettingsMetadata, ListWorkspaceSettingsMetadataResponse::getSettingsMetadata, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/sharing/ProvidersAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/sharing/ProvidersAPI.java index cc1972490..cffc86ce8 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/sharing/ProvidersAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/sharing/ProvidersAPI.java @@ -71,7 +71,7 @@ public Iterable list(ListProvidersRequest request) { if (request.getMaxResults() == null) { request.setMaxResults(0L); } - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::list, ListProvidersResponse::getProviders, @@ -113,7 +113,7 @@ public Iterable listShares(ListSharesRequest request) { if (request.getMaxResults() == null) { request.setMaxResults(0L); } - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::listShares, ListProviderSharesResponse::getShares, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/sharing/RecipientFederationPoliciesAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/sharing/RecipientFederationPoliciesAPI.java index 0f588f8fb..e8ffa78df 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/sharing/RecipientFederationPoliciesAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/sharing/RecipientFederationPoliciesAPI.java @@ -107,7 +107,7 @@ public Iterable list(String recipientName) { * non-Databricks recipients. The caller must have read access to the recipient. */ public Iterable list(ListFederationPoliciesRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::list, ListFederationPoliciesResponse::getPolicies, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/sharing/RecipientsAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/sharing/RecipientsAPI.java index 461bcbce9..b126970f4 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/sharing/RecipientsAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/sharing/RecipientsAPI.java @@ -83,7 +83,7 @@ public Iterable list(ListRecipientsRequest request) { if (request.getMaxResults() == null) { request.setMaxResults(0L); } - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::list, ListRecipientsResponse::getRecipients, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/sharing/SharesAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/sharing/SharesAPI.java index d28c6c73d..9b1e9290f 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/sharing/SharesAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/sharing/SharesAPI.java @@ -66,7 +66,7 @@ public Iterable listShares(SharesListRequest request) { if (request.getMaxResults() == null) { request.setMaxResults(0L); } - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::listShares, ListSharesResponse::getShares, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/sharing/SharesExtAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/sharing/SharesExtAPI.java index 0c62ff999..f9c85971f 100644 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/sharing/SharesExtAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/sharing/SharesExtAPI.java @@ -29,7 +29,7 @@ public Iterable list(ListSharesRequest request) { if (request.getMaxResults() == null) { request.setMaxResults(0L); } - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::list, ListSharesResponse::getShares, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/sql/AlertsAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/sql/AlertsAPI.java index c9c2383d0..a41e2c455 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/sql/AlertsAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/sql/AlertsAPI.java @@ -62,7 +62,7 @@ public Alert get(GetAlertRequest request) { * temporary ban. */ public Iterable list(ListAlertsRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::list, ListAlertsResponse::getResults, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/sql/AlertsV2API.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/sql/AlertsV2API.java index 512e3bc41..3659424f2 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/sql/AlertsV2API.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/sql/AlertsV2API.java @@ -40,7 +40,7 @@ public AlertV2 getAlert(GetAlertV2Request request) { /** Gets a list of alerts accessible to the user, ordered by creation time. */ public Iterable listAlerts(ListAlertsV2Request request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::listAlerts, ListAlertsV2Response::getAlerts, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/sql/DashboardsAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/sql/DashboardsAPI.java index 379e235eb..8eac94418 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/sql/DashboardsAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/sql/DashboardsAPI.java @@ -81,7 +81,7 @@ public Dashboard get(GetDashboardRequest request) { */ public Iterable list(ListDashboardsRequest request) { request.setPage(1L); - return new Paginator<>( + return Paginator.newOffsetPagination( request, impl::list, ListResponse::getResults, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/sql/QueriesAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/sql/QueriesAPI.java index ddecdebb5..f44bdee1d 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/sql/QueriesAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/sql/QueriesAPI.java @@ -62,7 +62,7 @@ public Query get(GetQueryRequest request) { * temporary ban. */ public Iterable list(ListQueriesRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::list, ListQueryObjectsResponse::getResults, @@ -81,7 +81,7 @@ public Iterable listVisualizations(String id) { /** Gets a list of visualizations on a query. */ public Iterable listVisualizations(ListVisualizationsForQueryRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::listVisualizations, ListVisualizationsForQueryResponse::getResults, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/sql/QueriesLegacyAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/sql/QueriesLegacyAPI.java index 1f457a1e3..61854673c 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/sql/QueriesLegacyAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/sql/QueriesLegacyAPI.java @@ -95,7 +95,7 @@ public LegacyQuery get(GetQueriesLegacyRequest request) { */ public Iterable list(ListQueriesLegacyRequest request) { request.setPage(1L); - return new Paginator<>( + return Paginator.newOffsetPagination( request, impl::list, QueryList::getResults, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/sql/WarehousesAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/sql/WarehousesAPI.java index 84ade8bd8..dbe33d02a 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/sql/WarehousesAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/sql/WarehousesAPI.java @@ -224,7 +224,7 @@ public GetWorkspaceWarehouseConfigResponse getWorkspaceWarehouseConfig() { /** Lists all SQL warehouses that a user has access to. */ public Iterable list(ListWarehousesRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::list, ListWarehousesResponse::getWarehouses, @@ -243,7 +243,7 @@ public Iterable list(ListWarehousesRequest request) { */ public Iterable listDefaultWarehouseOverrides( ListDefaultWarehouseOverridesRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::listDefaultWarehouseOverrides, ListDefaultWarehouseOverridesResponse::getDefaultWarehouseOverrides, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/supervisoragents/SupervisorAgentsAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/supervisoragents/SupervisorAgentsAPI.java index 802f45176..1092951e2 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/supervisoragents/SupervisorAgentsAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/supervisoragents/SupervisorAgentsAPI.java @@ -129,7 +129,7 @@ public Iterable listExamples(String parent) { /** Lists examples under a Supervisor Agent. */ public Iterable listExamples(ListExamplesRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::listExamples, ListExamplesResponse::getExamples, @@ -144,7 +144,7 @@ public Iterable listExamples(ListExamplesRequest request) { /** Lists Supervisor Agents. */ public Iterable listSupervisorAgents(ListSupervisorAgentsRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::listSupervisorAgents, ListSupervisorAgentsResponse::getSupervisorAgents, @@ -163,7 +163,7 @@ public Iterable listTools(String parent) { /** Lists Tools under a Supervisor Agent. */ public Iterable listTools(ListToolsRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::listTools, ListToolsResponse::getTools, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/tags/TagPoliciesAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/tags/TagPoliciesAPI.java index 7760a0f3e..fdc01e4b4 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/tags/TagPoliciesAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/tags/TagPoliciesAPI.java @@ -91,7 +91,7 @@ public TagPolicy getTagPolicy(GetTagPolicyRequest request) { * https://registry.terraform.io/providers/databricks/databricks/latest/docs/data-sources/tag_policies */ public Iterable listTagPolicies(ListTagPoliciesRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::listTagPolicies, ListTagPoliciesResponse::getTagPolicies, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/tags/WorkspaceEntityTagAssignmentsAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/tags/WorkspaceEntityTagAssignmentsAPI.java index 52dd4cf54..24c0947ed 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/tags/WorkspaceEntityTagAssignmentsAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/tags/WorkspaceEntityTagAssignmentsAPI.java @@ -62,7 +62,7 @@ public Iterable listTagAssignments(String entityType, String enti /** List the tag assignments for an entity */ public Iterable listTagAssignments(ListTagAssignmentsRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::listTagAssignments, ListTagAssignmentsResponse::getTagAssignments, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/vectorsearch/VectorSearchEndpointsAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/vectorsearch/VectorSearchEndpointsAPI.java index 8b8e75268..35b0ff858 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/vectorsearch/VectorSearchEndpointsAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/vectorsearch/VectorSearchEndpointsAPI.java @@ -133,7 +133,7 @@ public VectorSearchEndpointPermissions getPermissions( /** List all AI Search endpoints in the workspace. */ public Iterable listEndpoints(ListEndpointsRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::listEndpoints, ListEndpointResponse::getEndpoints, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/vectorsearch/VectorSearchIndexesAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/vectorsearch/VectorSearchIndexesAPI.java index 46694fe0a..4b33adc17 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/vectorsearch/VectorSearchIndexesAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/vectorsearch/VectorSearchIndexesAPI.java @@ -71,7 +71,7 @@ public Iterable listIndexes(String endpointName) { /** List all indexes in the given endpoint. */ public Iterable listIndexes(ListIndexesRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::listIndexes, ListVectorIndexesResponse::getVectorIndexes, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/workspace/GitCredentialsAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/workspace/GitCredentialsAPI.java index 4b4dece25..07f0d9af3 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/workspace/GitCredentialsAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/workspace/GitCredentialsAPI.java @@ -58,7 +58,7 @@ public GetCredentialsResponse get(GetCredentialsRequest request) { /** Lists the calling user's Git credentials. */ public Iterable list(ListCredentialsRequest request) { - return new Paginator<>( + return Paginator.newOffsetPagination( request, impl::list, ListCredentialsResponse::getCredentials, response -> null); } diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/workspace/ReposAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/workspace/ReposAPI.java index d3b32b12c..ca8395897 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/workspace/ReposAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/workspace/ReposAPI.java @@ -86,7 +86,7 @@ public RepoPermissions getPermissions(GetRepoPermissionsRequest request) { * through additional pages. */ public Iterable list(ListReposRequest request) { - return new Paginator<>( + return Paginator.newTokenPagination( request, impl::list, ListReposResponse::getRepos, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/workspace/SecretsAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/workspace/SecretsAPI.java index 7fdee8987..a87b05966 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/workspace/SecretsAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/workspace/SecretsAPI.java @@ -209,7 +209,8 @@ public Iterable listAcls(String scope) { * ``PERMISSION_DENIED`` if the user does not have permission to make this API call. */ public Iterable listAcls(ListAclsRequest request) { - return new Paginator<>(request, impl::listAcls, ListAclsResponse::getItems, response -> null); + return Paginator.newOffsetPagination( + request, impl::listAcls, ListAclsResponse::getItems, response -> null); } /** @@ -225,7 +226,7 @@ public Iterable listAcls(ListAclsRequest request) { *

Throws ``PERMISSION_DENIED`` if the user does not have permission to make this API call. */ public Iterable listScopes() { - return new Paginator<>( + return Paginator.newOffsetPagination( null, (Void v) -> impl.listScopes(), ListScopesResponse::getScopes, response -> null); } @@ -250,7 +251,7 @@ public Iterable listSecrets(String scope) { * ``PERMISSION_DENIED`` if the user does not have permission to make this API call. */ public Iterable listSecrets(ListSecretsRequest request) { - return new Paginator<>( + return Paginator.newOffsetPagination( request, impl::listSecrets, ListSecretsResponse::getSecrets, response -> null); } diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/workspace/WorkspaceAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/workspace/WorkspaceAPI.java index 67791f47e..58effc566 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/workspace/WorkspaceAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/workspace/WorkspaceAPI.java @@ -121,7 +121,8 @@ public Iterable list(String path) { * does not exist, this call returns an error `RESOURCE_DOES_NOT_EXIST`. */ public Iterable list(ListWorkspaceRequest request) { - return new Paginator<>(request, impl::list, ListResponse::getObjects, response -> null); + return Paginator.newOffsetPagination( + request, impl::list, ListResponse::getObjects, response -> null); } public void mkdirs(String path) { diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/support/Paginator.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/support/Paginator.java index 47694813c..e82623b2e 100644 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/support/Paginator.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/support/Paginator.java @@ -7,6 +7,11 @@ /** * Consistent pagination support for all APIs * + *

Databricks APIs use two pagination strategies. Token-based APIs may return an empty page that + * still carries a {@code next_page_token}, so iteration must continue until {@code nextPageFn} + * returns null ({@link #newTokenPagination}). Offset/limit APIs (SCIM, legacy SQL) carry no token + * and stop on the first empty page ({@link #newOffsetPagination}). + * * @param request type * @param response type * @param item type @@ -15,22 +20,54 @@ public class Paginator implements Iterable { private final Function requestFn; private final Function> itemsFn; private final Function nextPageFn; + private final boolean tokenBasedPagination; private RS response; private Iterator currentPage; private Iterator all; /** - * Repeatedly call `requestFn` until `nextPageFn` returns non-null result. + * Creates a paginator for token-based APIs, which continue past empty pages until {@code + * nextPageFn} returns null. * *

Example: - * return new Paginator<>(request, impl::listRuns, ListRunsResponse::getRuns, response -> { - * Long offset = request.getOffset(); - * if (offset == null) { - * offset = 0L; - * } - * offset += response.getRuns().size(); - * return request.setOffset(offset); - * }).withDedupe(BaseRun::getRunId); + * return Paginator.newTokenPagination(request, impl::list, ListTablesResponse::getTables, + * response -> { + * String token = response.getNextPageToken(); + * if (token == null || token.isEmpty()) { + * return null; + * } + * return request.setPageToken(token); + * }); + * + * + * @param request initial request to `requestFn` implementation, possibly with filters. + * @param requestFn implementation of request, that takes modified `request` and returns some + * results. + * @param itemsFn reference to the getter method, that returns `Collection` of results. + * @param nextPageFn return non-null request in case we need to fetch another page of results, + * null once the page token is absent. + */ + public static Paginator newTokenPagination( + RQ request, + Function requestFn, + Function> itemsFn, + Function nextPageFn) { + return new Paginator<>(request, requestFn, itemsFn, nextPageFn, true); + } + + /** + * Creates a paginator for offset/limit-based APIs, which stop on the first empty page. + * + *

Example: + * return Paginator.newOffsetPagination(request, impl::listRuns, ListRunsResponse::getRuns, + * response -> { + * Long offset = request.getOffset(); + * if (offset == null) { + * offset = 0L; + * } + * offset += response.getRuns().size(); + * return request.setOffset(offset); + * }).withDedupe(BaseRun::getRunId); * * * @param request initial request to `requestFn` implementation, possibly with filters. @@ -39,14 +76,46 @@ public class Paginator implements Iterable { * @param itemsFn reference to the getter method, that returns `Collection` of results. * @param nextPageFn return non-null request in case we need to fetch another page of results. */ + public static Paginator newOffsetPagination( + RQ request, + Function requestFn, + Function> itemsFn, + Function nextPageFn) { + return new Paginator<>(request, requestFn, itemsFn, nextPageFn, false); + } + + /** + * Repeatedly call `requestFn` until `nextPageFn` returns a null result. Uses offset/limit + * semantics: iteration stops on the first empty page. + * + * @deprecated Use {@link #newTokenPagination} or {@link #newOffsetPagination} instead, which make + * the pagination strategy explicit. Token-based APIs must use {@link #newTokenPagination} to + * avoid stopping early on an empty page that still carries a next-page token. + * @param request initial request to `requestFn` implementation, possibly with filters. + * @param requestFn implementation of request, that takes modified `request` and returns some + * results. + * @param itemsFn reference to the getter method, that returns `Collection` of results. + * @param nextPageFn return non-null request in case we need to fetch another page of results. + */ + @Deprecated public Paginator( RQ request, Function requestFn, Function> itemsFn, Function nextPageFn) { + this(request, requestFn, itemsFn, nextPageFn, false); + } + + private Paginator( + RQ request, + Function requestFn, + Function> itemsFn, + Function nextPageFn, + boolean tokenBasedPagination) { this.requestFn = requestFn; this.itemsFn = itemsFn; this.nextPageFn = nextPageFn; + this.tokenBasedPagination = tokenBasedPagination; all = outerIterator(); flipNextPage(request, true); } @@ -64,6 +133,12 @@ private boolean flipNextPage(RQ request, boolean firstRequest) { return false; } currentPage = results.iterator(); + // Token-based pagination may return an empty page that still carries a next_page_token, so + // advance to the next page (nextPageFn returns null once the token is absent) rather than + // treating an empty page as the end of results. + if (tokenBasedPagination && !currentPage.hasNext()) { + return flipNextPage(nextPageFn.apply(response), false); + } return currentPage.hasNext(); } diff --git a/databricks-sdk-java/src/test/java/com/databricks/sdk/support/PaginatorTest.java b/databricks-sdk-java/src/test/java/com/databricks/sdk/support/PaginatorTest.java new file mode 100644 index 000000000..bdf35a86c --- /dev/null +++ b/databricks-sdk-java/src/test/java/com/databricks/sdk/support/PaginatorTest.java @@ -0,0 +1,112 @@ +package com.databricks.sdk.support; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import org.junit.jupiter.api.Test; + +public class PaginatorTest { + + /** Mutable request, mirroring the generated request types (setters return {@code this}). */ + private static class Req { + String token; + int offset; + + Req() {} + + Req(String token) { + this.token = token; + } + + Req setToken(String token) { + this.token = token; + return this; + } + + Req setOffset(int offset) { + this.offset = offset; + return this; + } + } + + private static class Resp { + final List items; + final String nextToken; + + Resp(List items, String nextToken) { + this.items = items; + this.nextToken = nextToken; + } + } + + private static List drain(Iterable it) { + List out = new ArrayList<>(); + for (String s : it) { + out.add(s); + } + return out; + } + + /** Regression test for DECO-27280: empty leading pages with a token must not end iteration. */ + @Test + public void tokenPaginationWalksPastEmptyLeadingPages() { + Map pages = new HashMap<>(); + pages.put(null, new Resp(Collections.emptyList(), "t1")); + pages.put("t1", new Resp(Collections.emptyList(), "t2")); + pages.put("t2", new Resp(Arrays.asList("A", "B"), null)); + + Paginator p = + Paginator.newTokenPagination( + new Req(), + req -> pages.get(req.token), + resp -> resp.items, + resp -> resp.nextToken == null ? null : new Req(resp.nextToken)); + + assertEquals(Arrays.asList("A", "B"), drain(p)); + } + + /** Empty pages interleaved between non-empty pages must not truncate the results. */ + @Test + public void tokenPaginationWalksPastEmptyIntermediatePages() { + Map pages = new HashMap<>(); + pages.put(null, new Resp(Collections.singletonList("A"), "t1")); + pages.put("t1", new Resp(Collections.emptyList(), "t2")); + pages.put("t2", new Resp(Collections.singletonList("B"), null)); + + Paginator p = + Paginator.newTokenPagination( + new Req(), + req -> pages.get(req.token), + resp -> resp.items, + resp -> resp.nextToken == null ? null : new Req(resp.nextToken)); + + assertEquals(Arrays.asList("A", "B"), drain(p)); + } + + /** + * Offset pagination must still stop at the first empty page, even though its nextPageFn never + * returns null. Otherwise it would loop forever re-requesting incremented offsets. + */ + @Test + public void offsetPaginationStopsOnEmptyPage() { + Map pages = new HashMap<>(); + pages.put(0, new Resp(Arrays.asList("A", "B"), null)); + pages.put(2, new Resp(Collections.singletonList("C"), null)); + pages.put(3, new Resp(Collections.emptyList(), null)); + + Req request = new Req(); + Paginator p = + Paginator.newOffsetPagination( + request, + req -> pages.get(req.offset), + resp -> resp.items, + resp -> request.setOffset(request.offset + resp.items.size())); + + assertEquals(Arrays.asList("A", "B", "C"), drain(p)); + } +}