diff --git a/.codegen/_openapi_sha b/.codegen/_openapi_sha index f5dbf8885..7744b0be6 100644 --- a/.codegen/_openapi_sha +++ b/.codegen/_openapi_sha @@ -1 +1 @@ -6ee837f7c048388030c57718875c126999649e23 \ No newline at end of file +af49d5a35f4e1e1345166dc8299780e4c35e4f17 \ No newline at end of file diff --git a/.gitattributes b/.gitattributes index a7fc87bcc..dec2a350d 100644 --- a/.gitattributes +++ b/.gitattributes @@ -2088,6 +2088,7 @@ /home/ubuntu/workspace/databricks-sdk-java/databricks-sdk-java/src/main/java/com/databricks/sdk/service/postgres/CreateProjectRequest.java linguist-generated=true /home/ubuntu/workspace/databricks-sdk-java/databricks-sdk-java/src/main/java/com/databricks/sdk/service/postgres/CreateRoleOperation.java linguist-generated=true /home/ubuntu/workspace/databricks-sdk-java/databricks-sdk-java/src/main/java/com/databricks/sdk/service/postgres/CreateRoleRequest.java linguist-generated=true +/home/ubuntu/workspace/databricks-sdk-java/databricks-sdk-java/src/main/java/com/databricks/sdk/service/postgres/DatabaseCredential.java linguist-generated=true /home/ubuntu/workspace/databricks-sdk-java/databricks-sdk-java/src/main/java/com/databricks/sdk/service/postgres/DatabricksServiceExceptionWithDetailsProto.java linguist-generated=true /home/ubuntu/workspace/databricks-sdk-java/databricks-sdk-java/src/main/java/com/databricks/sdk/service/postgres/DeleteBranchOperation.java linguist-generated=true /home/ubuntu/workspace/databricks-sdk-java/databricks-sdk-java/src/main/java/com/databricks/sdk/service/postgres/DeleteBranchRequest.java linguist-generated=true @@ -2106,6 +2107,7 @@ /home/ubuntu/workspace/databricks-sdk-java/databricks-sdk-java/src/main/java/com/databricks/sdk/service/postgres/EndpointStatusState.java linguist-generated=true /home/ubuntu/workspace/databricks-sdk-java/databricks-sdk-java/src/main/java/com/databricks/sdk/service/postgres/EndpointType.java linguist-generated=true /home/ubuntu/workspace/databricks-sdk-java/databricks-sdk-java/src/main/java/com/databricks/sdk/service/postgres/ErrorCode.java linguist-generated=true +/home/ubuntu/workspace/databricks-sdk-java/databricks-sdk-java/src/main/java/com/databricks/sdk/service/postgres/GenerateDatabaseCredentialRequest.java linguist-generated=true /home/ubuntu/workspace/databricks-sdk-java/databricks-sdk-java/src/main/java/com/databricks/sdk/service/postgres/GetBranchRequest.java linguist-generated=true /home/ubuntu/workspace/databricks-sdk-java/databricks-sdk-java/src/main/java/com/databricks/sdk/service/postgres/GetEndpointRequest.java linguist-generated=true /home/ubuntu/workspace/databricks-sdk-java/databricks-sdk-java/src/main/java/com/databricks/sdk/service/postgres/GetOperationRequest.java linguist-generated=true @@ -2128,6 +2130,9 @@ /home/ubuntu/workspace/databricks-sdk-java/databricks-sdk-java/src/main/java/com/databricks/sdk/service/postgres/ProjectOperationMetadata.java linguist-generated=true /home/ubuntu/workspace/databricks-sdk-java/databricks-sdk-java/src/main/java/com/databricks/sdk/service/postgres/ProjectSpec.java linguist-generated=true /home/ubuntu/workspace/databricks-sdk-java/databricks-sdk-java/src/main/java/com/databricks/sdk/service/postgres/ProjectStatus.java linguist-generated=true +/home/ubuntu/workspace/databricks-sdk-java/databricks-sdk-java/src/main/java/com/databricks/sdk/service/postgres/RequestedClaims.java linguist-generated=true +/home/ubuntu/workspace/databricks-sdk-java/databricks-sdk-java/src/main/java/com/databricks/sdk/service/postgres/RequestedClaimsPermissionSet.java linguist-generated=true +/home/ubuntu/workspace/databricks-sdk-java/databricks-sdk-java/src/main/java/com/databricks/sdk/service/postgres/RequestedResource.java linguist-generated=true /home/ubuntu/workspace/databricks-sdk-java/databricks-sdk-java/src/main/java/com/databricks/sdk/service/postgres/Role.java linguist-generated=true /home/ubuntu/workspace/databricks-sdk-java/databricks-sdk-java/src/main/java/com/databricks/sdk/service/postgres/RoleAuthMethod.java linguist-generated=true /home/ubuntu/workspace/databricks-sdk-java/databricks-sdk-java/src/main/java/com/databricks/sdk/service/postgres/RoleIdentityType.java linguist-generated=true @@ -2701,13 +2706,17 @@ /home/ubuntu/workspace/databricks-sdk-java/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settingsv2/ClusterAutoRestartMessageMaintenanceWindowWeekDayFrequency.java linguist-generated=true /home/ubuntu/workspace/databricks-sdk-java/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settingsv2/ClusterAutoRestartMessageMaintenanceWindowWindowStartTime.java linguist-generated=true /home/ubuntu/workspace/databricks-sdk-java/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settingsv2/GetPublicAccountSettingRequest.java linguist-generated=true +/home/ubuntu/workspace/databricks-sdk-java/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settingsv2/GetPublicAccountUserPreferenceRequest.java linguist-generated=true /home/ubuntu/workspace/databricks-sdk-java/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settingsv2/GetPublicWorkspaceSettingRequest.java linguist-generated=true /home/ubuntu/workspace/databricks-sdk-java/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settingsv2/IntegerMessage.java linguist-generated=true /home/ubuntu/workspace/databricks-sdk-java/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settingsv2/ListAccountSettingsMetadataRequest.java linguist-generated=true /home/ubuntu/workspace/databricks-sdk-java/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settingsv2/ListAccountSettingsMetadataResponse.java linguist-generated=true +/home/ubuntu/workspace/databricks-sdk-java/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settingsv2/ListAccountUserPreferencesMetadataRequest.java linguist-generated=true +/home/ubuntu/workspace/databricks-sdk-java/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settingsv2/ListAccountUserPreferencesMetadataResponse.java linguist-generated=true /home/ubuntu/workspace/databricks-sdk-java/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settingsv2/ListWorkspaceSettingsMetadataRequest.java linguist-generated=true /home/ubuntu/workspace/databricks-sdk-java/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settingsv2/ListWorkspaceSettingsMetadataResponse.java linguist-generated=true /home/ubuntu/workspace/databricks-sdk-java/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settingsv2/PatchPublicAccountSettingRequest.java linguist-generated=true +/home/ubuntu/workspace/databricks-sdk-java/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settingsv2/PatchPublicAccountUserPreferenceRequest.java linguist-generated=true /home/ubuntu/workspace/databricks-sdk-java/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settingsv2/PatchPublicWorkspaceSettingRequest.java linguist-generated=true /home/ubuntu/workspace/databricks-sdk-java/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settingsv2/PersonalComputeMessage.java linguist-generated=true /home/ubuntu/workspace/databricks-sdk-java/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settingsv2/PersonalComputeMessagePersonalComputeMessageEnum.java linguist-generated=true @@ -2716,6 +2725,7 @@ /home/ubuntu/workspace/databricks-sdk-java/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settingsv2/Setting.java linguist-generated=true /home/ubuntu/workspace/databricks-sdk-java/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settingsv2/SettingsMetadata.java linguist-generated=true /home/ubuntu/workspace/databricks-sdk-java/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settingsv2/StringMessage.java linguist-generated=true +/home/ubuntu/workspace/databricks-sdk-java/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settingsv2/UserPreference.java linguist-generated=true /home/ubuntu/workspace/databricks-sdk-java/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settingsv2/WorkspaceSettingsV2API.java linguist-generated=true /home/ubuntu/workspace/databricks-sdk-java/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settingsv2/WorkspaceSettingsV2Impl.java linguist-generated=true /home/ubuntu/workspace/databricks-sdk-java/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settingsv2/WorkspaceSettingsV2Service.java linguist-generated=true diff --git a/NEXT_CHANGELOG.md b/NEXT_CHANGELOG.md index 6bf1914fa..fc96bdb5e 100644 --- a/NEXT_CHANGELOG.md +++ b/NEXT_CHANGELOG.md @@ -46,4 +46,6 @@ * [Breaking] Remove `settings` field for `com.databricks.sdk.service.postgres.ProjectSpec`. * [Breaking] Remove `settings` field for `com.databricks.sdk.service.postgres.ProjectStatus`. * Add `noExpiry` field for `com.databricks.sdk.service.postgres.BranchSpec`. -* Add `stderr` field for `com.databricks.sdk.service.compute.InitScriptInfoAndExecutionDetails`. \ No newline at end of file +* Add `stderr` field for `com.databricks.sdk.service.compute.InitScriptInfoAndExecutionDetails`. +* Add `generateDatabaseCredential()` method for `workspaceClient.postgres()` service. +* Add `getPublicAccountUserPreference()`, `listAccountUserPreferencesMetadata()` and `patchPublicAccountUserPreference()` methods for `accountClient.accountSettingsV2()` service. \ No newline at end of file diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/postgres/DatabaseCredential.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/postgres/DatabaseCredential.java new file mode 100644 index 000000000..2a4e5af0f --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/postgres/DatabaseCredential.java @@ -0,0 +1,59 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. + +package com.databricks.sdk.service.postgres; + +import com.databricks.sdk.support.Generated; +import com.databricks.sdk.support.ToStringer; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.google.protobuf.Timestamp; +import java.util.Objects; + +@Generated +public class DatabaseCredential { + /** Timestamp in UTC of when this credential expires. */ + @JsonProperty("expire_time") + private Timestamp expireTime; + + /** The OAuth token that can be used as a password when connecting to a database. */ + @JsonProperty("token") + private String token; + + public DatabaseCredential setExpireTime(Timestamp expireTime) { + this.expireTime = expireTime; + return this; + } + + public Timestamp getExpireTime() { + return expireTime; + } + + public DatabaseCredential setToken(String token) { + this.token = token; + return this; + } + + public String getToken() { + return token; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + DatabaseCredential that = (DatabaseCredential) o; + return Objects.equals(expireTime, that.expireTime) && Objects.equals(token, that.token); + } + + @Override + public int hashCode() { + return Objects.hash(expireTime, token); + } + + @Override + public String toString() { + return new ToStringer(DatabaseCredential.class) + .add("expireTime", expireTime) + .add("token", token) + .toString(); + } +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/postgres/GenerateDatabaseCredentialRequest.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/postgres/GenerateDatabaseCredentialRequest.java new file mode 100644 index 000000000..c16ac3b52 --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/postgres/GenerateDatabaseCredentialRequest.java @@ -0,0 +1,62 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. + +package com.databricks.sdk.service.postgres; + +import com.databricks.sdk.support.Generated; +import com.databricks.sdk.support.ToStringer; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Collection; +import java.util.Objects; + +@Generated +public class GenerateDatabaseCredentialRequest { + /** The returned token will be scoped to UC tables with the specified permissions. */ + @JsonProperty("claims") + private Collection claims; + + /** + * This field is not yet supported. The endpoint for which this credential will be generated. + * Format: projects/{project_id}/branches/{branch_id}/endpoints/{endpoint_id} + */ + @JsonProperty("endpoint") + private String endpoint; + + public GenerateDatabaseCredentialRequest setClaims(Collection claims) { + this.claims = claims; + return this; + } + + public Collection getClaims() { + return claims; + } + + public GenerateDatabaseCredentialRequest setEndpoint(String endpoint) { + this.endpoint = endpoint; + return this; + } + + public String getEndpoint() { + return endpoint; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + GenerateDatabaseCredentialRequest that = (GenerateDatabaseCredentialRequest) o; + return Objects.equals(claims, that.claims) && Objects.equals(endpoint, that.endpoint); + } + + @Override + public int hashCode() { + return Objects.hash(claims, endpoint); + } + + @Override + public String toString() { + return new ToStringer(GenerateDatabaseCredentialRequest.class) + .add("claims", claims) + .add("endpoint", endpoint) + .toString(); + } +} 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 8eaffccef..38536f2bf 100644 --- 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 @@ -114,6 +114,11 @@ public DeleteRoleOperation deleteRole(DeleteRoleRequest request) { return new DeleteRoleOperation(impl, operation); } + /** Generate OAuth credentials for a Postgres database. */ + public DatabaseCredential generateDatabaseCredential(GenerateDatabaseCredentialRequest request) { + return impl.generateDatabaseCredential(request); + } + public Branch getBranch(String name) { return getBranch(new GetBranchRequest().setName(name)); } diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/postgres/PostgresImpl.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/postgres/PostgresImpl.java index 891225717..57a63d924 100644 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/postgres/PostgresImpl.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/postgres/PostgresImpl.java @@ -132,6 +132,21 @@ public Operation deleteRole(DeleteRoleRequest request) { } } + @Override + public DatabaseCredential generateDatabaseCredential(GenerateDatabaseCredentialRequest request) { + String path = "/api/2.0/postgres/credentials"; + try { + Request req = new Request("POST", path, apiClient.serialize(request)); + + ApiClient.setQuery(req, request); + req.withHeader("Accept", "application/json"); + req.withHeader("Content-Type", "application/json"); + return apiClient.execute(req, DatabaseCredential.class); + } catch (IOException e) { + throw new DatabricksException("IO error: " + e.getMessage(), e); + } + } + @Override public Branch getBranch(GetBranchRequest request) { String path = String.format("/api/2.0/postgres/%s", request.getName()); diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/postgres/PostgresService.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/postgres/PostgresService.java index 9168e63d7..4cf29f90a 100644 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/postgres/PostgresService.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/postgres/PostgresService.java @@ -60,6 +60,10 @@ public interface PostgresService { /** Deletes the specified Postgres role. */ Operation deleteRole(DeleteRoleRequest deleteRoleRequest); + /** Generate OAuth credentials for a Postgres database. */ + DatabaseCredential generateDatabaseCredential( + GenerateDatabaseCredentialRequest generateDatabaseCredentialRequest); + /** Retrieves information about the specified database branch. */ Branch getBranch(GetBranchRequest getBranchRequest); diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/postgres/RequestedClaims.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/postgres/RequestedClaims.java new file mode 100644 index 000000000..60ce0c5c6 --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/postgres/RequestedClaims.java @@ -0,0 +1,60 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. + +package com.databricks.sdk.service.postgres; + +import com.databricks.sdk.support.Generated; +import com.databricks.sdk.support.ToStringer; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Collection; +import java.util.Objects; + +@Generated +public class RequestedClaims { + /** */ + @JsonProperty("permission_set") + private RequestedClaimsPermissionSet permissionSet; + + /** */ + @JsonProperty("resources") + private Collection resources; + + public RequestedClaims setPermissionSet(RequestedClaimsPermissionSet permissionSet) { + this.permissionSet = permissionSet; + return this; + } + + public RequestedClaimsPermissionSet getPermissionSet() { + return permissionSet; + } + + public RequestedClaims setResources(Collection resources) { + this.resources = resources; + return this; + } + + public Collection getResources() { + return resources; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + RequestedClaims that = (RequestedClaims) o; + return Objects.equals(permissionSet, that.permissionSet) + && Objects.equals(resources, that.resources); + } + + @Override + public int hashCode() { + return Objects.hash(permissionSet, resources); + } + + @Override + public String toString() { + return new ToStringer(RequestedClaims.class) + .add("permissionSet", permissionSet) + .add("resources", resources) + .toString(); + } +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/postgres/RequestedClaimsPermissionSet.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/postgres/RequestedClaimsPermissionSet.java new file mode 100644 index 000000000..a26d39ab1 --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/postgres/RequestedClaimsPermissionSet.java @@ -0,0 +1,10 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. + +package com.databricks.sdk.service.postgres; + +import com.databricks.sdk.support.Generated; + +@Generated +public enum RequestedClaimsPermissionSet { + READ_ONLY, +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/postgres/RequestedResource.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/postgres/RequestedResource.java new file mode 100644 index 000000000..ffc6ce7e2 --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/postgres/RequestedResource.java @@ -0,0 +1,59 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. + +package com.databricks.sdk.service.postgres; + +import com.databricks.sdk.support.Generated; +import com.databricks.sdk.support.ToStringer; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@Generated +public class RequestedResource { + /** */ + @JsonProperty("table_name") + private String tableName; + + /** */ + @JsonProperty("unspecified_resource_name") + private String unspecifiedResourceName; + + public RequestedResource setTableName(String tableName) { + this.tableName = tableName; + return this; + } + + public String getTableName() { + return tableName; + } + + public RequestedResource setUnspecifiedResourceName(String unspecifiedResourceName) { + this.unspecifiedResourceName = unspecifiedResourceName; + return this; + } + + public String getUnspecifiedResourceName() { + return unspecifiedResourceName; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + RequestedResource that = (RequestedResource) o; + return Objects.equals(tableName, that.tableName) + && Objects.equals(unspecifiedResourceName, that.unspecifiedResourceName); + } + + @Override + public int hashCode() { + return Objects.hash(tableName, unspecifiedResourceName); + } + + @Override + public String toString() { + return new ToStringer(RequestedResource.class) + .add("tableName", tableName) + .add("unspecifiedResourceName", unspecifiedResourceName) + .toString(); + } +} 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 d3a70d3ed..32010ad91 100644 --- 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 @@ -36,6 +36,22 @@ public Setting getPublicAccountSetting(GetPublicAccountSettingRequest request) { return impl.getPublicAccountSetting(request); } + public UserPreference getPublicAccountUserPreference(String userId, String name) { + return getPublicAccountUserPreference( + new GetPublicAccountUserPreferenceRequest().setUserId(userId).setName(name)); + } + + /** + * Get a user preference for a specific user. User preferences are personal settings that allow + * individual customization without affecting other users. See + * :method:settingsv2/listaccountuserpreferencesmetadata for list of user preferences available + * via public APIs. + */ + public UserPreference getPublicAccountUserPreference( + GetPublicAccountUserPreferenceRequest request) { + return impl.getPublicAccountUserPreference(request); + } + /** * List valid setting keys and metadata. These settings are available to be referenced via GET * :method:settingsv2/getpublicaccountsetting and PATCH @@ -56,6 +72,33 @@ public Iterable listAccountSettingsMetadata( }); } + public Iterable listAccountUserPreferencesMetadata(String userId) { + return listAccountUserPreferencesMetadata( + new ListAccountUserPreferencesMetadataRequest().setUserId(userId)); + } + + /** + * List valid user preferences and their metadata for a specific user. User preferences are + * personal settings that allow individual customization without affecting other users. These + * settings are available to be referenced via GET + * :method:settingsv2/getpublicaccountuserpreference and PATCH + * :method:settingsv2/patchpublicaccountuserpreference APIs + */ + public Iterable listAccountUserPreferencesMetadata( + ListAccountUserPreferencesMetadataRequest request) { + return new Paginator<>( + request, + impl::listAccountUserPreferencesMetadata, + ListAccountUserPreferencesMetadataResponse::getSettingsMetadata, + response -> { + String token = response.getNextPageToken(); + if (token == null || token.isEmpty()) { + return null; + } + return request.setPageToken(token); + }); + } + /** * Patch a setting value at account level. See :method:settingsv2/listaccountsettingsmetadata for * list of setting available via public APIs at account level. To determine the correct field to @@ -68,6 +111,19 @@ public Setting patchPublicAccountSetting(PatchPublicAccountSettingRequest reques return impl.patchPublicAccountSetting(request); } + /** + * Update a user preference for a specific user. User preferences are personal settings that allow + * individual customization without affecting other users. See + * :method:settingsv2/listaccountuserpreferencesmetadata for list of user preferences available + * via public APIs. + * + *

Note: Page refresh is required for changes to take effect in UI. + */ + public UserPreference patchPublicAccountUserPreference( + PatchPublicAccountUserPreferenceRequest request) { + return impl.patchPublicAccountUserPreference(request); + } + public AccountSettingsV2Service impl() { return impl; } diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settingsv2/AccountSettingsV2Impl.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settingsv2/AccountSettingsV2Impl.java old mode 100755 new mode 100644 index ada601c25..4f162eafd --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settingsv2/AccountSettingsV2Impl.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settingsv2/AccountSettingsV2Impl.java @@ -32,6 +32,24 @@ public Setting getPublicAccountSetting(GetPublicAccountSettingRequest request) { } } + @Override + public UserPreference getPublicAccountUserPreference( + GetPublicAccountUserPreferenceRequest request) { + String path = + String.format( + "/api/2.1/accounts/%s/users/%s/settings/%s", + apiClient.configuredAccountID(), request.getUserId(), request.getName()); + try { + Request req = new Request("GET", path); + + ApiClient.setQuery(req, request); + req.withHeader("Accept", "application/json"); + return apiClient.execute(req, UserPreference.class); + } catch (IOException e) { + throw new DatabricksException("IO error: " + e.getMessage(), e); + } + } + @Override public ListAccountSettingsMetadataResponse listAccountSettingsMetadata( ListAccountSettingsMetadataRequest request) { @@ -48,6 +66,24 @@ public ListAccountSettingsMetadataResponse listAccountSettingsMetadata( } } + @Override + public ListAccountUserPreferencesMetadataResponse listAccountUserPreferencesMetadata( + ListAccountUserPreferencesMetadataRequest request) { + String path = + String.format( + "/api/2.1/accounts/%s/users/%s/settings-metadata", + apiClient.configuredAccountID(), request.getUserId()); + try { + Request req = new Request("GET", path); + + ApiClient.setQuery(req, request); + req.withHeader("Accept", "application/json"); + return apiClient.execute(req, ListAccountUserPreferencesMetadataResponse.class); + } catch (IOException e) { + throw new DatabricksException("IO error: " + e.getMessage(), e); + } + } + @Override public Setting patchPublicAccountSetting(PatchPublicAccountSettingRequest request) { String path = @@ -64,4 +100,23 @@ public Setting patchPublicAccountSetting(PatchPublicAccountSettingRequest reques throw new DatabricksException("IO error: " + e.getMessage(), e); } } + + @Override + public UserPreference patchPublicAccountUserPreference( + PatchPublicAccountUserPreferenceRequest request) { + String path = + String.format( + "/api/2.1/accounts/%s/users/%s/settings/%s", + apiClient.configuredAccountID(), request.getUserId(), request.getName()); + try { + Request req = new Request("PATCH", path, apiClient.serialize(request.getSetting())); + + ApiClient.setQuery(req, request); + req.withHeader("Accept", "application/json"); + req.withHeader("Content-Type", "application/json"); + return apiClient.execute(req, UserPreference.class); + } catch (IOException e) { + throw new DatabricksException("IO error: " + e.getMessage(), e); + } + } } diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settingsv2/AccountSettingsV2Service.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settingsv2/AccountSettingsV2Service.java index 7b2959f29..aac5e57a8 100644 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settingsv2/AccountSettingsV2Service.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settingsv2/AccountSettingsV2Service.java @@ -18,6 +18,15 @@ public interface AccountSettingsV2Service { */ Setting getPublicAccountSetting(GetPublicAccountSettingRequest getPublicAccountSettingRequest); + /** + * Get a user preference for a specific user. User preferences are personal settings that allow + * individual customization without affecting other users. See + * :method:settingsv2/listaccountuserpreferencesmetadata for list of user preferences available + * via public APIs. + */ + UserPreference getPublicAccountUserPreference( + GetPublicAccountUserPreferenceRequest getPublicAccountUserPreferenceRequest); + /** * List valid setting keys and metadata. These settings are available to be referenced via GET * :method:settingsv2/getpublicaccountsetting and PATCH @@ -26,6 +35,16 @@ public interface AccountSettingsV2Service { ListAccountSettingsMetadataResponse listAccountSettingsMetadata( ListAccountSettingsMetadataRequest listAccountSettingsMetadataRequest); + /** + * List valid user preferences and their metadata for a specific user. User preferences are + * personal settings that allow individual customization without affecting other users. These + * settings are available to be referenced via GET + * :method:settingsv2/getpublicaccountuserpreference and PATCH + * :method:settingsv2/patchpublicaccountuserpreference APIs + */ + ListAccountUserPreferencesMetadataResponse listAccountUserPreferencesMetadata( + ListAccountUserPreferencesMetadataRequest listAccountUserPreferencesMetadataRequest); + /** * Patch a setting value at account level. See :method:settingsv2/listaccountsettingsmetadata for * list of setting available via public APIs at account level. To determine the correct field to @@ -36,4 +55,15 @@ ListAccountSettingsMetadataResponse listAccountSettingsMetadata( */ Setting patchPublicAccountSetting( PatchPublicAccountSettingRequest patchPublicAccountSettingRequest); + + /** + * Update a user preference for a specific user. User preferences are personal settings that allow + * individual customization without affecting other users. See + * :method:settingsv2/listaccountuserpreferencesmetadata for list of user preferences available + * via public APIs. + * + *

Note: Page refresh is required for changes to take effect in UI. + */ + UserPreference patchPublicAccountUserPreference( + PatchPublicAccountUserPreferenceRequest patchPublicAccountUserPreferenceRequest); } diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settingsv2/GetPublicAccountUserPreferenceRequest.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settingsv2/GetPublicAccountUserPreferenceRequest.java new file mode 100644 index 000000000..612f8b834 --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settingsv2/GetPublicAccountUserPreferenceRequest.java @@ -0,0 +1,56 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. + +package com.databricks.sdk.service.settingsv2; + +import com.databricks.sdk.support.Generated; +import com.databricks.sdk.support.ToStringer; +import com.fasterxml.jackson.annotation.JsonIgnore; +import java.util.Objects; + +@Generated +public class GetPublicAccountUserPreferenceRequest { + /** User Setting name. */ + @JsonIgnore private String name; + + /** User ID of the user whose setting is being retrieved. */ + @JsonIgnore private String userId; + + public GetPublicAccountUserPreferenceRequest setName(String name) { + this.name = name; + return this; + } + + public String getName() { + return name; + } + + public GetPublicAccountUserPreferenceRequest setUserId(String userId) { + this.userId = userId; + return this; + } + + public String getUserId() { + return userId; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + GetPublicAccountUserPreferenceRequest that = (GetPublicAccountUserPreferenceRequest) o; + return Objects.equals(name, that.name) && Objects.equals(userId, that.userId); + } + + @Override + public int hashCode() { + return Objects.hash(name, userId); + } + + @Override + public String toString() { + return new ToStringer(GetPublicAccountUserPreferenceRequest.class) + .add("name", name) + .add("userId", userId) + .toString(); + } +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settingsv2/ListAccountUserPreferencesMetadataRequest.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settingsv2/ListAccountUserPreferencesMetadataRequest.java new file mode 100644 index 000000000..f903747e2 --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settingsv2/ListAccountUserPreferencesMetadataRequest.java @@ -0,0 +1,86 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. + +package com.databricks.sdk.service.settingsv2; + +import com.databricks.sdk.support.Generated; +import com.databricks.sdk.support.QueryParam; +import com.databricks.sdk.support.ToStringer; +import com.fasterxml.jackson.annotation.JsonIgnore; +import java.util.Objects; + +@Generated +public class ListAccountUserPreferencesMetadataRequest { + /** + * The maximum number of settings to return. The service may return fewer than this value. If + * unspecified, at most 200 settings will be returned. The maximum value is 1000; values above + * 1000 will be coerced to 1000. + */ + @JsonIgnore + @QueryParam("page_size") + private Long pageSize; + + /** + * A page token, received from a previous `ListAccountUserPreferencesMetadataRequest` call. + * Provide this to retrieve the subsequent page. + * + *

When paginating, all other parameters provided to + * `ListAccountUserPreferencesMetadataRequest` must match the call that provided the page token. + */ + @JsonIgnore + @QueryParam("page_token") + private String pageToken; + + /** User ID of the user whose settings metadata is being retrieved. */ + @JsonIgnore private String userId; + + public ListAccountUserPreferencesMetadataRequest setPageSize(Long pageSize) { + this.pageSize = pageSize; + return this; + } + + public Long getPageSize() { + return pageSize; + } + + public ListAccountUserPreferencesMetadataRequest setPageToken(String pageToken) { + this.pageToken = pageToken; + return this; + } + + public String getPageToken() { + return pageToken; + } + + public ListAccountUserPreferencesMetadataRequest setUserId(String userId) { + this.userId = userId; + return this; + } + + public String getUserId() { + return userId; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + ListAccountUserPreferencesMetadataRequest that = (ListAccountUserPreferencesMetadataRequest) o; + return Objects.equals(pageSize, that.pageSize) + && Objects.equals(pageToken, that.pageToken) + && Objects.equals(userId, that.userId); + } + + @Override + public int hashCode() { + return Objects.hash(pageSize, pageToken, userId); + } + + @Override + public String toString() { + return new ToStringer(ListAccountUserPreferencesMetadataRequest.class) + .add("pageSize", pageSize) + .add("pageToken", pageToken) + .add("userId", userId) + .toString(); + } +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settingsv2/ListAccountUserPreferencesMetadataResponse.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settingsv2/ListAccountUserPreferencesMetadataResponse.java new file mode 100644 index 000000000..863232524 --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settingsv2/ListAccountUserPreferencesMetadataResponse.java @@ -0,0 +1,65 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. + +package com.databricks.sdk.service.settingsv2; + +import com.databricks.sdk.support.Generated; +import com.databricks.sdk.support.ToStringer; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Collection; +import java.util.Objects; + +@Generated +public class ListAccountUserPreferencesMetadataResponse { + /** + * A token that can be sent as `page_token` to retrieve the next page. If this field is omitted, + * there are no subsequent pages. + */ + @JsonProperty("next_page_token") + private String nextPageToken; + + /** List of all settings available via public APIs and their metadata */ + @JsonProperty("settings_metadata") + private Collection settingsMetadata; + + public ListAccountUserPreferencesMetadataResponse setNextPageToken(String nextPageToken) { + this.nextPageToken = nextPageToken; + return this; + } + + public String getNextPageToken() { + return nextPageToken; + } + + public ListAccountUserPreferencesMetadataResponse setSettingsMetadata( + Collection settingsMetadata) { + this.settingsMetadata = settingsMetadata; + return this; + } + + public Collection getSettingsMetadata() { + return settingsMetadata; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + ListAccountUserPreferencesMetadataResponse that = + (ListAccountUserPreferencesMetadataResponse) o; + return Objects.equals(nextPageToken, that.nextPageToken) + && Objects.equals(settingsMetadata, that.settingsMetadata); + } + + @Override + public int hashCode() { + return Objects.hash(nextPageToken, settingsMetadata); + } + + @Override + public String toString() { + return new ToStringer(ListAccountUserPreferencesMetadataResponse.class) + .add("nextPageToken", nextPageToken) + .add("settingsMetadata", settingsMetadata) + .toString(); + } +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settingsv2/PatchPublicAccountUserPreferenceRequest.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settingsv2/PatchPublicAccountUserPreferenceRequest.java new file mode 100644 index 000000000..9cb3ab371 --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settingsv2/PatchPublicAccountUserPreferenceRequest.java @@ -0,0 +1,73 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. + +package com.databricks.sdk.service.settingsv2; + +import com.databricks.sdk.support.Generated; +import com.databricks.sdk.support.ToStringer; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +@Generated +public class PatchPublicAccountUserPreferenceRequest { + /** */ + @JsonIgnore private String name; + + /** */ + @JsonProperty("setting") + private UserPreference setting; + + /** User ID of the user whose setting is being updated. */ + @JsonIgnore private String userId; + + public PatchPublicAccountUserPreferenceRequest setName(String name) { + this.name = name; + return this; + } + + public String getName() { + return name; + } + + public PatchPublicAccountUserPreferenceRequest setSetting(UserPreference setting) { + this.setting = setting; + return this; + } + + public UserPreference getSetting() { + return setting; + } + + public PatchPublicAccountUserPreferenceRequest setUserId(String userId) { + this.userId = userId; + return this; + } + + public String getUserId() { + return userId; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + PatchPublicAccountUserPreferenceRequest that = (PatchPublicAccountUserPreferenceRequest) o; + return Objects.equals(name, that.name) + && Objects.equals(setting, that.setting) + && Objects.equals(userId, that.userId); + } + + @Override + public int hashCode() { + return Objects.hash(name, setting, userId); + } + + @Override + public String toString() { + return new ToStringer(PatchPublicAccountUserPreferenceRequest.class) + .add("name", name) + .add("setting", setting) + .add("userId", userId) + .toString(); + } +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settingsv2/UserPreference.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settingsv2/UserPreference.java new file mode 100644 index 000000000..4d13d93c6 --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settingsv2/UserPreference.java @@ -0,0 +1,125 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. + +package com.databricks.sdk.service.settingsv2; + +import com.databricks.sdk.support.Generated; +import com.databricks.sdk.support.ToStringer; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +/** + * User Preference represents a user-specific setting scoped to an individual user within an + * account. Unlike workspace or account settings that apply to all users, user preferences allow + * personal customization (e.g., UI theme, editor preferences) without affecting other users. + */ +@Generated +public class UserPreference { + /** */ + @JsonProperty("boolean_val") + private BooleanMessage booleanVal; + + /** */ + @JsonProperty("effective_boolean_val") + private BooleanMessage effectiveBooleanVal; + + /** */ + @JsonProperty("effective_string_val") + private StringMessage effectiveStringVal; + + /** Name of the setting. */ + @JsonProperty("name") + private String name; + + /** */ + @JsonProperty("string_val") + private StringMessage stringVal; + + /** User ID of the user. */ + @JsonProperty("user_id") + private String userId; + + public UserPreference setBooleanVal(BooleanMessage booleanVal) { + this.booleanVal = booleanVal; + return this; + } + + public BooleanMessage getBooleanVal() { + return booleanVal; + } + + public UserPreference setEffectiveBooleanVal(BooleanMessage effectiveBooleanVal) { + this.effectiveBooleanVal = effectiveBooleanVal; + return this; + } + + public BooleanMessage getEffectiveBooleanVal() { + return effectiveBooleanVal; + } + + public UserPreference setEffectiveStringVal(StringMessage effectiveStringVal) { + this.effectiveStringVal = effectiveStringVal; + return this; + } + + public StringMessage getEffectiveStringVal() { + return effectiveStringVal; + } + + public UserPreference setName(String name) { + this.name = name; + return this; + } + + public String getName() { + return name; + } + + public UserPreference setStringVal(StringMessage stringVal) { + this.stringVal = stringVal; + return this; + } + + public StringMessage getStringVal() { + return stringVal; + } + + public UserPreference setUserId(String userId) { + this.userId = userId; + return this; + } + + public String getUserId() { + return userId; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + UserPreference that = (UserPreference) o; + return Objects.equals(booleanVal, that.booleanVal) + && Objects.equals(effectiveBooleanVal, that.effectiveBooleanVal) + && Objects.equals(effectiveStringVal, that.effectiveStringVal) + && Objects.equals(name, that.name) + && Objects.equals(stringVal, that.stringVal) + && Objects.equals(userId, that.userId); + } + + @Override + public int hashCode() { + return Objects.hash( + booleanVal, effectiveBooleanVal, effectiveStringVal, name, stringVal, userId); + } + + @Override + public String toString() { + return new ToStringer(UserPreference.class) + .add("booleanVal", booleanVal) + .add("effectiveBooleanVal", effectiveBooleanVal) + .add("effectiveStringVal", effectiveStringVal) + .add("name", name) + .add("stringVal", stringVal) + .add("userId", userId) + .toString(); + } +}