From d949173ca8c98c93e1c1f0fe2c6d23034a8045d7 Mon Sep 17 00:00:00 2001 From: Parth Bansal Date: Thu, 18 Sep 2025 08:30:20 +0000 Subject: [PATCH] update --- .codegen.json | 2 +- .codegen/_openapi_sha | 2 +- .gitattributes | 68 ++++-- .vscode/settings.json | 3 + NEXT_CHANGELOG.md | 40 ++++ .../com/databricks/sdk/AccountClient.java | 149 +++++++++--- .../com/databricks/sdk/WorkspaceClient.java | 145 +++++++++--- .../sdk/service/catalog/ConnectionType.java | 3 +- ...tiveOptimizationFlagInheritedFromType.java | 4 - .../sdk/service/catalog/SecurableKind.java | 3 + .../compute/TerminationReasonCode.java | 1 + .../service/dashboards/GenieAttachment.java | 31 +-- .../sdk/service/dashboards/GenieFeedback.java | 22 +- .../GenieSendMessageFeedbackRequest.java | 19 +- .../sdk/service/dashboards/GenieSpace.java | 19 +- ...=> GenieSuggestedQuestionsAttachment.java} | 8 +- .../service/dashboards/MessageErrorType.java | 1 + .../service/database/DatabaseInstance.java | 25 +- .../service/database/DatabaseInstanceRef.java | 9 +- .../sdk/service/iam/AccountGroup.java | 135 +++++++++++ .../sdk/service/iam/AccountGroupsV2API.java | 96 ++++++++ .../sdk/service/iam/AccountGroupsV2Impl.java | 111 +++++++++ .../service/iam/AccountGroupsV2Service.java | 43 ++++ .../service/iam/AccountServicePrincipal.java | 135 +++++++++++ .../iam/AccountServicePrincipalsV2API.java | 93 ++++++++ .../iam/AccountServicePrincipalsV2Impl.java | 114 +++++++++ .../AccountServicePrincipalsV2Service.java | 42 ++++ .../sdk/service/iam/AccountUser.java | 166 +++++++++++++ .../sdk/service/iam/AccountUsersV2API.java | 102 ++++++++ .../sdk/service/iam/AccountUsersV2Impl.java | 112 +++++++++ .../service/iam/AccountUsersV2Service.java | 49 ++++ .../iam/CreateAccountGroupRequest.java | 120 ++++++++++ .../CreateAccountServicePrincipalRequest.java | 120 ++++++++++ .../service/iam/CreateAccountUserRequest.java | 150 ++++++++++++ .../sdk/service/iam/CreateGroupRequest.java | 172 ++++++++++++++ .../iam/CreateServicePrincipalRequest.java | 172 ++++++++++++++ .../sdk/service/iam/CreateUserRequest.java | 219 ++++++++++++++++++ .../GetPasswordPermissionLevelsRequest.java | 28 +++ .../iam/GetPasswordPermissionsRequest.java | 28 +++ .../sdk/service/iam/GroupsV2API.java | 93 ++++++++ .../sdk/service/iam/GroupsV2Impl.java | 98 ++++++++ .../sdk/service/iam/GroupsV2Service.java | 40 ++++ .../iam/ListAccountGroupsResponse.java | 90 +++++++ .../ListAccountServicePrincipalsResponse.java | 91 ++++++++ .../service/iam/ListAccountUsersResponse.java | 90 +++++++ .../service/iam/PatchAccountGroupRequest.java | 75 ++++++ .../PatchAccountServicePrincipalRequest.java | 75 ++++++ .../service/iam/PatchAccountUserRequest.java | 75 ++++++ .../sdk/service/iam/PatchGroupRequest.java | 75 ++++++ .../iam/PatchServicePrincipalRequest.java | 75 ++++++ .../sdk/service/iam/PatchUserRequest.java | 75 ++++++ .../service/iam/ServicePrincipalsV2API.java | 93 ++++++++ .../service/iam/ServicePrincipalsV2Impl.java | 98 ++++++++ .../iam/ServicePrincipalsV2Service.java | 40 ++++ .../iam/UpdateAccountGroupRequest.java | 120 ++++++++++ .../UpdateAccountServicePrincipalRequest.java | 120 ++++++++++ .../service/iam/UpdateAccountUserRequest.java | 150 ++++++++++++ .../sdk/service/iam/UpdateGroupRequest.java | 172 ++++++++++++++ .../iam/UpdateServicePrincipalRequest.java | 172 ++++++++++++++ .../sdk/service/iam/UpdateUserRequest.java | 219 ++++++++++++++++++ .../sdk/service/iam/UsersV2API.java | 132 +++++++++++ .../sdk/service/iam/UsersV2Impl.java | 153 ++++++++++++ .../sdk/service/iam/UsersV2Service.java | 71 ++++++ .../sdk/service/jobs/ExportRunOutput.java | 4 +- .../databricks/sdk/service/jobs/RunTask.java | 20 +- .../databricks/sdk/service/jobs/RunType.java | 6 +- .../sdk/service/jobs/SubmitTask.java | 20 +- .../com/databricks/sdk/service/jobs/Task.java | 20 +- .../IngestionPipelineDefinition.java | 19 ++ ...lineDefinitionWorkdayReportParameters.java | 93 ++++++++ ...nWorkdayReportParametersQueryKeyValue.java | 64 +++++ .../pipelines/TableSpecificConfig.java | 21 +- .../sdk/service/sharing/SharesAPI.java | 16 +- .../sdk/service/sharing/SharesExtAPI.java | 44 ++++ .../sdk/service/sharing/SharesExtImpl.java | 27 +++ .../sdk/service/sharing/SharesExtService.java | 10 + .../sdk/service/sharing/SharesImpl.java | 8 +- .../service/sharing/SharesListRequest.java | 69 ++++++ .../sdk/service/sharing/SharesService.java | 4 +- ...ableInternalAttributesSharedTableType.java | 1 + scripts/cleanup-services.sh | 106 +++++++++ 81 files changed, 5558 insertions(+), 247 deletions(-) create mode 100644 .vscode/settings.json rename databricks-sdk-java/src/main/java/com/databricks/sdk/service/dashboards/{GenieFollowupQuestionsAttachment.java => GenieSuggestedQuestionsAttachment.java} (77%) create mode 100755 databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/AccountGroup.java create mode 100755 databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/AccountGroupsV2API.java create mode 100755 databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/AccountGroupsV2Impl.java create mode 100755 databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/AccountGroupsV2Service.java create mode 100755 databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/AccountServicePrincipal.java create mode 100755 databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/AccountServicePrincipalsV2API.java create mode 100755 databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/AccountServicePrincipalsV2Impl.java create mode 100755 databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/AccountServicePrincipalsV2Service.java create mode 100755 databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/AccountUser.java create mode 100755 databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/AccountUsersV2API.java create mode 100755 databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/AccountUsersV2Impl.java create mode 100755 databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/AccountUsersV2Service.java create mode 100755 databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/CreateAccountGroupRequest.java create mode 100755 databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/CreateAccountServicePrincipalRequest.java create mode 100755 databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/CreateAccountUserRequest.java create mode 100755 databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/CreateGroupRequest.java create mode 100755 databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/CreateServicePrincipalRequest.java create mode 100755 databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/CreateUserRequest.java create mode 100755 databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/GetPasswordPermissionLevelsRequest.java create mode 100755 databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/GetPasswordPermissionsRequest.java create mode 100755 databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/GroupsV2API.java create mode 100755 databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/GroupsV2Impl.java create mode 100755 databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/GroupsV2Service.java create mode 100755 databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/ListAccountGroupsResponse.java create mode 100755 databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/ListAccountServicePrincipalsResponse.java create mode 100755 databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/ListAccountUsersResponse.java create mode 100755 databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/PatchAccountGroupRequest.java create mode 100755 databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/PatchAccountServicePrincipalRequest.java create mode 100755 databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/PatchAccountUserRequest.java create mode 100755 databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/PatchGroupRequest.java create mode 100755 databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/PatchServicePrincipalRequest.java create mode 100755 databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/PatchUserRequest.java create mode 100755 databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/ServicePrincipalsV2API.java create mode 100755 databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/ServicePrincipalsV2Impl.java create mode 100755 databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/ServicePrincipalsV2Service.java create mode 100755 databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/UpdateAccountGroupRequest.java create mode 100755 databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/UpdateAccountServicePrincipalRequest.java create mode 100755 databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/UpdateAccountUserRequest.java create mode 100755 databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/UpdateGroupRequest.java create mode 100755 databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/UpdateServicePrincipalRequest.java create mode 100755 databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/UpdateUserRequest.java create mode 100755 databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/UsersV2API.java create mode 100755 databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/UsersV2Impl.java create mode 100755 databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/UsersV2Service.java create mode 100755 databricks-sdk-java/src/main/java/com/databricks/sdk/service/pipelines/IngestionPipelineDefinitionWorkdayReportParameters.java create mode 100755 databricks-sdk-java/src/main/java/com/databricks/sdk/service/pipelines/IngestionPipelineDefinitionWorkdayReportParametersQueryKeyValue.java create mode 100644 databricks-sdk-java/src/main/java/com/databricks/sdk/service/sharing/SharesExtAPI.java create mode 100644 databricks-sdk-java/src/main/java/com/databricks/sdk/service/sharing/SharesExtImpl.java create mode 100644 databricks-sdk-java/src/main/java/com/databricks/sdk/service/sharing/SharesExtService.java create mode 100755 databricks-sdk-java/src/main/java/com/databricks/sdk/service/sharing/SharesListRequest.java create mode 100755 scripts/cleanup-services.sh diff --git a/.codegen.json b/.codegen.json index f37be8c8c..b5c9d9dec 100644 --- a/.codegen.json +++ b/.codegen.json @@ -11,7 +11,7 @@ }, "toolchain": { "require": ["mvn", "java"], - "setup": ["rm -rf databricks-sdk-java/src/main/java/com/databricks/sdk/service"], + "setup": ["bash scripts/cleanup-services.sh"], "post_generate": ["mvn spotless:apply","mvn --errors clean test"] } } diff --git a/.codegen/_openapi_sha b/.codegen/_openapi_sha index 097cd4891..f09edb728 100644 --- a/.codegen/_openapi_sha +++ b/.codegen/_openapi_sha @@ -1 +1 @@ -25becc311a99e04a1cad9b7953dcb928ade9dade \ No newline at end of file +c3a3e3055fe11cb9683f398a665c225a03563ff1 \ No newline at end of file diff --git a/.gitattributes b/.gitattributes index dff8f67ce..38a03117f 100755 --- a/.gitattributes +++ b/.gitattributes @@ -931,7 +931,6 @@ databricks-sdk-java/src/main/java/com/databricks/sdk/service/dashboards/GenieExe databricks-sdk-java/src/main/java/com/databricks/sdk/service/dashboards/GenieExecuteMessageQueryRequest.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/dashboards/GenieFeedback.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/dashboards/GenieFeedbackRating.java linguist-generated=true -databricks-sdk-java/src/main/java/com/databricks/sdk/service/dashboards/GenieFollowupQuestionsAttachment.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/dashboards/GenieGetConversationMessageRequest.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/dashboards/GenieGetMessageAttachmentQueryResultRequest.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/dashboards/GenieGetMessageQueryResultRequest.java linguist-generated=true @@ -953,6 +952,7 @@ databricks-sdk-java/src/main/java/com/databricks/sdk/service/dashboards/GenieSer databricks-sdk-java/src/main/java/com/databricks/sdk/service/dashboards/GenieSpace.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/dashboards/GenieStartConversationMessageRequest.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/dashboards/GenieStartConversationResponse.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/dashboards/GenieSuggestedQuestionsAttachment.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/dashboards/GenieTrashSpaceRequest.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/dashboards/GetDashboardRequest.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/dashboards/GetPublishedDashboardRequest.java linguist-generated=true @@ -1093,20 +1093,29 @@ databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/AccountAccessCo databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/AccountAccessControlProxyImpl.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/AccountAccessControlProxyService.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/AccountAccessControlService.java linguist-generated=true -databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/AccountGroupsAPI.java linguist-generated=true -databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/AccountGroupsImpl.java linguist-generated=true -databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/AccountGroupsService.java linguist-generated=true -databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/AccountServicePrincipalsAPI.java linguist-generated=true -databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/AccountServicePrincipalsImpl.java linguist-generated=true -databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/AccountServicePrincipalsService.java linguist-generated=true -databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/AccountUsersAPI.java linguist-generated=true -databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/AccountUsersImpl.java linguist-generated=true -databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/AccountUsersService.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/AccountGroup.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/AccountGroupsV2API.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/AccountGroupsV2Impl.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/AccountGroupsV2Service.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/AccountServicePrincipal.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/AccountServicePrincipalsV2API.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/AccountServicePrincipalsV2Impl.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/AccountServicePrincipalsV2Service.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/AccountUser.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/AccountUsersV2API.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/AccountUsersV2Impl.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/AccountUsersV2Service.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/Actor.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/CheckPolicyRequest.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/CheckPolicyResponse.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/ComplexValue.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/ConsistencyToken.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/CreateAccountGroupRequest.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/CreateAccountServicePrincipalRequest.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/CreateAccountUserRequest.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/CreateGroupRequest.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/CreateServicePrincipalRequest.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/CreateUserRequest.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/CurrentUserAPI.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/CurrentUserImpl.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/CurrentUserService.java linguist-generated=true @@ -1123,7 +1132,9 @@ databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/GetAccountUserR databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/GetAssignableRolesForResourceRequest.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/GetAssignableRolesForResourceResponse.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/GetGroupRequest.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/GetPasswordPermissionLevelsRequest.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/GetPasswordPermissionLevelsResponse.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/GetPasswordPermissionsRequest.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/GetPermissionLevelsRequest.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/GetPermissionLevelsResponse.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/GetPermissionRequest.java linguist-generated=true @@ -1135,12 +1146,15 @@ databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/GetWorkspaceAss databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/GrantRule.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/Group.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/GroupSchema.java linguist-generated=true -databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/GroupsAPI.java linguist-generated=true -databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/GroupsImpl.java linguist-generated=true -databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/GroupsService.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/GroupsV2API.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/GroupsV2Impl.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/GroupsV2Service.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/ListAccountGroupsRequest.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/ListAccountGroupsResponse.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/ListAccountServicePrincipalsRequest.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/ListAccountServicePrincipalsResponse.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/ListAccountUsersRequest.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/ListAccountUsersResponse.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/ListGroupsRequest.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/ListGroupsResponse.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/ListResponseSchema.java linguist-generated=true @@ -1154,7 +1168,6 @@ databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/MigratePermissi databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/MigratePermissionsResponse.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/Name.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/ObjectPermissions.java linguist-generated=true -databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/PartialUpdate.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/PasswordAccessControlRequest.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/PasswordAccessControlResponse.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/PasswordPermission.java linguist-generated=true @@ -1163,8 +1176,14 @@ databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/PasswordPermiss databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/PasswordPermissionsDescription.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/PasswordPermissionsRequest.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/Patch.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/PatchAccountGroupRequest.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/PatchAccountServicePrincipalRequest.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/PatchAccountUserRequest.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/PatchGroupRequest.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/PatchOp.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/PatchSchema.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/PatchServicePrincipalRequest.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/PatchUserRequest.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/Permission.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/PermissionAssignment.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/PermissionAssignments.java linguist-generated=true @@ -1186,18 +1205,24 @@ databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/RuleSetResponse databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/RuleSetUpdateRequest.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/ServicePrincipal.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/ServicePrincipalSchema.java linguist-generated=true -databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/ServicePrincipalsAPI.java linguist-generated=true -databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/ServicePrincipalsImpl.java linguist-generated=true -databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/ServicePrincipalsService.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/ServicePrincipalsV2API.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/ServicePrincipalsV2Impl.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/ServicePrincipalsV2Service.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/SetObjectPermissions.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/UpdateAccountGroupRequest.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/UpdateAccountServicePrincipalRequest.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/UpdateAccountUserRequest.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/UpdateGroupRequest.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/UpdateObjectPermissions.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/UpdateRuleSetRequest.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/UpdateServicePrincipalRequest.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/UpdateUserRequest.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/UpdateWorkspaceAssignments.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/User.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/UserSchema.java linguist-generated=true -databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/UsersAPI.java linguist-generated=true -databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/UsersImpl.java linguist-generated=true -databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/UsersService.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/UsersV2API.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/UsersV2Impl.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/UsersV2Service.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/WorkspaceAssignmentAPI.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/WorkspaceAssignmentImpl.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/WorkspaceAssignmentService.java linguist-generated=true @@ -1903,6 +1928,8 @@ databricks-sdk-java/src/main/java/com/databricks/sdk/service/pipelines/Ingestion databricks-sdk-java/src/main/java/com/databricks/sdk/service/pipelines/IngestionGatewayPipelineDefinition.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/pipelines/IngestionPipelineDefinition.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/pipelines/IngestionPipelineDefinitionTableSpecificConfigQueryBasedConnectorConfig.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/pipelines/IngestionPipelineDefinitionWorkdayReportParameters.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/pipelines/IngestionPipelineDefinitionWorkdayReportParametersQueryKeyValue.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/pipelines/IngestionSourceType.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/pipelines/ListPipelineEventsRequest.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/pipelines/ListPipelineEventsResponse.java linguist-generated=true @@ -2610,6 +2637,7 @@ databricks-sdk-java/src/main/java/com/databricks/sdk/service/sharing/SharedDataO databricks-sdk-java/src/main/java/com/databricks/sdk/service/sharing/SharedSecurableKind.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/sharing/SharesAPI.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/sharing/SharesImpl.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/sharing/SharesListRequest.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/sharing/SharesService.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/sharing/Table.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/sharing/TableInternalAttributes.java linguist-generated=true diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 000000000..7b016a89f --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "java.compile.nullAnalysis.mode": "automatic" +} \ No newline at end of file diff --git a/NEXT_CHANGELOG.md b/NEXT_CHANGELOG.md index a80f60d2b..5c19ecb8b 100644 --- a/NEXT_CHANGELOG.md +++ b/NEXT_CHANGELOG.md @@ -11,3 +11,43 @@ ### Internal Changes ### API Changes +* Added `com.databricks.sdk.service.iamv2` package. +* Added `accountClient.accountGroupsV2()` service, `accountClient.accountServicePrincipalsV2()` service, `accountClient.accountUsersV2()` service, `workspaceClient.groupsV2()` service, `workspaceClient.servicePrincipalsV2()` service and `workspaceClient.usersV2()` service. +* Added `accountClient.accountIamV2()` service and `workspaceClient.workspaceIamV2()` service. +* Added `workspaceClient.featureEngineering()` service. +* Added `javaDependencies` field for `com.databricks.sdk.service.compute.Environment`. +* Added `followupQuestions` field for `com.databricks.sdk.service.dashboards.GenieAttachment`. +* Added `feedback` field for `com.databricks.sdk.service.dashboards.GenieMessage`. +* Added `comment` field for `com.databricks.sdk.service.dashboards.GenieSendMessageFeedbackRequest`. +* [Breaking] Added `rating` field for `com.databricks.sdk.service.dashboards.GenieSendMessageFeedbackRequest`. +* Added `effectiveCapacity`, `effectiveEnablePgNativeLogin` and `enablePgNativeLogin` fields for `com.databricks.sdk.service.database.DatabaseInstance`. +* Added `taskRetryMode` field for `com.databricks.sdk.service.jobs.Continuous`. +* Added `disabled` field for `com.databricks.sdk.service.jobs.Task`. +* Added `netsuiteJarPath` and `sourceConfigurations` fields for `com.databricks.sdk.service.pipelines.IngestionPipelineDefinition`. +* Added `workdayReportParameters` field for `com.databricks.sdk.service.pipelines.TableSpecificConfig`. +* Added `appId`, `appIdSet`, `authSecret`, `authSecretSet`, `channelUrl`, `channelUrlSet`, `tenantId` and `tenantIdSet` fields for `com.databricks.sdk.service.settings.MicrosoftTeamsConfig`. +* Added `auxiliaryManagedLocation` field for `com.databricks.sdk.service.sharing.TableInternalAttributes`. +* Added `alerts` field for `com.databricks.sdk.service.sql.ListAlertsV2Response`. +* Added `createTime` and `updateTime` fields for `com.databricks.sdk.service.tags.TagPolicy`. +* Added `ensureRerankerCompatible` field for `com.databricks.sdk.service.vectorsearch.GetIndexRequest`. +* Added `reranker` field for `com.databricks.sdk.service.vectorsearch.QueryVectorIndexRequest`. +* Added `TABLE_DELTA_UNIFORM_ICEBERG_FOREIGN_DELTASHARING` enum value for `com.databricks.sdk.service.catalog.SecurableKind`. +* Added `NO_ACTIVATED_K8S` and `USAGE_POLICY_ENTITLEMENT_DENIED` enum values for `com.databricks.sdk.service.compute.TerminationReasonCode`. +* Added `INTERNAL_CATALOG_PATH_OVERLAP_EXCEPTION` and `INTERNAL_CATALOG_MISSING_UC_PATH_EXCEPTION` enum values for `com.databricks.sdk.service.dashboards.MessageErrorType`. +* Added `FOREIGN_CATALOG` enum value for `com.databricks.sdk.service.pipelines.IngestionSourceType`. +* Added `FOREIGN_ICEBERG_TABLE` enum value for `com.databricks.sdk.service.sharing.TableInternalAttributesSharedTableType`. +* [Breaking] Changed `createCleanRoomAssetReview()` method for `workspaceClient.cleanRoomAssets()` service with new required argument order. +* [Breaking] Changed `sendMessageFeedback()` method for `workspaceClient.genie()` service with new required argument order. +* [Breaking] Removed `feedbackRating` and `feedbackText` fields for `com.databricks.sdk.service.dashboards.GenieSendMessageFeedbackRequest`. +* [Breaking] Removed `disabled` field for `com.databricks.sdk.service.jobs.RunTask`. +* [Breaking] Removed `defaultDataSecurityMode` and `effectiveDefaultDataSecurityMode` fields for `com.databricks.sdk.service.settingsv2.Setting`. +* Added `listShares()` method for `workspaceClient.shares()` service. +* Added `suggestedQuestions` field for `com.databricks.sdk.service.dashboards.GenieAttachment`. +* Added `warehouseId` field for `com.databricks.sdk.service.dashboards.GenieSpace`. +* Added `PALANTIR` enum value for `com.databricks.sdk.service.catalog.ConnectionType`. +* Added `TABLE_METRIC_VIEW_DELTASHARING` and `TABLE_FOREIGN_PALANTIR` enum values for `com.databricks.sdk.service.catalog.SecurableKind`. +* Added `NO_ACTIVATED_K8S_TESTING_TAG` enum value for `com.databricks.sdk.service.compute.TerminationReasonCode`. +* Added `METRIC_VIEW` enum value for `com.databricks.sdk.service.sharing.TableInternalAttributesSharedTableType`. +* [Breaking] Removed `followupQuestions` field for `com.databricks.sdk.service.dashboards.GenieAttachment`. +* [Breaking] Removed `comment` field for `com.databricks.sdk.service.dashboards.GenieFeedback`. +* [Breaking] Removed `comment` field for `com.databricks.sdk.service.dashboards.GenieSendMessageFeedbackRequest`. \ No newline at end of file diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/AccountClient.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/AccountClient.java index 68e1b7db7..5461ba07e 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/AccountClient.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/AccountClient.java @@ -26,10 +26,16 @@ import com.databricks.sdk.service.iam.AccountAccessControlService; import com.databricks.sdk.service.iam.AccountGroupsAPI; import com.databricks.sdk.service.iam.AccountGroupsService; +import com.databricks.sdk.service.iam.AccountGroupsV2API; +import com.databricks.sdk.service.iam.AccountGroupsV2Service; import com.databricks.sdk.service.iam.AccountServicePrincipalsAPI; import com.databricks.sdk.service.iam.AccountServicePrincipalsService; +import com.databricks.sdk.service.iam.AccountServicePrincipalsV2API; +import com.databricks.sdk.service.iam.AccountServicePrincipalsV2Service; import com.databricks.sdk.service.iam.AccountUsersAPI; import com.databricks.sdk.service.iam.AccountUsersService; +import com.databricks.sdk.service.iam.AccountUsersV2API; +import com.databricks.sdk.service.iam.AccountUsersV2Service; import com.databricks.sdk.service.iam.WorkspaceAssignmentAPI; import com.databricks.sdk.service.iam.WorkspaceAssignmentService; import com.databricks.sdk.service.iamv2.AccountIamV2API; @@ -89,7 +95,7 @@ public class AccountClient { private CustomAppIntegrationAPI customAppIntegrationAPI; private EncryptionKeysAPI encryptionKeysAPI; private AccountFederationPolicyAPI federationPolicyAPI; - private AccountGroupsAPI groupsAPI; + private AccountGroupsV2API groupsV2API; private AccountIamV2API iamV2API; private AccountIpAccessListsAPI ipAccessListsAPI; private LogDeliveryAPI logDeliveryAPI; @@ -103,17 +109,20 @@ public class AccountClient { private PublishedAppIntegrationAPI publishedAppIntegrationAPI; private ServicePrincipalFederationPolicyAPI servicePrincipalFederationPolicyAPI; private ServicePrincipalSecretsAPI servicePrincipalSecretsAPI; - private AccountServicePrincipalsAPI servicePrincipalsAPI; + private AccountServicePrincipalsV2API servicePrincipalsV2API; private AccountSettingsAPI settingsAPI; private AccountSettingsV2API settingsV2API; private StorageAPI storageAPI; private AccountStorageCredentialsAPI storageCredentialsAPI; private UsageDashboardsAPI usageDashboardsAPI; - private AccountUsersAPI usersAPI; + private AccountUsersV2API usersV2API; private VpcEndpointsAPI vpcEndpointsAPI; private WorkspaceAssignmentAPI workspaceAssignmentAPI; private WorkspaceNetworkConfigurationAPI workspaceNetworkConfigurationAPI; private WorkspacesAPI workspacesAPI; + private AccountGroupsAPI groupsAPI; + private AccountServicePrincipalsAPI servicePrincipalsAPI; + private AccountUsersAPI usersAPI; public AccountClient() { this(ConfigLoader.getDefault()); @@ -131,7 +140,7 @@ public AccountClient(DatabricksConfig config) { customAppIntegrationAPI = new CustomAppIntegrationAPI(apiClient); encryptionKeysAPI = new EncryptionKeysAPI(apiClient); federationPolicyAPI = new AccountFederationPolicyAPI(apiClient); - groupsAPI = new AccountGroupsAPI(apiClient); + groupsV2API = new AccountGroupsV2API(apiClient); iamV2API = new AccountIamV2API(apiClient); ipAccessListsAPI = new AccountIpAccessListsAPI(apiClient); logDeliveryAPI = new LogDeliveryAPI(apiClient); @@ -145,17 +154,20 @@ public AccountClient(DatabricksConfig config) { publishedAppIntegrationAPI = new PublishedAppIntegrationAPI(apiClient); servicePrincipalFederationPolicyAPI = new ServicePrincipalFederationPolicyAPI(apiClient); servicePrincipalSecretsAPI = new ServicePrincipalSecretsAPI(apiClient); - servicePrincipalsAPI = new AccountServicePrincipalsAPI(apiClient); + servicePrincipalsV2API = new AccountServicePrincipalsV2API(apiClient); settingsAPI = new AccountSettingsAPI(apiClient); settingsV2API = new AccountSettingsV2API(apiClient); storageAPI = new StorageAPI(apiClient); storageCredentialsAPI = new AccountStorageCredentialsAPI(apiClient); usageDashboardsAPI = new UsageDashboardsAPI(apiClient); - usersAPI = new AccountUsersAPI(apiClient); + usersV2API = new AccountUsersV2API(apiClient); vpcEndpointsAPI = new VpcEndpointsAPI(apiClient); workspaceAssignmentAPI = new WorkspaceAssignmentAPI(apiClient); workspaceNetworkConfigurationAPI = new WorkspaceNetworkConfigurationAPI(apiClient); workspacesAPI = new WorkspacesAPI(apiClient); + groupsAPI = new AccountGroupsAPI(apiClient); + servicePrincipalsAPI = new AccountServicePrincipalsAPI(apiClient); + usersAPI = new AccountUsersAPI(apiClient); } /** Constructor for mocks */ @@ -291,8 +303,8 @@ public AccountFederationPolicyAPI federationPolicy() { * assigned as members of groups, and members inherit permissions that are assigned to their * group. */ - public AccountGroupsAPI groups() { - return groupsAPI; + public AccountGroupsV2API groupsV2() { + return groupsV2API; } /** @@ -540,8 +552,8 @@ public ServicePrincipalSecretsAPI servicePrincipalSecrets() { * interactive users do not need any write, delete, or modify privileges in production. This * eliminates the risk of a user overwriting production data by accident. */ - public AccountServicePrincipalsAPI servicePrincipals() { - return servicePrincipalsAPI; + public AccountServicePrincipalsV2API servicePrincipalsV2() { + return servicePrincipalsV2API; } /** Accounts Settings API allows users to manage settings at the account level. */ @@ -590,8 +602,8 @@ public UsageDashboardsAPI usageDashboards() { * user’s account will also be removed from Databricks account. This ensures a consistent * offboarding process and prevents unauthorized users from accessing sensitive data. */ - public AccountUsersAPI users() { - return usersAPI; + public AccountUsersV2API usersV2() { + return usersV2API; } /** These APIs manage VPC endpoint configurations for this account. */ @@ -632,6 +644,43 @@ public WorkspacesAPI workspaces() { return workspacesAPI; } + /** + * Groups simplify identity management, making it easier to assign access to Databricks account, + * data, and other securable objects. + * + *

It is best practice to assign access to workspaces and access-control policies in Unity + * Catalog to groups, instead of to users individually. All Databricks account identities can be + * assigned as members of groups, and members inherit permissions that are assigned to their + * group. + */ + public AccountGroupsAPI groups() { + return groupsAPI; + } + /** + * Identities for use with jobs, automated tools, and systems such as scripts, apps, and CI/CD + * platforms. Databricks recommends creating service principals to run production jobs or modify + * production data. If all processes that act on production data run with service principals, + * interactive users do not need any write, delete, or modify privileges in production. This + * eliminates the risk of a user overwriting production data by accident. + */ + public AccountServicePrincipalsAPI servicePrincipals() { + return servicePrincipalsAPI; + } + /** + * User identities recognized by Databricks and represented by email addresses. + * + *

Databricks recommends using SCIM provisioning to sync users and groups automatically from + * your identity provider to your Databricks account. SCIM streamlines onboarding a new employee + * or team by using your identity provider to create users and groups in Databricks account and + * give them the proper level of access. When a user leaves your organization or no longer needs + * access to Databricks account, admins can terminate the user in your identity provider and that + * user’s account will also be removed from Databricks account. This ensures a consistent + * offboarding process and prevents unauthorized users from accessing sensitive data. + */ + public AccountUsersAPI users() { + return usersAPI; + } + /** Replace the default AccountAccessControlService with a custom implementation. */ public AccountClient withAccessControlImpl(AccountAccessControlService accountAccessControl) { return this.withAccessControlAPI(new AccountAccessControlAPI(accountAccessControl)); @@ -722,14 +771,14 @@ public AccountClient withFederationPolicyAPI(AccountFederationPolicyAPI accountF return this; } - /** Replace the default AccountGroupsService with a custom implementation. */ - public AccountClient withGroupsImpl(AccountGroupsService accountGroups) { - return this.withGroupsAPI(new AccountGroupsAPI(accountGroups)); + /** Replace the default AccountGroupsV2Service with a custom implementation. */ + public AccountClient withGroupsV2Impl(AccountGroupsV2Service accountGroupsV2) { + return this.withGroupsV2API(new AccountGroupsV2API(accountGroupsV2)); } - /** Replace the default AccountGroupsAPI with a custom implementation. */ - public AccountClient withGroupsAPI(AccountGroupsAPI accountGroups) { - this.groupsAPI = accountGroups; + /** Replace the default AccountGroupsV2API with a custom implementation. */ + public AccountClient withGroupsV2API(AccountGroupsV2API accountGroupsV2) { + this.groupsV2API = accountGroupsV2; return this; } @@ -888,16 +937,17 @@ public AccountClient withServicePrincipalSecretsAPI( return this; } - /** Replace the default AccountServicePrincipalsService with a custom implementation. */ - public AccountClient withServicePrincipalsImpl( - AccountServicePrincipalsService accountServicePrincipals) { - return this.withServicePrincipalsAPI(new AccountServicePrincipalsAPI(accountServicePrincipals)); + /** Replace the default AccountServicePrincipalsV2Service with a custom implementation. */ + public AccountClient withServicePrincipalsV2Impl( + AccountServicePrincipalsV2Service accountServicePrincipalsV2) { + return this.withServicePrincipalsV2API( + new AccountServicePrincipalsV2API(accountServicePrincipalsV2)); } - /** Replace the default AccountServicePrincipalsAPI with a custom implementation. */ - public AccountClient withServicePrincipalsAPI( - AccountServicePrincipalsAPI accountServicePrincipals) { - this.servicePrincipalsAPI = accountServicePrincipals; + /** Replace the default AccountServicePrincipalsV2API with a custom implementation. */ + public AccountClient withServicePrincipalsV2API( + AccountServicePrincipalsV2API accountServicePrincipalsV2) { + this.servicePrincipalsV2API = accountServicePrincipalsV2; return this; } @@ -959,14 +1009,14 @@ public AccountClient withUsageDashboardsAPI(UsageDashboardsAPI usageDashboards) return this; } - /** Replace the default AccountUsersService with a custom implementation. */ - public AccountClient withUsersImpl(AccountUsersService accountUsers) { - return this.withUsersAPI(new AccountUsersAPI(accountUsers)); + /** Replace the default AccountUsersV2Service with a custom implementation. */ + public AccountClient withUsersV2Impl(AccountUsersV2Service accountUsersV2) { + return this.withUsersV2API(new AccountUsersV2API(accountUsersV2)); } - /** Replace the default AccountUsersAPI with a custom implementation. */ - public AccountClient withUsersAPI(AccountUsersAPI accountUsers) { - this.usersAPI = accountUsers; + /** Replace the default AccountUsersV2API with a custom implementation. */ + public AccountClient withUsersV2API(AccountUsersV2API accountUsersV2) { + this.usersV2API = accountUsersV2; return this; } @@ -1017,6 +1067,41 @@ public AccountClient withWorkspacesAPI(WorkspacesAPI workspaces) { return this; } + /** Replace the default AccountGroupsService with a custom implementation. */ + public AccountClient withGroupsImpl(AccountGroupsService accountGroups) { + return this.withGroupsAPI(new AccountGroupsAPI(accountGroups)); + } + + /** Replace the default AccountGroupsAPI with a custom implementation. */ + public AccountClient withGroupsAPI(AccountGroupsAPI accountGroups) { + this.groupsAPI = accountGroups; + return this; + } + + /** Replace the default AccountServicePrincipalsService with a custom implementation. */ + public AccountClient withServicePrincipalsImpl( + AccountServicePrincipalsService accountServicePrincipals) { + return this.withServicePrincipalsAPI(new AccountServicePrincipalsAPI(accountServicePrincipals)); + } + + /** Replace the default AccountServicePrincipalsAPI with a custom implementation. */ + public AccountClient withServicePrincipalsAPI( + AccountServicePrincipalsAPI accountServicePrincipals) { + this.servicePrincipalsAPI = accountServicePrincipals; + return this; + } + + /** Replace the default AccountUsersService with a custom implementation. */ + public AccountClient withUsersImpl(AccountUsersService accountUsers) { + return this.withUsersAPI(new AccountUsersAPI(accountUsers)); + } + + /** Replace the default AccountUsersAPI with a custom implementation. */ + public AccountClient withUsersAPI(AccountUsersAPI accountUsers) { + this.usersAPI = accountUsers; + return this; + } + public ApiClient apiClient() { return apiClient; } diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/WorkspaceClient.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/WorkspaceClient.java index e4c648522..bac85f5a9 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/WorkspaceClient.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/WorkspaceClient.java @@ -114,14 +114,20 @@ import com.databricks.sdk.service.iam.CurrentUserService; import com.databricks.sdk.service.iam.GroupsAPI; import com.databricks.sdk.service.iam.GroupsService; +import com.databricks.sdk.service.iam.GroupsV2API; +import com.databricks.sdk.service.iam.GroupsV2Service; import com.databricks.sdk.service.iam.PermissionMigrationAPI; import com.databricks.sdk.service.iam.PermissionMigrationService; import com.databricks.sdk.service.iam.PermissionsAPI; import com.databricks.sdk.service.iam.PermissionsService; import com.databricks.sdk.service.iam.ServicePrincipalsAPI; import com.databricks.sdk.service.iam.ServicePrincipalsService; +import com.databricks.sdk.service.iam.ServicePrincipalsV2API; +import com.databricks.sdk.service.iam.ServicePrincipalsV2Service; import com.databricks.sdk.service.iam.UsersAPI; import com.databricks.sdk.service.iam.UsersService; +import com.databricks.sdk.service.iam.UsersV2API; +import com.databricks.sdk.service.iam.UsersV2Service; import com.databricks.sdk.service.iamv2.WorkspaceIamV2API; import com.databricks.sdk.service.iamv2.WorkspaceIamV2Service; import com.databricks.sdk.service.jobs.JobsAPI; @@ -298,7 +304,7 @@ public class WorkspaceClient { private GitCredentialsAPI gitCredentialsAPI; private GlobalInitScriptsAPI globalInitScriptsAPI; private GrantsAPI grantsAPI; - private GroupsAPI groupsAPI; + private GroupsV2API groupsV2API; private InstancePoolsAPI instancePoolsAPI; private InstanceProfilesAPI instanceProfilesAPI; private IpAccessListsAPI ipAccessListsAPI; @@ -345,7 +351,7 @@ public class WorkspaceClient { private SchemasAPI schemasAPI; private SecretsExt secretsAPI; private ServicePrincipalSecretsProxyAPI servicePrincipalSecretsProxyAPI; - private ServicePrincipalsAPI servicePrincipalsAPI; + private ServicePrincipalsV2API servicePrincipalsV2API; private ServingEndpointsAPI servingEndpointsAPI; private ServingEndpointsDataPlaneAPI servingEndpointsDataPlaneAPI; private SettingsAPI settingsAPI; @@ -360,7 +366,7 @@ public class WorkspaceClient { private TemporaryTableCredentialsAPI temporaryTableCredentialsAPI; private TokenManagementAPI tokenManagementAPI; private TokensAPI tokensAPI; - private UsersAPI usersAPI; + private UsersV2API usersV2API; private VectorSearchEndpointsAPI vectorSearchEndpointsAPI; private VectorSearchIndexesAPI vectorSearchIndexesAPI; private VolumesAPI volumesAPI; @@ -370,6 +376,9 @@ public class WorkspaceClient { private WorkspaceConfAPI workspaceConfAPI; private WorkspaceIamV2API workspaceIamV2API; private WorkspaceSettingsV2API workspaceSettingsV2API; + private GroupsAPI groupsAPI; + private ServicePrincipalsAPI servicePrincipalsAPI; + private UsersAPI usersAPI; public WorkspaceClient() { this(ConfigLoader.getDefault()); @@ -425,7 +434,7 @@ public WorkspaceClient(DatabricksConfig config) { gitCredentialsAPI = new GitCredentialsAPI(apiClient); globalInitScriptsAPI = new GlobalInitScriptsAPI(apiClient); grantsAPI = new GrantsAPI(apiClient); - groupsAPI = new GroupsAPI(apiClient); + groupsV2API = new GroupsV2API(apiClient); instancePoolsAPI = new InstancePoolsAPI(apiClient); instanceProfilesAPI = new InstanceProfilesAPI(apiClient); ipAccessListsAPI = new IpAccessListsAPI(apiClient); @@ -472,7 +481,7 @@ public WorkspaceClient(DatabricksConfig config) { schemasAPI = new SchemasAPI(apiClient); secretsAPI = new SecretsExt(apiClient); servicePrincipalSecretsProxyAPI = new ServicePrincipalSecretsProxyAPI(apiClient); - servicePrincipalsAPI = new ServicePrincipalsAPI(apiClient); + servicePrincipalsV2API = new ServicePrincipalsV2API(apiClient); servingEndpointsAPI = new ServingEndpointsAPI(apiClient); servingEndpointsDataPlaneAPI = new ServingEndpointsDataPlaneAPI(apiClient, config, servingEndpointsAPI); @@ -488,7 +497,7 @@ public WorkspaceClient(DatabricksConfig config) { temporaryTableCredentialsAPI = new TemporaryTableCredentialsAPI(apiClient); tokenManagementAPI = new TokenManagementAPI(apiClient); tokensAPI = new TokensAPI(apiClient); - usersAPI = new UsersAPI(apiClient); + usersV2API = new UsersV2API(apiClient); vectorSearchEndpointsAPI = new VectorSearchEndpointsAPI(apiClient); vectorSearchIndexesAPI = new VectorSearchIndexesAPI(apiClient); volumesAPI = new VolumesAPI(apiClient); @@ -498,6 +507,9 @@ public WorkspaceClient(DatabricksConfig config) { workspaceConfAPI = new WorkspaceConfAPI(apiClient); workspaceIamV2API = new WorkspaceIamV2API(apiClient); workspaceSettingsV2API = new WorkspaceSettingsV2API(apiClient); + groupsAPI = new GroupsAPI(apiClient); + servicePrincipalsAPI = new ServicePrincipalsAPI(apiClient); + usersAPI = new UsersAPI(apiClient); } /** Constructor for mocks */ @@ -1025,8 +1037,8 @@ public GrantsAPI grants() { * assigned as members of groups, and members inherit permissions that are assigned to their * group. */ - public GroupsAPI groups() { - return groupsAPI; + public GroupsV2API groupsV2() { + return groupsV2API; } /** @@ -1645,8 +1657,8 @@ public ServicePrincipalSecretsProxyAPI servicePrincipalSecretsProxy() { * interactive users do not need any write, delete, or modify privileges in production. This * eliminates the risk of a user overwriting production data by accident. */ - public ServicePrincipalsAPI servicePrincipals() { - return servicePrincipalsAPI; + public ServicePrincipalsV2API servicePrincipalsV2() { + return servicePrincipalsV2API; } /** @@ -1927,8 +1939,8 @@ public TokensAPI tokens() { * that user’s account will also be removed from Databricks workspace. This ensures a consistent * offboarding process and prevents unauthorized users from accessing sensitive data. */ - public UsersAPI users() { - return usersAPI; + public UsersV2API usersV2() { + return usersV2API; } /** **Endpoint**: Represents the compute resources to host vector search indexes. */ @@ -2024,6 +2036,45 @@ public WorkspaceSettingsV2API workspaceSettingsV2() { return workspaceSettingsV2API; } + /** + * Groups simplify identity management, making it easier to assign access to Databricks workspace, + * data, and other securable objects. + * + *

It is best practice to assign access to workspaces and access-control policies in Unity + * Catalog to groups, instead of to users individually. All Databricks workspace identities can be + * assigned as members of groups, and members inherit permissions that are assigned to their + * group. + */ + public GroupsAPI groups() { + return groupsAPI; + } + + /** + * Identities for use with jobs, automated tools, and systems such as scripts, apps, and CI/CD + * platforms. Databricks recommends creating service principals to run production jobs or modify + * production data. If all processes that act on production data run with service principals, + * interactive users do not need any write, delete, or modify privileges in production. This + * eliminates the risk of a user overwriting production data by accident. + */ + public ServicePrincipalsAPI servicePrincipals() { + return servicePrincipalsAPI; + } + + /** + * User identities recognized by Databricks and represented by email addresses. + * + *

Databricks recommends using SCIM provisioning to sync users and groups automatically from + * your identity provider to your Databricks workspace. SCIM streamlines onboarding a new employee + * or team by using your identity provider to create users and groups in Databricks workspace and + * give them the proper level of access. When a user leaves your organization or no longer needs + * access to Databricks workspace, admins can terminate the user in your identity provider and + * that user’s account will also be removed from Databricks workspace. This ensures a consistent + * offboarding process and prevents unauthorized users from accessing sensitive data. + */ + public UsersAPI users() { + return usersAPI; + } + /** Replace the default AccessControlService with a custom implementation. */ public WorkspaceClient withAccessControlImpl(AccessControlService accessControl) { return this.withAccessControlAPI(new AccessControlAPI(accessControl)); @@ -2557,14 +2608,14 @@ public WorkspaceClient withGrantsAPI(GrantsAPI grants) { return this; } - /** Replace the default GroupsService with a custom implementation. */ - public WorkspaceClient withGroupsImpl(GroupsService groups) { - return this.withGroupsAPI(new GroupsAPI(groups)); + /** Replace the default GroupsV2Service with a custom implementation. */ + public WorkspaceClient withGroupsV2Impl(GroupsV2Service groupsV2) { + return this.withGroupsV2API(new GroupsV2API(groupsV2)); } - /** Replace the default GroupsAPI with a custom implementation. */ - public WorkspaceClient withGroupsAPI(GroupsAPI groups) { - this.groupsAPI = groups; + /** Replace the default GroupsV2API with a custom implementation. */ + public WorkspaceClient withGroupsV2API(GroupsV2API groupsV2) { + this.groupsV2API = groupsV2; return this; } @@ -3107,14 +3158,15 @@ public WorkspaceClient withServicePrincipalSecretsProxyAPI( return this; } - /** Replace the default ServicePrincipalsService with a custom implementation. */ - public WorkspaceClient withServicePrincipalsImpl(ServicePrincipalsService servicePrincipals) { - return this.withServicePrincipalsAPI(new ServicePrincipalsAPI(servicePrincipals)); + /** Replace the default ServicePrincipalsV2Service with a custom implementation. */ + public WorkspaceClient withServicePrincipalsV2Impl( + ServicePrincipalsV2Service servicePrincipalsV2) { + return this.withServicePrincipalsV2API(new ServicePrincipalsV2API(servicePrincipalsV2)); } - /** Replace the default ServicePrincipalsAPI with a custom implementation. */ - public WorkspaceClient withServicePrincipalsAPI(ServicePrincipalsAPI servicePrincipals) { - this.servicePrincipalsAPI = servicePrincipals; + /** Replace the default ServicePrincipalsV2API with a custom implementation. */ + public WorkspaceClient withServicePrincipalsV2API(ServicePrincipalsV2API servicePrincipalsV2) { + this.servicePrincipalsV2API = servicePrincipalsV2; return this; } @@ -3281,14 +3333,14 @@ public WorkspaceClient withTokensAPI(TokensAPI tokens) { return this; } - /** Replace the default UsersService with a custom implementation. */ - public WorkspaceClient withUsersImpl(UsersService users) { - return this.withUsersAPI(new UsersAPI(users)); + /** Replace the default UsersV2Service with a custom implementation. */ + public WorkspaceClient withUsersV2Impl(UsersV2Service usersV2) { + return this.withUsersV2API(new UsersV2API(usersV2)); } - /** Replace the default UsersAPI with a custom implementation. */ - public WorkspaceClient withUsersAPI(UsersAPI users) { - this.usersAPI = users; + /** Replace the default UsersV2API with a custom implementation. */ + public WorkspaceClient withUsersV2API(UsersV2API usersV2) { + this.usersV2API = usersV2; return this; } @@ -3395,6 +3447,39 @@ public WorkspaceClient withWorkspaceSettingsV2API(WorkspaceSettingsV2API workspa return this; } + /** Replace the default GroupsService with a custom implementation. */ + public WorkspaceClient withGroupsImpl(GroupsService groups) { + return this.withGroupsAPI(new GroupsAPI(groups)); + } + + /** Replace the default GroupsAPI with a custom implementation. */ + public WorkspaceClient withGroupsAPI(GroupsAPI groups) { + this.groupsAPI = groups; + return this; + } + + /** Replace the default ServicePrincipalsService with a custom implementation. */ + public WorkspaceClient withServicePrincipalsImpl(ServicePrincipalsService servicePrincipals) { + return this.withServicePrincipalsAPI(new ServicePrincipalsAPI(servicePrincipals)); + } + + /** Replace the default ServicePrincipalsAPI with a custom implementation. */ + public WorkspaceClient withServicePrincipalsAPI(ServicePrincipalsAPI servicePrincipals) { + this.servicePrincipalsAPI = servicePrincipals; + return this; + } + + /** Replace the default UsersService with a custom implementation. */ + public WorkspaceClient withUsersImpl(UsersService users) { + return this.withUsersAPI(new UsersAPI(users)); + } + + /** Replace the default UsersAPI with a custom implementation. */ + public WorkspaceClient withUsersAPI(UsersAPI users) { + this.usersAPI = users; + return this; + } + public ApiClient apiClient() { return apiClient; } diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ConnectionType.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ConnectionType.java index 911dd4f38..3d660a890 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ConnectionType.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ConnectionType.java @@ -4,7 +4,7 @@ import com.databricks.sdk.support.Generated; -/** Next Id: 37 */ +/** Next Id: 38 */ @Generated public enum ConnectionType { BIGQUERY, @@ -15,6 +15,7 @@ public enum ConnectionType { HTTP, MYSQL, ORACLE, + PALANTIR, POSTGRESQL, POWER_BI, REDSHIFT, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/EffectivePredictiveOptimizationFlagInheritedFromType.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/EffectivePredictiveOptimizationFlagInheritedFromType.java index b0bff3fd6..cbd803b94 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/EffectivePredictiveOptimizationFlagInheritedFromType.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/EffectivePredictiveOptimizationFlagInheritedFromType.java @@ -4,10 +4,6 @@ import com.databricks.sdk.support.Generated; -/** - * The type of the object from which the flag was inherited. If there was no inheritance, this field - * is left blank. - */ @Generated public enum EffectivePredictiveOptimizationFlagInheritedFromType { CATALOG, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/SecurableKind.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/SecurableKind.java index 31d92fe77..fd09c0225 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/SecurableKind.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/SecurableKind.java @@ -4,6 +4,7 @@ import com.databricks.sdk.support.Generated; +/** Latest kind: CONNECTION_PALANTIR_OAUTH_M2M = 263; Next id:264 */ @Generated public enum SecurableKind { TABLE_DB_STORAGE, @@ -40,6 +41,7 @@ public enum SecurableKind { TABLE_FOREIGN_MYSQL, TABLE_FOREIGN_NETSUITE, TABLE_FOREIGN_ORACLE, + TABLE_FOREIGN_PALANTIR, TABLE_FOREIGN_POSTGRESQL, TABLE_FOREIGN_REDSHIFT, TABLE_FOREIGN_SALESFORCE, @@ -57,6 +59,7 @@ public enum SecurableKind { TABLE_MATERIALIZED_VIEW, TABLE_MATERIALIZED_VIEW_DELTASHARING, TABLE_METRIC_VIEW, + TABLE_METRIC_VIEW_DELTASHARING, TABLE_ONLINE_VECTOR_INDEX_DIRECT, TABLE_ONLINE_VECTOR_INDEX_REPLICA, TABLE_ONLINE_VIEW, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/compute/TerminationReasonCode.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/compute/TerminationReasonCode.java index 7d2392552..18917be99 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/compute/TerminationReasonCode.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/compute/TerminationReasonCode.java @@ -138,6 +138,7 @@ public enum TerminationReasonCode { NETWORK_CONFIGURATION_FAILURE, NFS_MOUNT_FAILURE, NO_ACTIVATED_K8S, + NO_ACTIVATED_K8S_TESTING_TAG, NO_MATCHED_K8S, NO_MATCHED_K8S_TESTING_TAG, NPIP_TUNNEL_SETUP_FAILURE, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/dashboards/GenieAttachment.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/dashboards/GenieAttachment.java index a29ac8b85..0b63fae87 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/dashboards/GenieAttachment.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/dashboards/GenieAttachment.java @@ -14,14 +14,14 @@ public class GenieAttachment { @JsonProperty("attachment_id") private String attachmentId; - /** Follow-up questions suggested by Genie */ - @JsonProperty("followup_questions") - private GenieFollowupQuestionsAttachment followupQuestions; - /** Query Attachment if Genie responds with a SQL query */ @JsonProperty("query") private GenieQueryAttachment query; + /** Follow-up questions suggested by Genie */ + @JsonProperty("suggested_questions") + private GenieSuggestedQuestionsAttachment suggestedQuestions; + /** Text Attachment if Genie responds with text */ @JsonProperty("text") private TextAttachment text; @@ -35,22 +35,23 @@ public String getAttachmentId() { return attachmentId; } - public GenieAttachment setFollowupQuestions(GenieFollowupQuestionsAttachment followupQuestions) { - this.followupQuestions = followupQuestions; + public GenieAttachment setQuery(GenieQueryAttachment query) { + this.query = query; return this; } - public GenieFollowupQuestionsAttachment getFollowupQuestions() { - return followupQuestions; + public GenieQueryAttachment getQuery() { + return query; } - public GenieAttachment setQuery(GenieQueryAttachment query) { - this.query = query; + public GenieAttachment setSuggestedQuestions( + GenieSuggestedQuestionsAttachment suggestedQuestions) { + this.suggestedQuestions = suggestedQuestions; return this; } - public GenieQueryAttachment getQuery() { - return query; + public GenieSuggestedQuestionsAttachment getSuggestedQuestions() { + return suggestedQuestions; } public GenieAttachment setText(TextAttachment text) { @@ -68,22 +69,22 @@ public boolean equals(Object o) { if (o == null || getClass() != o.getClass()) return false; GenieAttachment that = (GenieAttachment) o; return Objects.equals(attachmentId, that.attachmentId) - && Objects.equals(followupQuestions, that.followupQuestions) && Objects.equals(query, that.query) + && Objects.equals(suggestedQuestions, that.suggestedQuestions) && Objects.equals(text, that.text); } @Override public int hashCode() { - return Objects.hash(attachmentId, followupQuestions, query, text); + return Objects.hash(attachmentId, query, suggestedQuestions, text); } @Override public String toString() { return new ToStringer(GenieAttachment.class) .add("attachmentId", attachmentId) - .add("followupQuestions", followupQuestions) .add("query", query) + .add("suggestedQuestions", suggestedQuestions) .add("text", text) .toString(); } diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/dashboards/GenieFeedback.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/dashboards/GenieFeedback.java index 86339a735..92d35fc98 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/dashboards/GenieFeedback.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/dashboards/GenieFeedback.java @@ -10,23 +10,10 @@ /** Feedback containing rating and optional comment */ @Generated public class GenieFeedback { - /** Optional feedback comment text */ - @JsonProperty("comment") - private String comment; - /** The feedback rating */ @JsonProperty("rating") private GenieFeedbackRating rating; - public GenieFeedback setComment(String comment) { - this.comment = comment; - return this; - } - - public String getComment() { - return comment; - } - public GenieFeedback setRating(GenieFeedbackRating rating) { this.rating = rating; return this; @@ -41,19 +28,16 @@ public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; GenieFeedback that = (GenieFeedback) o; - return Objects.equals(comment, that.comment) && Objects.equals(rating, that.rating); + return Objects.equals(rating, that.rating); } @Override public int hashCode() { - return Objects.hash(comment, rating); + return Objects.hash(rating); } @Override public String toString() { - return new ToStringer(GenieFeedback.class) - .add("comment", comment) - .add("rating", rating) - .toString(); + return new ToStringer(GenieFeedback.class).add("rating", rating).toString(); } } diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/dashboards/GenieSendMessageFeedbackRequest.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/dashboards/GenieSendMessageFeedbackRequest.java index 656cfabbf..2ddc8b835 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/dashboards/GenieSendMessageFeedbackRequest.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/dashboards/GenieSendMessageFeedbackRequest.java @@ -10,10 +10,6 @@ @Generated public class GenieSendMessageFeedbackRequest { - /** Optional text feedback that will be stored as a comment. */ - @JsonProperty("comment") - private String comment; - /** The ID associated with the conversation. */ @JsonIgnore private String conversationId; @@ -27,15 +23,6 @@ public class GenieSendMessageFeedbackRequest { /** The ID associated with the Genie space where the message is located. */ @JsonIgnore private String spaceId; - public GenieSendMessageFeedbackRequest setComment(String comment) { - this.comment = comment; - return this; - } - - public String getComment() { - return comment; - } - public GenieSendMessageFeedbackRequest setConversationId(String conversationId) { this.conversationId = conversationId; return this; @@ -77,8 +64,7 @@ public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; GenieSendMessageFeedbackRequest that = (GenieSendMessageFeedbackRequest) o; - return Objects.equals(comment, that.comment) - && Objects.equals(conversationId, that.conversationId) + return Objects.equals(conversationId, that.conversationId) && Objects.equals(messageId, that.messageId) && Objects.equals(rating, that.rating) && Objects.equals(spaceId, that.spaceId); @@ -86,13 +72,12 @@ public boolean equals(Object o) { @Override public int hashCode() { - return Objects.hash(comment, conversationId, messageId, rating, spaceId); + return Objects.hash(conversationId, messageId, rating, spaceId); } @Override public String toString() { return new ToStringer(GenieSendMessageFeedbackRequest.class) - .add("comment", comment) .add("conversationId", conversationId) .add("messageId", messageId) .add("rating", rating) diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/dashboards/GenieSpace.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/dashboards/GenieSpace.java index 4ac20ce24..73caf1963 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/dashboards/GenieSpace.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/dashboards/GenieSpace.java @@ -21,6 +21,10 @@ public class GenieSpace { @JsonProperty("title") private String title; + /** Warehouse associated with the Genie Space */ + @JsonProperty("warehouse_id") + private String warehouseId; + public GenieSpace setDescription(String description) { this.description = description; return this; @@ -48,6 +52,15 @@ public String getTitle() { return title; } + public GenieSpace setWarehouseId(String warehouseId) { + this.warehouseId = warehouseId; + return this; + } + + public String getWarehouseId() { + return warehouseId; + } + @Override public boolean equals(Object o) { if (this == o) return true; @@ -55,12 +68,13 @@ public boolean equals(Object o) { GenieSpace that = (GenieSpace) o; return Objects.equals(description, that.description) && Objects.equals(spaceId, that.spaceId) - && Objects.equals(title, that.title); + && Objects.equals(title, that.title) + && Objects.equals(warehouseId, that.warehouseId); } @Override public int hashCode() { - return Objects.hash(description, spaceId, title); + return Objects.hash(description, spaceId, title, warehouseId); } @Override @@ -69,6 +83,7 @@ public String toString() { .add("description", description) .add("spaceId", spaceId) .add("title", title) + .add("warehouseId", warehouseId) .toString(); } } diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/dashboards/GenieFollowupQuestionsAttachment.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/dashboards/GenieSuggestedQuestionsAttachment.java similarity index 77% rename from databricks-sdk-java/src/main/java/com/databricks/sdk/service/dashboards/GenieFollowupQuestionsAttachment.java rename to databricks-sdk-java/src/main/java/com/databricks/sdk/service/dashboards/GenieSuggestedQuestionsAttachment.java index 21c3e5372..12fa1e819 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/dashboards/GenieFollowupQuestionsAttachment.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/dashboards/GenieSuggestedQuestionsAttachment.java @@ -10,12 +10,12 @@ /** Follow-up questions suggested by Genie */ @Generated -public class GenieFollowupQuestionsAttachment { +public class GenieSuggestedQuestionsAttachment { /** The suggested follow-up questions */ @JsonProperty("questions") private Collection questions; - public GenieFollowupQuestionsAttachment setQuestions(Collection questions) { + public GenieSuggestedQuestionsAttachment setQuestions(Collection questions) { this.questions = questions; return this; } @@ -28,7 +28,7 @@ public Collection getQuestions() { public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; - GenieFollowupQuestionsAttachment that = (GenieFollowupQuestionsAttachment) o; + GenieSuggestedQuestionsAttachment that = (GenieSuggestedQuestionsAttachment) o; return Objects.equals(questions, that.questions); } @@ -39,7 +39,7 @@ public int hashCode() { @Override public String toString() { - return new ToStringer(GenieFollowupQuestionsAttachment.class) + return new ToStringer(GenieSuggestedQuestionsAttachment.class) .add("questions", questions) .toString(); } diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/dashboards/MessageErrorType.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/dashboards/MessageErrorType.java index ffa89afcd..8b6b10fc7 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/dashboards/MessageErrorType.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/dashboards/MessageErrorType.java @@ -28,6 +28,7 @@ public enum MessageErrorType { GENERIC_CHAT_COMPLETION_SERVICE_EXCEPTION, GENERIC_SQL_EXEC_API_CALL_EXCEPTION, ILLEGAL_PARAMETER_DEFINITION_EXCEPTION, + INTERNAL_CATALOG_MISSING_UC_PATH_EXCEPTION, INTERNAL_CATALOG_PATH_OVERLAP_EXCEPTION, INVALID_CERTIFIED_ANSWER_FUNCTION_EXCEPTION, INVALID_CERTIFIED_ANSWER_IDENTIFIER_EXCEPTION, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/database/DatabaseInstance.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/database/DatabaseInstance.java index b3173237e..077608170 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/database/DatabaseInstance.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/database/DatabaseInstance.java @@ -33,23 +33,11 @@ public class DatabaseInstance { @JsonProperty("effective_capacity") private String effectiveCapacity; - /** - * xref AIP-129. `enable_pg_native_login` is owned by the client, while - * `effective_enable_pg_native_login` is owned by the server. `enable_pg_native_login` will only - * be set in Create/Update response messages if and only if the user provides the field via the - * request. `effective_enable_pg_native_login` on the other hand will always bet set in all - * response messages (Create/Update/Get/List). - */ + /** Whether the instance has PG native password login enabled. */ @JsonProperty("effective_enable_pg_native_login") private Boolean effectiveEnablePgNativeLogin; - /** - * xref AIP-129. `enable_readable_secondaries` is owned by the client, while - * `effective_enable_readable_secondaries` is owned by the server. `enable_readable_secondaries` - * will only be set in Create/Update response messages if and only if the user provides the field - * via the request. `effective_enable_readable_secondaries` on the other hand will always bet set - * in all response messages (Create/Update/Get/List). - */ + /** Whether secondaries serving read-only traffic are enabled. Defaults to false. */ @JsonProperty("effective_enable_readable_secondaries") private Boolean effectiveEnableReadableSecondaries; @@ -61,11 +49,8 @@ public class DatabaseInstance { private Long effectiveNodeCount; /** - * xref AIP-129. `retention_window_in_days` is owned by the client, while - * `effective_retention_window_in_days` is owned by the server. `retention_window_in_days` will - * only be set in Create/Update response messages if and only if the user provides the field via - * the request. `effective_retention_window_in_days` on the other hand will always bet set in all - * response messages (Create/Update/Get/List). + * The retention window for the instance. This is the time window in days for which the historical + * data is retained. */ @JsonProperty("effective_retention_window_in_days") private Long effectiveRetentionWindowInDays; @@ -74,7 +59,7 @@ public class DatabaseInstance { @JsonProperty("effective_stopped") private Boolean effectiveStopped; - /** Whether the instance has PG native password login enabled. Defaults to false. */ + /** Whether to enable PG native password login on the instance. Defaults to false. */ @JsonProperty("enable_pg_native_login") private Boolean enablePgNativeLogin; diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/database/DatabaseInstanceRef.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/database/DatabaseInstanceRef.java index a2faf3cc4..89cff10b9 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/database/DatabaseInstanceRef.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/database/DatabaseInstanceRef.java @@ -28,12 +28,9 @@ public class DatabaseInstanceRef { private String branchTime; /** - * xref AIP-129. `lsn` is owned by the client, while `effective_lsn` is owned by the server. `lsn` - * will only be set in Create/Update response messages if and only if the user provides the field - * via the request. `effective_lsn` on the other hand will always bet set in all response messages - * (Create/Update/Get/List). For a parent ref instance, this is the LSN on the parent instance - * from which the instance was created. For a child ref instance, this is the LSN on the instance - * from which the child instance was created. + * For a parent ref instance, this is the LSN on the parent instance from which the instance was + * created. For a child ref instance, this is the LSN on the instance from which the child + * instance was created. */ @JsonProperty("effective_lsn") private String effectiveLsn; diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/AccountGroup.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/AccountGroup.java new file mode 100755 index 000000000..81b026221 --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/AccountGroup.java @@ -0,0 +1,135 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. + +package com.databricks.sdk.service.iam; + +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 AccountGroup { + /** Databricks account ID */ + @JsonProperty("account_id") + private String accountId; + + /** String that represents a human-readable group name */ + @JsonProperty("displayName") + private String displayName; + + /** external_id should be unique for identifying groups */ + @JsonProperty("externalId") + private String externalId; + + /** Databricks group ID */ + @JsonProperty("id") + private String id; + + /** */ + @JsonProperty("members") + private Collection members; + + /** Container for the group identifier. Workspace local versus account. */ + @JsonProperty("meta") + private ResourceMeta meta; + + /** Indicates if the group has the admin role. */ + @JsonProperty("roles") + private Collection roles; + + public AccountGroup setAccountId(String accountId) { + this.accountId = accountId; + return this; + } + + public String getAccountId() { + return accountId; + } + + public AccountGroup setDisplayName(String displayName) { + this.displayName = displayName; + return this; + } + + public String getDisplayName() { + return displayName; + } + + public AccountGroup setExternalId(String externalId) { + this.externalId = externalId; + return this; + } + + public String getExternalId() { + return externalId; + } + + public AccountGroup setId(String id) { + this.id = id; + return this; + } + + public String getId() { + return id; + } + + public AccountGroup setMembers(Collection members) { + this.members = members; + return this; + } + + public Collection getMembers() { + return members; + } + + public AccountGroup setMeta(ResourceMeta meta) { + this.meta = meta; + return this; + } + + public ResourceMeta getMeta() { + return meta; + } + + public AccountGroup setRoles(Collection roles) { + this.roles = roles; + return this; + } + + public Collection getRoles() { + return roles; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + AccountGroup that = (AccountGroup) o; + return Objects.equals(accountId, that.accountId) + && Objects.equals(displayName, that.displayName) + && Objects.equals(externalId, that.externalId) + && Objects.equals(id, that.id) + && Objects.equals(members, that.members) + && Objects.equals(meta, that.meta) + && Objects.equals(roles, that.roles); + } + + @Override + public int hashCode() { + return Objects.hash(accountId, displayName, externalId, id, members, meta, roles); + } + + @Override + public String toString() { + return new ToStringer(AccountGroup.class) + .add("accountId", accountId) + .add("displayName", displayName) + .add("externalId", externalId) + .add("id", id) + .add("members", members) + .add("meta", meta) + .add("roles", roles) + .toString(); + } +} 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 new file mode 100755 index 000000000..919600f29 --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/AccountGroupsV2API.java @@ -0,0 +1,96 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. +package com.databricks.sdk.service.iam; + +import com.databricks.sdk.core.ApiClient; +import com.databricks.sdk.support.Generated; +import com.databricks.sdk.support.Paginator; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Groups simplify identity management, making it easier to assign access to Databricks account, + * data, and other securable objects. + * + *

It is best practice to assign access to workspaces and access-control policies in Unity + * Catalog to groups, instead of to users individually. All Databricks account identities can be + * assigned as members of groups, and members inherit permissions that are assigned to their group. + */ +@Generated +public class AccountGroupsV2API { + private static final Logger LOG = LoggerFactory.getLogger(AccountGroupsV2API.class); + + private final AccountGroupsV2Service impl; + + /** Regular-use constructor */ + public AccountGroupsV2API(ApiClient apiClient) { + impl = new AccountGroupsV2Impl(apiClient); + } + + /** Constructor for mocks */ + public AccountGroupsV2API(AccountGroupsV2Service mock) { + impl = mock; + } + + /** + * Creates a group in the Databricks account with a unique name, using the supplied group details. + */ + public AccountGroup create(CreateAccountGroupRequest request) { + return impl.create(request); + } + + public void delete(String id) { + delete(new DeleteAccountGroupRequest().setId(id)); + } + + /** Deletes a group from the Databricks account. */ + public void delete(DeleteAccountGroupRequest request) { + impl.delete(request); + } + + public AccountGroup get(String id) { + return get(new GetAccountGroupRequest().setId(id)); + } + + /** Gets the information for a specific group in the Databricks account. */ + public AccountGroup get(GetAccountGroupRequest request) { + return impl.get(request); + } + + /** + * Gets all details of the groups associated with the Databricks account. As of 08/22/2025, this + * endpoint will not return members. Instead, members should be retrieved by iterating through + * `Get group details`. + */ + public Iterable list(ListAccountGroupsRequest request) { + request.setStartIndex(1L); + if (request.getCount() == null) { + request.setCount(10000L); + } + return new Paginator<>( + request, + impl::list, + ListAccountGroupsResponse::getResources, + response -> { + Long offset = request.getStartIndex(); + if (offset == null) { + offset = 0L; + } + offset += response.getResources().size(); + return request.setStartIndex(offset); + }); + } + + /** Partially updates the details of a group. */ + public void patch(PatchAccountGroupRequest request) { + impl.patch(request); + } + + /** Updates the details of a group by replacing the entire group entity. */ + public void update(UpdateAccountGroupRequest request) { + impl.update(request); + } + + public AccountGroupsV2Service impl() { + return impl; + } +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/AccountGroupsV2Impl.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/AccountGroupsV2Impl.java new file mode 100755 index 000000000..03c901bef --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/AccountGroupsV2Impl.java @@ -0,0 +1,111 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. +package com.databricks.sdk.service.iam; + +import com.databricks.sdk.core.ApiClient; +import com.databricks.sdk.core.DatabricksException; +import com.databricks.sdk.core.http.Request; +import com.databricks.sdk.support.Generated; +import java.io.IOException; + +/** Package-local implementation of AccountGroupsV2 */ +@Generated +class AccountGroupsV2Impl implements AccountGroupsV2Service { + private final ApiClient apiClient; + + public AccountGroupsV2Impl(ApiClient apiClient) { + this.apiClient = apiClient; + } + + @Override + public AccountGroup create(CreateAccountGroupRequest request) { + String path = + String.format("/api/2.0/accounts/%s/scim/v2/Groups", apiClient.configuredAccountID()); + 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, AccountGroup.class); + } catch (IOException e) { + throw new DatabricksException("IO error: " + e.getMessage(), e); + } + } + + @Override + public void delete(DeleteAccountGroupRequest request) { + String path = + String.format( + "/api/2.0/accounts/%s/scim/v2/Groups/%s", + apiClient.configuredAccountID(), request.getId()); + try { + Request req = new Request("DELETE", path); + ApiClient.setQuery(req, request); + apiClient.execute(req, Void.class); + } catch (IOException e) { + throw new DatabricksException("IO error: " + e.getMessage(), e); + } + } + + @Override + public AccountGroup get(GetAccountGroupRequest request) { + String path = + String.format( + "/api/2.0/accounts/%s/scim/v2/Groups/%s", + apiClient.configuredAccountID(), request.getId()); + try { + Request req = new Request("GET", path); + ApiClient.setQuery(req, request); + req.withHeader("Accept", "application/json"); + return apiClient.execute(req, AccountGroup.class); + } catch (IOException e) { + throw new DatabricksException("IO error: " + e.getMessage(), e); + } + } + + @Override + public ListAccountGroupsResponse list(ListAccountGroupsRequest request) { + String path = + String.format("/api/2.0/accounts/%s/scim/v2/Groups", apiClient.configuredAccountID()); + try { + Request req = new Request("GET", path); + ApiClient.setQuery(req, request); + req.withHeader("Accept", "application/json"); + return apiClient.execute(req, ListAccountGroupsResponse.class); + } catch (IOException e) { + throw new DatabricksException("IO error: " + e.getMessage(), e); + } + } + + @Override + public void patch(PatchAccountGroupRequest request) { + String path = + String.format( + "/api/2.0/accounts/%s/scim/v2/Groups/%s", + apiClient.configuredAccountID(), request.getId()); + try { + Request req = new Request("PATCH", path, apiClient.serialize(request)); + ApiClient.setQuery(req, request); + req.withHeader("Content-Type", "application/json"); + apiClient.execute(req, Void.class); + } catch (IOException e) { + throw new DatabricksException("IO error: " + e.getMessage(), e); + } + } + + @Override + public void update(UpdateAccountGroupRequest request) { + String path = + String.format( + "/api/2.0/accounts/%s/scim/v2/Groups/%s", + apiClient.configuredAccountID(), request.getId()); + try { + Request req = new Request("PUT", path, apiClient.serialize(request)); + ApiClient.setQuery(req, request); + req.withHeader("Accept", "application/json"); + req.withHeader("Content-Type", "application/json"); + apiClient.execute(req, Void.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/iam/AccountGroupsV2Service.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/AccountGroupsV2Service.java new file mode 100755 index 000000000..b11eb8bce --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/AccountGroupsV2Service.java @@ -0,0 +1,43 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. +package com.databricks.sdk.service.iam; + +import com.databricks.sdk.support.Generated; + +/** + * Groups simplify identity management, making it easier to assign access to Databricks account, + * data, and other securable objects. + * + *

It is best practice to assign access to workspaces and access-control policies in Unity + * Catalog to groups, instead of to users individually. All Databricks account identities can be + * assigned as members of groups, and members inherit permissions that are assigned to their group. + * + *

This is the high-level interface, that contains generated methods. + * + *

Evolving: this interface is under development. Method signatures may change. + */ +@Generated +public interface AccountGroupsV2Service { + /** + * Creates a group in the Databricks account with a unique name, using the supplied group details. + */ + AccountGroup create(CreateAccountGroupRequest createAccountGroupRequest); + + /** Deletes a group from the Databricks account. */ + void delete(DeleteAccountGroupRequest deleteAccountGroupRequest); + + /** Gets the information for a specific group in the Databricks account. */ + AccountGroup get(GetAccountGroupRequest getAccountGroupRequest); + + /** + * Gets all details of the groups associated with the Databricks account. As of 08/22/2025, this + * endpoint will not return members. Instead, members should be retrieved by iterating through + * `Get group details`. + */ + ListAccountGroupsResponse list(ListAccountGroupsRequest listAccountGroupsRequest); + + /** Partially updates the details of a group. */ + void patch(PatchAccountGroupRequest patchAccountGroupRequest); + + /** Updates the details of a group by replacing the entire group entity. */ + void update(UpdateAccountGroupRequest updateAccountGroupRequest); +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/AccountServicePrincipal.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/AccountServicePrincipal.java new file mode 100755 index 000000000..a1b2acbf5 --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/AccountServicePrincipal.java @@ -0,0 +1,135 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. + +package com.databricks.sdk.service.iam; + +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 AccountServicePrincipal { + /** Databricks account ID */ + @JsonProperty("account_id") + private String accountId; + + /** If this user is active */ + @JsonProperty("active") + private Boolean active; + + /** UUID relating to the service principal */ + @JsonProperty("applicationId") + private String applicationId; + + /** String that represents a concatenation of given and family names. */ + @JsonProperty("displayName") + private String displayName; + + /** */ + @JsonProperty("externalId") + private String externalId; + + /** Databricks service principal ID. */ + @JsonProperty("id") + private String id; + + /** Indicates if the group has the admin role. */ + @JsonProperty("roles") + private Collection roles; + + public AccountServicePrincipal setAccountId(String accountId) { + this.accountId = accountId; + return this; + } + + public String getAccountId() { + return accountId; + } + + public AccountServicePrincipal setActive(Boolean active) { + this.active = active; + return this; + } + + public Boolean getActive() { + return active; + } + + public AccountServicePrincipal setApplicationId(String applicationId) { + this.applicationId = applicationId; + return this; + } + + public String getApplicationId() { + return applicationId; + } + + public AccountServicePrincipal setDisplayName(String displayName) { + this.displayName = displayName; + return this; + } + + public String getDisplayName() { + return displayName; + } + + public AccountServicePrincipal setExternalId(String externalId) { + this.externalId = externalId; + return this; + } + + public String getExternalId() { + return externalId; + } + + public AccountServicePrincipal setId(String id) { + this.id = id; + return this; + } + + public String getId() { + return id; + } + + public AccountServicePrincipal setRoles(Collection roles) { + this.roles = roles; + return this; + } + + public Collection getRoles() { + return roles; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + AccountServicePrincipal that = (AccountServicePrincipal) o; + return Objects.equals(accountId, that.accountId) + && Objects.equals(active, that.active) + && Objects.equals(applicationId, that.applicationId) + && Objects.equals(displayName, that.displayName) + && Objects.equals(externalId, that.externalId) + && Objects.equals(id, that.id) + && Objects.equals(roles, that.roles); + } + + @Override + public int hashCode() { + return Objects.hash(accountId, active, applicationId, displayName, externalId, id, roles); + } + + @Override + public String toString() { + return new ToStringer(AccountServicePrincipal.class) + .add("accountId", accountId) + .add("active", active) + .add("applicationId", applicationId) + .add("displayName", displayName) + .add("externalId", externalId) + .add("id", id) + .add("roles", roles) + .toString(); + } +} 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 new file mode 100755 index 000000000..43c0da6ef --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/AccountServicePrincipalsV2API.java @@ -0,0 +1,93 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. +package com.databricks.sdk.service.iam; + +import com.databricks.sdk.core.ApiClient; +import com.databricks.sdk.support.Generated; +import com.databricks.sdk.support.Paginator; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Identities for use with jobs, automated tools, and systems such as scripts, apps, and CI/CD + * platforms. Databricks recommends creating service principals to run production jobs or modify + * production data. If all processes that act on production data run with service principals, + * interactive users do not need any write, delete, or modify privileges in production. This + * eliminates the risk of a user overwriting production data by accident. + */ +@Generated +public class AccountServicePrincipalsV2API { + private static final Logger LOG = LoggerFactory.getLogger(AccountServicePrincipalsV2API.class); + + private final AccountServicePrincipalsV2Service impl; + + /** Regular-use constructor */ + public AccountServicePrincipalsV2API(ApiClient apiClient) { + impl = new AccountServicePrincipalsV2Impl(apiClient); + } + + /** Constructor for mocks */ + public AccountServicePrincipalsV2API(AccountServicePrincipalsV2Service mock) { + impl = mock; + } + + /** Creates a new service principal in the Databricks account. */ + public AccountServicePrincipal create(CreateAccountServicePrincipalRequest request) { + return impl.create(request); + } + + public void delete(String id) { + delete(new DeleteAccountServicePrincipalRequest().setId(id)); + } + + /** Delete a single service principal in the Databricks account. */ + public void delete(DeleteAccountServicePrincipalRequest request) { + impl.delete(request); + } + + public AccountServicePrincipal get(String id) { + return get(new GetAccountServicePrincipalRequest().setId(id)); + } + + /** Gets the details for a single service principal define in the Databricks account. */ + public AccountServicePrincipal get(GetAccountServicePrincipalRequest request) { + return impl.get(request); + } + + /** Gets the set of service principals associated with a Databricks account. */ + public Iterable list(ListAccountServicePrincipalsRequest request) { + request.setStartIndex(1L); + if (request.getCount() == null) { + request.setCount(10000L); + } + return new Paginator<>( + request, + impl::list, + ListAccountServicePrincipalsResponse::getResources, + response -> { + Long offset = request.getStartIndex(); + if (offset == null) { + offset = 0L; + } + offset += response.getResources().size(); + return request.setStartIndex(offset); + }); + } + + /** Partially updates the details of a single service principal in the Databricks account. */ + public void patch(PatchAccountServicePrincipalRequest request) { + impl.patch(request); + } + + /** + * Updates the details of a single service principal. + * + *

This action replaces the existing service principal with the same name. + */ + public void update(UpdateAccountServicePrincipalRequest request) { + impl.update(request); + } + + public AccountServicePrincipalsV2Service impl() { + return impl; + } +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/AccountServicePrincipalsV2Impl.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/AccountServicePrincipalsV2Impl.java new file mode 100755 index 000000000..20cd8baaa --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/AccountServicePrincipalsV2Impl.java @@ -0,0 +1,114 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. +package com.databricks.sdk.service.iam; + +import com.databricks.sdk.core.ApiClient; +import com.databricks.sdk.core.DatabricksException; +import com.databricks.sdk.core.http.Request; +import com.databricks.sdk.support.Generated; +import java.io.IOException; + +/** Package-local implementation of AccountServicePrincipalsV2 */ +@Generated +class AccountServicePrincipalsV2Impl implements AccountServicePrincipalsV2Service { + private final ApiClient apiClient; + + public AccountServicePrincipalsV2Impl(ApiClient apiClient) { + this.apiClient = apiClient; + } + + @Override + public AccountServicePrincipal create(CreateAccountServicePrincipalRequest request) { + String path = + String.format( + "/api/2.0/accounts/%s/scim/v2/ServicePrincipals", apiClient.configuredAccountID()); + 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, AccountServicePrincipal.class); + } catch (IOException e) { + throw new DatabricksException("IO error: " + e.getMessage(), e); + } + } + + @Override + public void delete(DeleteAccountServicePrincipalRequest request) { + String path = + String.format( + "/api/2.0/accounts/%s/scim/v2/ServicePrincipals/%s", + apiClient.configuredAccountID(), request.getId()); + try { + Request req = new Request("DELETE", path); + ApiClient.setQuery(req, request); + apiClient.execute(req, Void.class); + } catch (IOException e) { + throw new DatabricksException("IO error: " + e.getMessage(), e); + } + } + + @Override + public AccountServicePrincipal get(GetAccountServicePrincipalRequest request) { + String path = + String.format( + "/api/2.0/accounts/%s/scim/v2/ServicePrincipals/%s", + apiClient.configuredAccountID(), request.getId()); + try { + Request req = new Request("GET", path); + ApiClient.setQuery(req, request); + req.withHeader("Accept", "application/json"); + return apiClient.execute(req, AccountServicePrincipal.class); + } catch (IOException e) { + throw new DatabricksException("IO error: " + e.getMessage(), e); + } + } + + @Override + public ListAccountServicePrincipalsResponse list(ListAccountServicePrincipalsRequest request) { + String path = + String.format( + "/api/2.0/accounts/%s/scim/v2/ServicePrincipals", apiClient.configuredAccountID()); + try { + Request req = new Request("GET", path); + ApiClient.setQuery(req, request); + req.withHeader("Accept", "application/json"); + return apiClient.execute(req, ListAccountServicePrincipalsResponse.class); + } catch (IOException e) { + throw new DatabricksException("IO error: " + e.getMessage(), e); + } + } + + @Override + public void patch(PatchAccountServicePrincipalRequest request) { + String path = + String.format( + "/api/2.0/accounts/%s/scim/v2/ServicePrincipals/%s", + apiClient.configuredAccountID(), request.getId()); + try { + Request req = new Request("PATCH", path, apiClient.serialize(request)); + ApiClient.setQuery(req, request); + req.withHeader("Accept", "application/json"); + req.withHeader("Content-Type", "application/json"); + apiClient.execute(req, Void.class); + } catch (IOException e) { + throw new DatabricksException("IO error: " + e.getMessage(), e); + } + } + + @Override + public void update(UpdateAccountServicePrincipalRequest request) { + String path = + String.format( + "/api/2.0/accounts/%s/scim/v2/ServicePrincipals/%s", + apiClient.configuredAccountID(), request.getId()); + try { + Request req = new Request("PUT", path, apiClient.serialize(request)); + ApiClient.setQuery(req, request); + req.withHeader("Accept", "application/json"); + req.withHeader("Content-Type", "application/json"); + apiClient.execute(req, Void.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/iam/AccountServicePrincipalsV2Service.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/AccountServicePrincipalsV2Service.java new file mode 100755 index 000000000..f5ed7835f --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/AccountServicePrincipalsV2Service.java @@ -0,0 +1,42 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. +package com.databricks.sdk.service.iam; + +import com.databricks.sdk.support.Generated; + +/** + * Identities for use with jobs, automated tools, and systems such as scripts, apps, and CI/CD + * platforms. Databricks recommends creating service principals to run production jobs or modify + * production data. If all processes that act on production data run with service principals, + * interactive users do not need any write, delete, or modify privileges in production. This + * eliminates the risk of a user overwriting production data by accident. + * + *

This is the high-level interface, that contains generated methods. + * + *

Evolving: this interface is under development. Method signatures may change. + */ +@Generated +public interface AccountServicePrincipalsV2Service { + /** Creates a new service principal in the Databricks account. */ + AccountServicePrincipal create( + CreateAccountServicePrincipalRequest createAccountServicePrincipalRequest); + + /** Delete a single service principal in the Databricks account. */ + void delete(DeleteAccountServicePrincipalRequest deleteAccountServicePrincipalRequest); + + /** Gets the details for a single service principal define in the Databricks account. */ + AccountServicePrincipal get(GetAccountServicePrincipalRequest getAccountServicePrincipalRequest); + + /** Gets the set of service principals associated with a Databricks account. */ + ListAccountServicePrincipalsResponse list( + ListAccountServicePrincipalsRequest listAccountServicePrincipalsRequest); + + /** Partially updates the details of a single service principal in the Databricks account. */ + void patch(PatchAccountServicePrincipalRequest patchAccountServicePrincipalRequest); + + /** + * Updates the details of a single service principal. + * + *

This action replaces the existing service principal with the same name. + */ + void update(UpdateAccountServicePrincipalRequest updateAccountServicePrincipalRequest); +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/AccountUser.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/AccountUser.java new file mode 100755 index 000000000..ad65d71af --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/AccountUser.java @@ -0,0 +1,166 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. + +package com.databricks.sdk.service.iam; + +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 AccountUser { + /** Databricks account ID */ + @JsonProperty("account_id") + private String accountId; + + /** If this user is active */ + @JsonProperty("active") + private Boolean active; + + /** String that represents a concatenation of given and family names. For example `John Smith`. */ + @JsonProperty("displayName") + private String displayName; + + /** All the emails associated with the Databricks user. */ + @JsonProperty("emails") + private Collection emails; + + /** External ID is not currently supported. It is reserved for future use. */ + @JsonProperty("externalId") + private String externalId; + + /** Databricks user ID. */ + @JsonProperty("id") + private String id; + + /** */ + @JsonProperty("name") + private Name name; + + /** Indicates if the group has the admin role. */ + @JsonProperty("roles") + private Collection roles; + + /** Email address of the Databricks user. */ + @JsonProperty("userName") + private String userName; + + public AccountUser setAccountId(String accountId) { + this.accountId = accountId; + return this; + } + + public String getAccountId() { + return accountId; + } + + public AccountUser setActive(Boolean active) { + this.active = active; + return this; + } + + public Boolean getActive() { + return active; + } + + public AccountUser setDisplayName(String displayName) { + this.displayName = displayName; + return this; + } + + public String getDisplayName() { + return displayName; + } + + public AccountUser setEmails(Collection emails) { + this.emails = emails; + return this; + } + + public Collection getEmails() { + return emails; + } + + public AccountUser setExternalId(String externalId) { + this.externalId = externalId; + return this; + } + + public String getExternalId() { + return externalId; + } + + public AccountUser setId(String id) { + this.id = id; + return this; + } + + public String getId() { + return id; + } + + public AccountUser setName(Name name) { + this.name = name; + return this; + } + + public Name getName() { + return name; + } + + public AccountUser setRoles(Collection roles) { + this.roles = roles; + return this; + } + + public Collection getRoles() { + return roles; + } + + public AccountUser setUserName(String userName) { + this.userName = userName; + return this; + } + + public String getUserName() { + return userName; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + AccountUser that = (AccountUser) o; + return Objects.equals(accountId, that.accountId) + && Objects.equals(active, that.active) + && Objects.equals(displayName, that.displayName) + && Objects.equals(emails, that.emails) + && Objects.equals(externalId, that.externalId) + && Objects.equals(id, that.id) + && Objects.equals(name, that.name) + && Objects.equals(roles, that.roles) + && Objects.equals(userName, that.userName); + } + + @Override + public int hashCode() { + return Objects.hash( + accountId, active, displayName, emails, externalId, id, name, roles, userName); + } + + @Override + public String toString() { + return new ToStringer(AccountUser.class) + .add("accountId", accountId) + .add("active", active) + .add("displayName", displayName) + .add("emails", emails) + .add("externalId", externalId) + .add("id", id) + .add("name", name) + .add("roles", roles) + .add("userName", userName) + .toString(); + } +} 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 new file mode 100755 index 000000000..e71c93daf --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/AccountUsersV2API.java @@ -0,0 +1,102 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. +package com.databricks.sdk.service.iam; + +import com.databricks.sdk.core.ApiClient; +import com.databricks.sdk.support.Generated; +import com.databricks.sdk.support.Paginator; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * User identities recognized by Databricks and represented by email addresses. + * + *

Databricks recommends using SCIM provisioning to sync users and groups automatically from your + * identity provider to your Databricks account. SCIM streamlines onboarding a new employee or team + * by using your identity provider to create users and groups in Databricks account and give them + * the proper level of access. When a user leaves your organization or no longer needs access to + * Databricks account, admins can terminate the user in your identity provider and that user’s + * account will also be removed from Databricks account. This ensures a consistent offboarding + * process and prevents unauthorized users from accessing sensitive data. + */ +@Generated +public class AccountUsersV2API { + private static final Logger LOG = LoggerFactory.getLogger(AccountUsersV2API.class); + + private final AccountUsersV2Service impl; + + /** Regular-use constructor */ + public AccountUsersV2API(ApiClient apiClient) { + impl = new AccountUsersV2Impl(apiClient); + } + + /** Constructor for mocks */ + public AccountUsersV2API(AccountUsersV2Service mock) { + impl = mock; + } + + /** + * Creates a new user in the Databricks account. This new user will also be added to the + * Databricks account. + */ + public AccountUser create(CreateAccountUserRequest request) { + return impl.create(request); + } + + public void delete(String id) { + delete(new DeleteAccountUserRequest().setId(id)); + } + + /** + * Deletes a user. Deleting a user from a Databricks account also removes objects associated with + * the user. + */ + public void delete(DeleteAccountUserRequest request) { + impl.delete(request); + } + + public AccountUser get(String id) { + return get(new GetAccountUserRequest().setId(id)); + } + + /** Gets information for a specific user in Databricks account. */ + public AccountUser get(GetAccountUserRequest request) { + return impl.get(request); + } + + /** Gets details for all the users associated with a Databricks account. */ + public Iterable list(ListAccountUsersRequest request) { + request.setStartIndex(1L); + if (request.getCount() == null) { + request.setCount(10000L); + } + return new Paginator<>( + request, + impl::list, + ListAccountUsersResponse::getResources, + response -> { + Long offset = request.getStartIndex(); + if (offset == null) { + offset = 0L; + } + offset += response.getResources().size(); + return request.setStartIndex(offset); + }); + } + + /** + * Partially updates a user resource by applying the supplied operations on specific user + * attributes. + */ + public void patch(PatchAccountUserRequest request) { + impl.patch(request); + } + + /** Replaces a user's information with the data supplied in request. */ + public void update(UpdateAccountUserRequest request) { + impl.update(request); + } + + public AccountUsersV2Service impl() { + return impl; + } +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/AccountUsersV2Impl.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/AccountUsersV2Impl.java new file mode 100755 index 000000000..e56574f97 --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/AccountUsersV2Impl.java @@ -0,0 +1,112 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. +package com.databricks.sdk.service.iam; + +import com.databricks.sdk.core.ApiClient; +import com.databricks.sdk.core.DatabricksException; +import com.databricks.sdk.core.http.Request; +import com.databricks.sdk.support.Generated; +import java.io.IOException; + +/** Package-local implementation of AccountUsersV2 */ +@Generated +class AccountUsersV2Impl implements AccountUsersV2Service { + private final ApiClient apiClient; + + public AccountUsersV2Impl(ApiClient apiClient) { + this.apiClient = apiClient; + } + + @Override + public AccountUser create(CreateAccountUserRequest request) { + String path = + String.format("/api/2.0/accounts/%s/scim/v2/Users", apiClient.configuredAccountID()); + 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, AccountUser.class); + } catch (IOException e) { + throw new DatabricksException("IO error: " + e.getMessage(), e); + } + } + + @Override + public void delete(DeleteAccountUserRequest request) { + String path = + String.format( + "/api/2.0/accounts/%s/scim/v2/Users/%s", + apiClient.configuredAccountID(), request.getId()); + try { + Request req = new Request("DELETE", path); + ApiClient.setQuery(req, request); + apiClient.execute(req, Void.class); + } catch (IOException e) { + throw new DatabricksException("IO error: " + e.getMessage(), e); + } + } + + @Override + public AccountUser get(GetAccountUserRequest request) { + String path = + String.format( + "/api/2.0/accounts/%s/scim/v2/Users/%s", + apiClient.configuredAccountID(), request.getId()); + try { + Request req = new Request("GET", path); + ApiClient.setQuery(req, request); + req.withHeader("Accept", "application/json"); + return apiClient.execute(req, AccountUser.class); + } catch (IOException e) { + throw new DatabricksException("IO error: " + e.getMessage(), e); + } + } + + @Override + public ListAccountUsersResponse list(ListAccountUsersRequest request) { + String path = + String.format("/api/2.0/accounts/%s/scim/v2/Users", apiClient.configuredAccountID()); + try { + Request req = new Request("GET", path); + ApiClient.setQuery(req, request); + req.withHeader("Accept", "application/json"); + return apiClient.execute(req, ListAccountUsersResponse.class); + } catch (IOException e) { + throw new DatabricksException("IO error: " + e.getMessage(), e); + } + } + + @Override + public void patch(PatchAccountUserRequest request) { + String path = + String.format( + "/api/2.0/accounts/%s/scim/v2/Users/%s", + apiClient.configuredAccountID(), request.getId()); + try { + Request req = new Request("PATCH", path, apiClient.serialize(request)); + ApiClient.setQuery(req, request); + req.withHeader("Accept", "application/json"); + req.withHeader("Content-Type", "application/json"); + apiClient.execute(req, Void.class); + } catch (IOException e) { + throw new DatabricksException("IO error: " + e.getMessage(), e); + } + } + + @Override + public void update(UpdateAccountUserRequest request) { + String path = + String.format( + "/api/2.0/accounts/%s/scim/v2/Users/%s", + apiClient.configuredAccountID(), request.getId()); + try { + Request req = new Request("PUT", path, apiClient.serialize(request)); + ApiClient.setQuery(req, request); + req.withHeader("Accept", "application/json"); + req.withHeader("Content-Type", "application/json"); + apiClient.execute(req, Void.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/iam/AccountUsersV2Service.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/AccountUsersV2Service.java new file mode 100755 index 000000000..ad1bee493 --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/AccountUsersV2Service.java @@ -0,0 +1,49 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. +package com.databricks.sdk.service.iam; + +import com.databricks.sdk.support.Generated; + +/** + * User identities recognized by Databricks and represented by email addresses. + * + *

Databricks recommends using SCIM provisioning to sync users and groups automatically from your + * identity provider to your Databricks account. SCIM streamlines onboarding a new employee or team + * by using your identity provider to create users and groups in Databricks account and give them + * the proper level of access. When a user leaves your organization or no longer needs access to + * Databricks account, admins can terminate the user in your identity provider and that user’s + * account will also be removed from Databricks account. This ensures a consistent offboarding + * process and prevents unauthorized users from accessing sensitive data. + * + *

This is the high-level interface, that contains generated methods. + * + *

Evolving: this interface is under development. Method signatures may change. + */ +@Generated +public interface AccountUsersV2Service { + /** + * Creates a new user in the Databricks account. This new user will also be added to the + * Databricks account. + */ + AccountUser create(CreateAccountUserRequest createAccountUserRequest); + + /** + * Deletes a user. Deleting a user from a Databricks account also removes objects associated with + * the user. + */ + void delete(DeleteAccountUserRequest deleteAccountUserRequest); + + /** Gets information for a specific user in Databricks account. */ + AccountUser get(GetAccountUserRequest getAccountUserRequest); + + /** Gets details for all the users associated with a Databricks account. */ + ListAccountUsersResponse list(ListAccountUsersRequest listAccountUsersRequest); + + /** + * Partially updates a user resource by applying the supplied operations on specific user + * attributes. + */ + void patch(PatchAccountUserRequest patchAccountUserRequest); + + /** Replaces a user's information with the data supplied in request. */ + void update(UpdateAccountUserRequest updateAccountUserRequest); +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/CreateAccountGroupRequest.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/CreateAccountGroupRequest.java new file mode 100755 index 000000000..3d2181dcf --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/CreateAccountGroupRequest.java @@ -0,0 +1,120 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. + +package com.databricks.sdk.service.iam; + +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 CreateAccountGroupRequest { + /** String that represents a human-readable group name */ + @JsonProperty("displayName") + private String displayName; + + /** */ + @JsonProperty("externalId") + private String externalId; + + /** Databricks group ID */ + @JsonProperty("id") + private String id; + + /** */ + @JsonProperty("members") + private Collection members; + + /** Container for the group identifier. Workspace local versus account. */ + @JsonProperty("meta") + private ResourceMeta meta; + + /** Indicates if the group has the admin role. */ + @JsonProperty("roles") + private Collection roles; + + public CreateAccountGroupRequest setDisplayName(String displayName) { + this.displayName = displayName; + return this; + } + + public String getDisplayName() { + return displayName; + } + + public CreateAccountGroupRequest setExternalId(String externalId) { + this.externalId = externalId; + return this; + } + + public String getExternalId() { + return externalId; + } + + public CreateAccountGroupRequest setId(String id) { + this.id = id; + return this; + } + + public String getId() { + return id; + } + + public CreateAccountGroupRequest setMembers(Collection members) { + this.members = members; + return this; + } + + public Collection getMembers() { + return members; + } + + public CreateAccountGroupRequest setMeta(ResourceMeta meta) { + this.meta = meta; + return this; + } + + public ResourceMeta getMeta() { + return meta; + } + + public CreateAccountGroupRequest setRoles(Collection roles) { + this.roles = roles; + return this; + } + + public Collection getRoles() { + return roles; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + CreateAccountGroupRequest that = (CreateAccountGroupRequest) o; + return Objects.equals(displayName, that.displayName) + && Objects.equals(externalId, that.externalId) + && Objects.equals(id, that.id) + && Objects.equals(members, that.members) + && Objects.equals(meta, that.meta) + && Objects.equals(roles, that.roles); + } + + @Override + public int hashCode() { + return Objects.hash(displayName, externalId, id, members, meta, roles); + } + + @Override + public String toString() { + return new ToStringer(CreateAccountGroupRequest.class) + .add("displayName", displayName) + .add("externalId", externalId) + .add("id", id) + .add("members", members) + .add("meta", meta) + .add("roles", roles) + .toString(); + } +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/CreateAccountServicePrincipalRequest.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/CreateAccountServicePrincipalRequest.java new file mode 100755 index 000000000..5991f240a --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/CreateAccountServicePrincipalRequest.java @@ -0,0 +1,120 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. + +package com.databricks.sdk.service.iam; + +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 CreateAccountServicePrincipalRequest { + /** If this user is active */ + @JsonProperty("active") + private Boolean active; + + /** UUID relating to the service principal */ + @JsonProperty("applicationId") + private String applicationId; + + /** String that represents a concatenation of given and family names. */ + @JsonProperty("displayName") + private String displayName; + + /** */ + @JsonProperty("externalId") + private String externalId; + + /** Databricks service principal ID. */ + @JsonProperty("id") + private String id; + + /** Indicates if the group has the admin role. */ + @JsonProperty("roles") + private Collection roles; + + public CreateAccountServicePrincipalRequest setActive(Boolean active) { + this.active = active; + return this; + } + + public Boolean getActive() { + return active; + } + + public CreateAccountServicePrincipalRequest setApplicationId(String applicationId) { + this.applicationId = applicationId; + return this; + } + + public String getApplicationId() { + return applicationId; + } + + public CreateAccountServicePrincipalRequest setDisplayName(String displayName) { + this.displayName = displayName; + return this; + } + + public String getDisplayName() { + return displayName; + } + + public CreateAccountServicePrincipalRequest setExternalId(String externalId) { + this.externalId = externalId; + return this; + } + + public String getExternalId() { + return externalId; + } + + public CreateAccountServicePrincipalRequest setId(String id) { + this.id = id; + return this; + } + + public String getId() { + return id; + } + + public CreateAccountServicePrincipalRequest setRoles(Collection roles) { + this.roles = roles; + return this; + } + + public Collection getRoles() { + return roles; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + CreateAccountServicePrincipalRequest that = (CreateAccountServicePrincipalRequest) o; + return Objects.equals(active, that.active) + && Objects.equals(applicationId, that.applicationId) + && Objects.equals(displayName, that.displayName) + && Objects.equals(externalId, that.externalId) + && Objects.equals(id, that.id) + && Objects.equals(roles, that.roles); + } + + @Override + public int hashCode() { + return Objects.hash(active, applicationId, displayName, externalId, id, roles); + } + + @Override + public String toString() { + return new ToStringer(CreateAccountServicePrincipalRequest.class) + .add("active", active) + .add("applicationId", applicationId) + .add("displayName", displayName) + .add("externalId", externalId) + .add("id", id) + .add("roles", roles) + .toString(); + } +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/CreateAccountUserRequest.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/CreateAccountUserRequest.java new file mode 100755 index 000000000..346a4c53b --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/CreateAccountUserRequest.java @@ -0,0 +1,150 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. + +package com.databricks.sdk.service.iam; + +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 CreateAccountUserRequest { + /** If this user is active */ + @JsonProperty("active") + private Boolean active; + + /** String that represents a concatenation of given and family names. For example `John Smith`. */ + @JsonProperty("displayName") + private String displayName; + + /** All the emails associated with the Databricks user. */ + @JsonProperty("emails") + private Collection emails; + + /** External ID is not currently supported. It is reserved for future use. */ + @JsonProperty("externalId") + private String externalId; + + /** Databricks user ID. */ + @JsonProperty("id") + private String id; + + /** */ + @JsonProperty("name") + private Name name; + + /** Indicates if the group has the admin role. */ + @JsonProperty("roles") + private Collection roles; + + /** Email address of the Databricks user. */ + @JsonProperty("userName") + private String userName; + + public CreateAccountUserRequest setActive(Boolean active) { + this.active = active; + return this; + } + + public Boolean getActive() { + return active; + } + + public CreateAccountUserRequest setDisplayName(String displayName) { + this.displayName = displayName; + return this; + } + + public String getDisplayName() { + return displayName; + } + + public CreateAccountUserRequest setEmails(Collection emails) { + this.emails = emails; + return this; + } + + public Collection getEmails() { + return emails; + } + + public CreateAccountUserRequest setExternalId(String externalId) { + this.externalId = externalId; + return this; + } + + public String getExternalId() { + return externalId; + } + + public CreateAccountUserRequest setId(String id) { + this.id = id; + return this; + } + + public String getId() { + return id; + } + + public CreateAccountUserRequest setName(Name name) { + this.name = name; + return this; + } + + public Name getName() { + return name; + } + + public CreateAccountUserRequest setRoles(Collection roles) { + this.roles = roles; + return this; + } + + public Collection getRoles() { + return roles; + } + + public CreateAccountUserRequest setUserName(String userName) { + this.userName = userName; + return this; + } + + public String getUserName() { + return userName; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + CreateAccountUserRequest that = (CreateAccountUserRequest) o; + return Objects.equals(active, that.active) + && Objects.equals(displayName, that.displayName) + && Objects.equals(emails, that.emails) + && Objects.equals(externalId, that.externalId) + && Objects.equals(id, that.id) + && Objects.equals(name, that.name) + && Objects.equals(roles, that.roles) + && Objects.equals(userName, that.userName); + } + + @Override + public int hashCode() { + return Objects.hash(active, displayName, emails, externalId, id, name, roles, userName); + } + + @Override + public String toString() { + return new ToStringer(CreateAccountUserRequest.class) + .add("active", active) + .add("displayName", displayName) + .add("emails", emails) + .add("externalId", externalId) + .add("id", id) + .add("name", name) + .add("roles", roles) + .add("userName", userName) + .toString(); + } +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/CreateGroupRequest.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/CreateGroupRequest.java new file mode 100755 index 000000000..904aa4499 --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/CreateGroupRequest.java @@ -0,0 +1,172 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. + +package com.databricks.sdk.service.iam; + +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 CreateGroupRequest { + /** String that represents a human-readable group name */ + @JsonProperty("displayName") + private String displayName; + + /** + * Entitlements assigned to the group. See [assigning entitlements] for a full list of supported + * values. + * + *

[assigning entitlements]: + * https://docs.databricks.com/administration-guide/users-groups/index.html#assigning-entitlements + */ + @JsonProperty("entitlements") + private Collection entitlements; + + /** */ + @JsonProperty("externalId") + private String externalId; + + /** */ + @JsonProperty("groups") + private Collection groups; + + /** Databricks group ID */ + @JsonProperty("id") + private String id; + + /** */ + @JsonProperty("members") + private Collection members; + + /** Container for the group identifier. Workspace local versus account. */ + @JsonProperty("meta") + private ResourceMeta meta; + + /** Corresponds to AWS instance profile/arn role. */ + @JsonProperty("roles") + private Collection roles; + + /** The schema of the group. */ + @JsonProperty("schemas") + private Collection schemas; + + public CreateGroupRequest setDisplayName(String displayName) { + this.displayName = displayName; + return this; + } + + public String getDisplayName() { + return displayName; + } + + public CreateGroupRequest setEntitlements(Collection entitlements) { + this.entitlements = entitlements; + return this; + } + + public Collection getEntitlements() { + return entitlements; + } + + public CreateGroupRequest setExternalId(String externalId) { + this.externalId = externalId; + return this; + } + + public String getExternalId() { + return externalId; + } + + public CreateGroupRequest setGroups(Collection groups) { + this.groups = groups; + return this; + } + + public Collection getGroups() { + return groups; + } + + public CreateGroupRequest setId(String id) { + this.id = id; + return this; + } + + public String getId() { + return id; + } + + public CreateGroupRequest setMembers(Collection members) { + this.members = members; + return this; + } + + public Collection getMembers() { + return members; + } + + public CreateGroupRequest setMeta(ResourceMeta meta) { + this.meta = meta; + return this; + } + + public ResourceMeta getMeta() { + return meta; + } + + public CreateGroupRequest setRoles(Collection roles) { + this.roles = roles; + return this; + } + + public Collection getRoles() { + return roles; + } + + public CreateGroupRequest setSchemas(Collection schemas) { + this.schemas = schemas; + return this; + } + + public Collection getSchemas() { + return schemas; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + CreateGroupRequest that = (CreateGroupRequest) o; + return Objects.equals(displayName, that.displayName) + && Objects.equals(entitlements, that.entitlements) + && Objects.equals(externalId, that.externalId) + && Objects.equals(groups, that.groups) + && Objects.equals(id, that.id) + && Objects.equals(members, that.members) + && Objects.equals(meta, that.meta) + && Objects.equals(roles, that.roles) + && Objects.equals(schemas, that.schemas); + } + + @Override + public int hashCode() { + return Objects.hash( + displayName, entitlements, externalId, groups, id, members, meta, roles, schemas); + } + + @Override + public String toString() { + return new ToStringer(CreateGroupRequest.class) + .add("displayName", displayName) + .add("entitlements", entitlements) + .add("externalId", externalId) + .add("groups", groups) + .add("id", id) + .add("members", members) + .add("meta", meta) + .add("roles", roles) + .add("schemas", schemas) + .toString(); + } +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/CreateServicePrincipalRequest.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/CreateServicePrincipalRequest.java new file mode 100755 index 000000000..95494e256 --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/CreateServicePrincipalRequest.java @@ -0,0 +1,172 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. + +package com.databricks.sdk.service.iam; + +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 CreateServicePrincipalRequest { + /** If this user is active */ + @JsonProperty("active") + private Boolean active; + + /** UUID relating to the service principal */ + @JsonProperty("applicationId") + private String applicationId; + + /** String that represents a concatenation of given and family names. */ + @JsonProperty("displayName") + private String displayName; + + /** + * Entitlements assigned to the service principal. See [assigning entitlements] for a full list of + * supported values. + * + *

[assigning entitlements]: + * https://docs.databricks.com/administration-guide/users-groups/index.html#assigning-entitlements + */ + @JsonProperty("entitlements") + private Collection entitlements; + + /** */ + @JsonProperty("externalId") + private String externalId; + + /** */ + @JsonProperty("groups") + private Collection groups; + + /** Databricks service principal ID. */ + @JsonProperty("id") + private String id; + + /** Corresponds to AWS instance profile/arn role. */ + @JsonProperty("roles") + private Collection roles; + + /** The schema of the List response. */ + @JsonProperty("schemas") + private Collection schemas; + + public CreateServicePrincipalRequest setActive(Boolean active) { + this.active = active; + return this; + } + + public Boolean getActive() { + return active; + } + + public CreateServicePrincipalRequest setApplicationId(String applicationId) { + this.applicationId = applicationId; + return this; + } + + public String getApplicationId() { + return applicationId; + } + + public CreateServicePrincipalRequest setDisplayName(String displayName) { + this.displayName = displayName; + return this; + } + + public String getDisplayName() { + return displayName; + } + + public CreateServicePrincipalRequest setEntitlements(Collection entitlements) { + this.entitlements = entitlements; + return this; + } + + public Collection getEntitlements() { + return entitlements; + } + + public CreateServicePrincipalRequest setExternalId(String externalId) { + this.externalId = externalId; + return this; + } + + public String getExternalId() { + return externalId; + } + + public CreateServicePrincipalRequest setGroups(Collection groups) { + this.groups = groups; + return this; + } + + public Collection getGroups() { + return groups; + } + + public CreateServicePrincipalRequest setId(String id) { + this.id = id; + return this; + } + + public String getId() { + return id; + } + + public CreateServicePrincipalRequest setRoles(Collection roles) { + this.roles = roles; + return this; + } + + public Collection getRoles() { + return roles; + } + + public CreateServicePrincipalRequest setSchemas(Collection schemas) { + this.schemas = schemas; + return this; + } + + public Collection getSchemas() { + return schemas; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + CreateServicePrincipalRequest that = (CreateServicePrincipalRequest) o; + return Objects.equals(active, that.active) + && Objects.equals(applicationId, that.applicationId) + && Objects.equals(displayName, that.displayName) + && Objects.equals(entitlements, that.entitlements) + && Objects.equals(externalId, that.externalId) + && Objects.equals(groups, that.groups) + && Objects.equals(id, that.id) + && Objects.equals(roles, that.roles) + && Objects.equals(schemas, that.schemas); + } + + @Override + public int hashCode() { + return Objects.hash( + active, applicationId, displayName, entitlements, externalId, groups, id, roles, schemas); + } + + @Override + public String toString() { + return new ToStringer(CreateServicePrincipalRequest.class) + .add("active", active) + .add("applicationId", applicationId) + .add("displayName", displayName) + .add("entitlements", entitlements) + .add("externalId", externalId) + .add("groups", groups) + .add("id", id) + .add("roles", roles) + .add("schemas", schemas) + .toString(); + } +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/CreateUserRequest.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/CreateUserRequest.java new file mode 100755 index 000000000..baaad5f01 --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/CreateUserRequest.java @@ -0,0 +1,219 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. + +package com.databricks.sdk.service.iam; + +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 CreateUserRequest { + /** If this user is active */ + @JsonProperty("active") + private Boolean active; + + /** + * String that represents a concatenation of given and family names. For example `John Smith`. + * This field cannot be updated through the Workspace SCIM APIs when [identity federation is + * enabled]. Use Account SCIM APIs to update `displayName`. + * + *

[identity federation is enabled]: + * https://docs.databricks.com/administration-guide/users-groups/best-practices.html#enable-identity-federation + */ + @JsonProperty("displayName") + private String displayName; + + /** All the emails associated with the Databricks user. */ + @JsonProperty("emails") + private Collection emails; + + /** + * Entitlements assigned to the user. See [assigning entitlements] for a full list of supported + * values. + * + *

[assigning entitlements]: + * https://docs.databricks.com/administration-guide/users-groups/index.html#assigning-entitlements + */ + @JsonProperty("entitlements") + private Collection entitlements; + + /** External ID is not currently supported. It is reserved for future use. */ + @JsonProperty("externalId") + private String externalId; + + /** */ + @JsonProperty("groups") + private Collection groups; + + /** Databricks user ID. */ + @JsonProperty("id") + private String id; + + /** */ + @JsonProperty("name") + private Name name; + + /** Corresponds to AWS instance profile/arn role. */ + @JsonProperty("roles") + private Collection roles; + + /** The schema of the user. */ + @JsonProperty("schemas") + private Collection schemas; + + /** Email address of the Databricks user. */ + @JsonProperty("userName") + private String userName; + + public CreateUserRequest setActive(Boolean active) { + this.active = active; + return this; + } + + public Boolean getActive() { + return active; + } + + public CreateUserRequest setDisplayName(String displayName) { + this.displayName = displayName; + return this; + } + + public String getDisplayName() { + return displayName; + } + + public CreateUserRequest setEmails(Collection emails) { + this.emails = emails; + return this; + } + + public Collection getEmails() { + return emails; + } + + public CreateUserRequest setEntitlements(Collection entitlements) { + this.entitlements = entitlements; + return this; + } + + public Collection getEntitlements() { + return entitlements; + } + + public CreateUserRequest setExternalId(String externalId) { + this.externalId = externalId; + return this; + } + + public String getExternalId() { + return externalId; + } + + public CreateUserRequest setGroups(Collection groups) { + this.groups = groups; + return this; + } + + public Collection getGroups() { + return groups; + } + + public CreateUserRequest setId(String id) { + this.id = id; + return this; + } + + public String getId() { + return id; + } + + public CreateUserRequest setName(Name name) { + this.name = name; + return this; + } + + public Name getName() { + return name; + } + + public CreateUserRequest setRoles(Collection roles) { + this.roles = roles; + return this; + } + + public Collection getRoles() { + return roles; + } + + public CreateUserRequest setSchemas(Collection schemas) { + this.schemas = schemas; + return this; + } + + public Collection getSchemas() { + return schemas; + } + + public CreateUserRequest setUserName(String userName) { + this.userName = userName; + return this; + } + + public String getUserName() { + return userName; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + CreateUserRequest that = (CreateUserRequest) o; + return Objects.equals(active, that.active) + && Objects.equals(displayName, that.displayName) + && Objects.equals(emails, that.emails) + && Objects.equals(entitlements, that.entitlements) + && Objects.equals(externalId, that.externalId) + && Objects.equals(groups, that.groups) + && Objects.equals(id, that.id) + && Objects.equals(name, that.name) + && Objects.equals(roles, that.roles) + && Objects.equals(schemas, that.schemas) + && Objects.equals(userName, that.userName); + } + + @Override + public int hashCode() { + return Objects.hash( + active, + displayName, + emails, + entitlements, + externalId, + groups, + id, + name, + roles, + schemas, + userName); + } + + @Override + public String toString() { + return new ToStringer(CreateUserRequest.class) + .add("active", active) + .add("displayName", displayName) + .add("emails", emails) + .add("entitlements", entitlements) + .add("externalId", externalId) + .add("groups", groups) + .add("id", id) + .add("name", name) + .add("roles", roles) + .add("schemas", schemas) + .add("userName", userName) + .toString(); + } +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/GetPasswordPermissionLevelsRequest.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/GetPasswordPermissionLevelsRequest.java new file mode 100755 index 000000000..248dfa5a8 --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/GetPasswordPermissionLevelsRequest.java @@ -0,0 +1,28 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. + +package com.databricks.sdk.service.iam; + +import com.databricks.sdk.support.Generated; +import com.databricks.sdk.support.ToStringer; +import java.util.Objects; + +@Generated +public class GetPasswordPermissionLevelsRequest { + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + return true; + } + + @Override + public int hashCode() { + return Objects.hash(); + } + + @Override + public String toString() { + return new ToStringer(GetPasswordPermissionLevelsRequest.class).toString(); + } +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/GetPasswordPermissionsRequest.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/GetPasswordPermissionsRequest.java new file mode 100755 index 000000000..06b3ac996 --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/GetPasswordPermissionsRequest.java @@ -0,0 +1,28 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. + +package com.databricks.sdk.service.iam; + +import com.databricks.sdk.support.Generated; +import com.databricks.sdk.support.ToStringer; +import java.util.Objects; + +@Generated +public class GetPasswordPermissionsRequest { + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + return true; + } + + @Override + public int hashCode() { + return Objects.hash(); + } + + @Override + public String toString() { + return new ToStringer(GetPasswordPermissionsRequest.class).toString(); + } +} 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 new file mode 100755 index 000000000..84e109766 --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/GroupsV2API.java @@ -0,0 +1,93 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. +package com.databricks.sdk.service.iam; + +import com.databricks.sdk.core.ApiClient; +import com.databricks.sdk.support.Generated; +import com.databricks.sdk.support.Paginator; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Groups simplify identity management, making it easier to assign access to Databricks workspace, + * data, and other securable objects. + * + *

It is best practice to assign access to workspaces and access-control policies in Unity + * Catalog to groups, instead of to users individually. All Databricks workspace identities can be + * assigned as members of groups, and members inherit permissions that are assigned to their group. + */ +@Generated +public class GroupsV2API { + private static final Logger LOG = LoggerFactory.getLogger(GroupsV2API.class); + + private final GroupsV2Service impl; + + /** Regular-use constructor */ + public GroupsV2API(ApiClient apiClient) { + impl = new GroupsV2Impl(apiClient); + } + + /** Constructor for mocks */ + public GroupsV2API(GroupsV2Service mock) { + impl = mock; + } + + /** + * Creates a group in the Databricks workspace with a unique name, using the supplied group + * details. + */ + public Group create(CreateGroupRequest request) { + return impl.create(request); + } + + public void delete(String id) { + delete(new DeleteGroupRequest().setId(id)); + } + + /** Deletes a group from the Databricks workspace. */ + public void delete(DeleteGroupRequest request) { + impl.delete(request); + } + + public Group get(String id) { + return get(new GetGroupRequest().setId(id)); + } + + /** Gets the information for a specific group in the Databricks workspace. */ + public Group get(GetGroupRequest request) { + return impl.get(request); + } + + /** Gets all details of the groups associated with the Databricks workspace. */ + public Iterable list(ListGroupsRequest request) { + request.setStartIndex(1L); + if (request.getCount() == null) { + request.setCount(10000L); + } + return new Paginator<>( + request, + impl::list, + ListGroupsResponse::getResources, + response -> { + Long offset = request.getStartIndex(); + if (offset == null) { + offset = 0L; + } + offset += response.getResources().size(); + return request.setStartIndex(offset); + }); + } + + /** Partially updates the details of a group. */ + public void patch(PatchGroupRequest request) { + impl.patch(request); + } + + /** Updates the details of a group by replacing the entire group entity. */ + public void update(UpdateGroupRequest request) { + impl.update(request); + } + + public GroupsV2Service impl() { + return impl; + } +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/GroupsV2Impl.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/GroupsV2Impl.java new file mode 100755 index 000000000..02c1e34f0 --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/GroupsV2Impl.java @@ -0,0 +1,98 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. +package com.databricks.sdk.service.iam; + +import com.databricks.sdk.core.ApiClient; +import com.databricks.sdk.core.DatabricksException; +import com.databricks.sdk.core.http.Request; +import com.databricks.sdk.support.Generated; +import java.io.IOException; + +/** Package-local implementation of GroupsV2 */ +@Generated +class GroupsV2Impl implements GroupsV2Service { + private final ApiClient apiClient; + + public GroupsV2Impl(ApiClient apiClient) { + this.apiClient = apiClient; + } + + @Override + public Group create(CreateGroupRequest request) { + String path = "/api/2.0/preview/scim/v2/Groups"; + 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, Group.class); + } catch (IOException e) { + throw new DatabricksException("IO error: " + e.getMessage(), e); + } + } + + @Override + public void delete(DeleteGroupRequest request) { + String path = String.format("/api/2.0/preview/scim/v2/Groups/%s", request.getId()); + try { + Request req = new Request("DELETE", path); + ApiClient.setQuery(req, request); + apiClient.execute(req, Void.class); + } catch (IOException e) { + throw new DatabricksException("IO error: " + e.getMessage(), e); + } + } + + @Override + public Group get(GetGroupRequest request) { + String path = String.format("/api/2.0/preview/scim/v2/Groups/%s", request.getId()); + try { + Request req = new Request("GET", path); + ApiClient.setQuery(req, request); + req.withHeader("Accept", "application/json"); + return apiClient.execute(req, Group.class); + } catch (IOException e) { + throw new DatabricksException("IO error: " + e.getMessage(), e); + } + } + + @Override + public ListGroupsResponse list(ListGroupsRequest request) { + String path = "/api/2.0/preview/scim/v2/Groups"; + try { + Request req = new Request("GET", path); + ApiClient.setQuery(req, request); + req.withHeader("Accept", "application/json"); + return apiClient.execute(req, ListGroupsResponse.class); + } catch (IOException e) { + throw new DatabricksException("IO error: " + e.getMessage(), e); + } + } + + @Override + public void patch(PatchGroupRequest request) { + String path = String.format("/api/2.0/preview/scim/v2/Groups/%s", request.getId()); + try { + Request req = new Request("PATCH", path, apiClient.serialize(request)); + ApiClient.setQuery(req, request); + req.withHeader("Accept", "application/json"); + req.withHeader("Content-Type", "application/json"); + apiClient.execute(req, Void.class); + } catch (IOException e) { + throw new DatabricksException("IO error: " + e.getMessage(), e); + } + } + + @Override + public void update(UpdateGroupRequest request) { + String path = String.format("/api/2.0/preview/scim/v2/Groups/%s", request.getId()); + try { + Request req = new Request("PUT", path, apiClient.serialize(request)); + ApiClient.setQuery(req, request); + req.withHeader("Accept", "application/json"); + req.withHeader("Content-Type", "application/json"); + apiClient.execute(req, Void.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/iam/GroupsV2Service.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/GroupsV2Service.java new file mode 100755 index 000000000..94d85a174 --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/GroupsV2Service.java @@ -0,0 +1,40 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. +package com.databricks.sdk.service.iam; + +import com.databricks.sdk.support.Generated; + +/** + * Groups simplify identity management, making it easier to assign access to Databricks workspace, + * data, and other securable objects. + * + *

It is best practice to assign access to workspaces and access-control policies in Unity + * Catalog to groups, instead of to users individually. All Databricks workspace identities can be + * assigned as members of groups, and members inherit permissions that are assigned to their group. + * + *

This is the high-level interface, that contains generated methods. + * + *

Evolving: this interface is under development. Method signatures may change. + */ +@Generated +public interface GroupsV2Service { + /** + * Creates a group in the Databricks workspace with a unique name, using the supplied group + * details. + */ + Group create(CreateGroupRequest createGroupRequest); + + /** Deletes a group from the Databricks workspace. */ + void delete(DeleteGroupRequest deleteGroupRequest); + + /** Gets the information for a specific group in the Databricks workspace. */ + Group get(GetGroupRequest getGroupRequest); + + /** Gets all details of the groups associated with the Databricks workspace. */ + ListGroupsResponse list(ListGroupsRequest listGroupsRequest); + + /** Partially updates the details of a group. */ + void patch(PatchGroupRequest patchGroupRequest); + + /** Updates the details of a group by replacing the entire group entity. */ + void update(UpdateGroupRequest updateGroupRequest); +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/ListAccountGroupsResponse.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/ListAccountGroupsResponse.java new file mode 100755 index 000000000..4a4982b41 --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/ListAccountGroupsResponse.java @@ -0,0 +1,90 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. + +package com.databricks.sdk.service.iam; + +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 ListAccountGroupsResponse { + /** Total results returned in the response. */ + @JsonProperty("itemsPerPage") + private Long itemsPerPage; + + /** User objects returned in the response. */ + @JsonProperty("Resources") + private Collection resources; + + /** Starting index of all the results that matched the request filters. First item is number 1. */ + @JsonProperty("startIndex") + private Long startIndex; + + /** Total results that match the request filters. */ + @JsonProperty("totalResults") + private Long totalResults; + + public ListAccountGroupsResponse setItemsPerPage(Long itemsPerPage) { + this.itemsPerPage = itemsPerPage; + return this; + } + + public Long getItemsPerPage() { + return itemsPerPage; + } + + public ListAccountGroupsResponse setResources(Collection resources) { + this.resources = resources; + return this; + } + + public Collection getResources() { + return resources; + } + + public ListAccountGroupsResponse setStartIndex(Long startIndex) { + this.startIndex = startIndex; + return this; + } + + public Long getStartIndex() { + return startIndex; + } + + public ListAccountGroupsResponse setTotalResults(Long totalResults) { + this.totalResults = totalResults; + return this; + } + + public Long getTotalResults() { + return totalResults; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + ListAccountGroupsResponse that = (ListAccountGroupsResponse) o; + return Objects.equals(itemsPerPage, that.itemsPerPage) + && Objects.equals(resources, that.resources) + && Objects.equals(startIndex, that.startIndex) + && Objects.equals(totalResults, that.totalResults); + } + + @Override + public int hashCode() { + return Objects.hash(itemsPerPage, resources, startIndex, totalResults); + } + + @Override + public String toString() { + return new ToStringer(ListAccountGroupsResponse.class) + .add("itemsPerPage", itemsPerPage) + .add("resources", resources) + .add("startIndex", startIndex) + .add("totalResults", totalResults) + .toString(); + } +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/ListAccountServicePrincipalsResponse.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/ListAccountServicePrincipalsResponse.java new file mode 100755 index 000000000..2a14f9906 --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/ListAccountServicePrincipalsResponse.java @@ -0,0 +1,91 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. + +package com.databricks.sdk.service.iam; + +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 ListAccountServicePrincipalsResponse { + /** Total results returned in the response. */ + @JsonProperty("itemsPerPage") + private Long itemsPerPage; + + /** User objects returned in the response. */ + @JsonProperty("Resources") + private Collection resources; + + /** Starting index of all the results that matched the request filters. First item is number 1. */ + @JsonProperty("startIndex") + private Long startIndex; + + /** Total results that match the request filters. */ + @JsonProperty("totalResults") + private Long totalResults; + + public ListAccountServicePrincipalsResponse setItemsPerPage(Long itemsPerPage) { + this.itemsPerPage = itemsPerPage; + return this; + } + + public Long getItemsPerPage() { + return itemsPerPage; + } + + public ListAccountServicePrincipalsResponse setResources( + Collection resources) { + this.resources = resources; + return this; + } + + public Collection getResources() { + return resources; + } + + public ListAccountServicePrincipalsResponse setStartIndex(Long startIndex) { + this.startIndex = startIndex; + return this; + } + + public Long getStartIndex() { + return startIndex; + } + + public ListAccountServicePrincipalsResponse setTotalResults(Long totalResults) { + this.totalResults = totalResults; + return this; + } + + public Long getTotalResults() { + return totalResults; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + ListAccountServicePrincipalsResponse that = (ListAccountServicePrincipalsResponse) o; + return Objects.equals(itemsPerPage, that.itemsPerPage) + && Objects.equals(resources, that.resources) + && Objects.equals(startIndex, that.startIndex) + && Objects.equals(totalResults, that.totalResults); + } + + @Override + public int hashCode() { + return Objects.hash(itemsPerPage, resources, startIndex, totalResults); + } + + @Override + public String toString() { + return new ToStringer(ListAccountServicePrincipalsResponse.class) + .add("itemsPerPage", itemsPerPage) + .add("resources", resources) + .add("startIndex", startIndex) + .add("totalResults", totalResults) + .toString(); + } +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/ListAccountUsersResponse.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/ListAccountUsersResponse.java new file mode 100755 index 000000000..2fbb772f2 --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/ListAccountUsersResponse.java @@ -0,0 +1,90 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. + +package com.databricks.sdk.service.iam; + +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 ListAccountUsersResponse { + /** Total results returned in the response. */ + @JsonProperty("itemsPerPage") + private Long itemsPerPage; + + /** User objects returned in the response. */ + @JsonProperty("Resources") + private Collection resources; + + /** Starting index of all the results that matched the request filters. First item is number 1. */ + @JsonProperty("startIndex") + private Long startIndex; + + /** Total results that match the request filters. */ + @JsonProperty("totalResults") + private Long totalResults; + + public ListAccountUsersResponse setItemsPerPage(Long itemsPerPage) { + this.itemsPerPage = itemsPerPage; + return this; + } + + public Long getItemsPerPage() { + return itemsPerPage; + } + + public ListAccountUsersResponse setResources(Collection resources) { + this.resources = resources; + return this; + } + + public Collection getResources() { + return resources; + } + + public ListAccountUsersResponse setStartIndex(Long startIndex) { + this.startIndex = startIndex; + return this; + } + + public Long getStartIndex() { + return startIndex; + } + + public ListAccountUsersResponse setTotalResults(Long totalResults) { + this.totalResults = totalResults; + return this; + } + + public Long getTotalResults() { + return totalResults; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + ListAccountUsersResponse that = (ListAccountUsersResponse) o; + return Objects.equals(itemsPerPage, that.itemsPerPage) + && Objects.equals(resources, that.resources) + && Objects.equals(startIndex, that.startIndex) + && Objects.equals(totalResults, that.totalResults); + } + + @Override + public int hashCode() { + return Objects.hash(itemsPerPage, resources, startIndex, totalResults); + } + + @Override + public String toString() { + return new ToStringer(ListAccountUsersResponse.class) + .add("itemsPerPage", itemsPerPage) + .add("resources", resources) + .add("startIndex", startIndex) + .add("totalResults", totalResults) + .toString(); + } +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/PatchAccountGroupRequest.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/PatchAccountGroupRequest.java new file mode 100755 index 000000000..293a24b6d --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/PatchAccountGroupRequest.java @@ -0,0 +1,75 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. + +package com.databricks.sdk.service.iam; + +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.Collection; +import java.util.Objects; + +@Generated +public class PatchAccountGroupRequest { + /** Unique ID in the Databricks workspace. */ + @JsonIgnore private String id; + + /** */ + @JsonProperty("Operations") + private Collection operations; + + /** The schema of the patch request. Must be ["urn:ietf:params:scim:api:messages:2.0:PatchOp"]. */ + @JsonProperty("schemas") + private Collection schemas; + + public PatchAccountGroupRequest setId(String id) { + this.id = id; + return this; + } + + public String getId() { + return id; + } + + public PatchAccountGroupRequest setOperations(Collection operations) { + this.operations = operations; + return this; + } + + public Collection getOperations() { + return operations; + } + + public PatchAccountGroupRequest setSchemas(Collection schemas) { + this.schemas = schemas; + return this; + } + + public Collection getSchemas() { + return schemas; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + PatchAccountGroupRequest that = (PatchAccountGroupRequest) o; + return Objects.equals(id, that.id) + && Objects.equals(operations, that.operations) + && Objects.equals(schemas, that.schemas); + } + + @Override + public int hashCode() { + return Objects.hash(id, operations, schemas); + } + + @Override + public String toString() { + return new ToStringer(PatchAccountGroupRequest.class) + .add("id", id) + .add("operations", operations) + .add("schemas", schemas) + .toString(); + } +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/PatchAccountServicePrincipalRequest.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/PatchAccountServicePrincipalRequest.java new file mode 100755 index 000000000..8274e0b94 --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/PatchAccountServicePrincipalRequest.java @@ -0,0 +1,75 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. + +package com.databricks.sdk.service.iam; + +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.Collection; +import java.util.Objects; + +@Generated +public class PatchAccountServicePrincipalRequest { + /** Unique ID in the Databricks workspace. */ + @JsonIgnore private String id; + + /** */ + @JsonProperty("Operations") + private Collection operations; + + /** The schema of the patch request. Must be ["urn:ietf:params:scim:api:messages:2.0:PatchOp"]. */ + @JsonProperty("schemas") + private Collection schemas; + + public PatchAccountServicePrincipalRequest setId(String id) { + this.id = id; + return this; + } + + public String getId() { + return id; + } + + public PatchAccountServicePrincipalRequest setOperations(Collection operations) { + this.operations = operations; + return this; + } + + public Collection getOperations() { + return operations; + } + + public PatchAccountServicePrincipalRequest setSchemas(Collection schemas) { + this.schemas = schemas; + return this; + } + + public Collection getSchemas() { + return schemas; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + PatchAccountServicePrincipalRequest that = (PatchAccountServicePrincipalRequest) o; + return Objects.equals(id, that.id) + && Objects.equals(operations, that.operations) + && Objects.equals(schemas, that.schemas); + } + + @Override + public int hashCode() { + return Objects.hash(id, operations, schemas); + } + + @Override + public String toString() { + return new ToStringer(PatchAccountServicePrincipalRequest.class) + .add("id", id) + .add("operations", operations) + .add("schemas", schemas) + .toString(); + } +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/PatchAccountUserRequest.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/PatchAccountUserRequest.java new file mode 100755 index 000000000..7958c6cb9 --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/PatchAccountUserRequest.java @@ -0,0 +1,75 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. + +package com.databricks.sdk.service.iam; + +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.Collection; +import java.util.Objects; + +@Generated +public class PatchAccountUserRequest { + /** Unique ID in the Databricks workspace. */ + @JsonIgnore private String id; + + /** */ + @JsonProperty("Operations") + private Collection operations; + + /** The schema of the patch request. Must be ["urn:ietf:params:scim:api:messages:2.0:PatchOp"]. */ + @JsonProperty("schemas") + private Collection schemas; + + public PatchAccountUserRequest setId(String id) { + this.id = id; + return this; + } + + public String getId() { + return id; + } + + public PatchAccountUserRequest setOperations(Collection operations) { + this.operations = operations; + return this; + } + + public Collection getOperations() { + return operations; + } + + public PatchAccountUserRequest setSchemas(Collection schemas) { + this.schemas = schemas; + return this; + } + + public Collection getSchemas() { + return schemas; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + PatchAccountUserRequest that = (PatchAccountUserRequest) o; + return Objects.equals(id, that.id) + && Objects.equals(operations, that.operations) + && Objects.equals(schemas, that.schemas); + } + + @Override + public int hashCode() { + return Objects.hash(id, operations, schemas); + } + + @Override + public String toString() { + return new ToStringer(PatchAccountUserRequest.class) + .add("id", id) + .add("operations", operations) + .add("schemas", schemas) + .toString(); + } +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/PatchGroupRequest.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/PatchGroupRequest.java new file mode 100755 index 000000000..fc0a5a6e5 --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/PatchGroupRequest.java @@ -0,0 +1,75 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. + +package com.databricks.sdk.service.iam; + +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.Collection; +import java.util.Objects; + +@Generated +public class PatchGroupRequest { + /** Unique ID in the Databricks workspace. */ + @JsonIgnore private String id; + + /** */ + @JsonProperty("Operations") + private Collection operations; + + /** The schema of the patch request. Must be ["urn:ietf:params:scim:api:messages:2.0:PatchOp"]. */ + @JsonProperty("schemas") + private Collection schemas; + + public PatchGroupRequest setId(String id) { + this.id = id; + return this; + } + + public String getId() { + return id; + } + + public PatchGroupRequest setOperations(Collection operations) { + this.operations = operations; + return this; + } + + public Collection getOperations() { + return operations; + } + + public PatchGroupRequest setSchemas(Collection schemas) { + this.schemas = schemas; + return this; + } + + public Collection getSchemas() { + return schemas; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + PatchGroupRequest that = (PatchGroupRequest) o; + return Objects.equals(id, that.id) + && Objects.equals(operations, that.operations) + && Objects.equals(schemas, that.schemas); + } + + @Override + public int hashCode() { + return Objects.hash(id, operations, schemas); + } + + @Override + public String toString() { + return new ToStringer(PatchGroupRequest.class) + .add("id", id) + .add("operations", operations) + .add("schemas", schemas) + .toString(); + } +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/PatchServicePrincipalRequest.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/PatchServicePrincipalRequest.java new file mode 100755 index 000000000..4d978c2ba --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/PatchServicePrincipalRequest.java @@ -0,0 +1,75 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. + +package com.databricks.sdk.service.iam; + +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.Collection; +import java.util.Objects; + +@Generated +public class PatchServicePrincipalRequest { + /** Unique ID in the Databricks workspace. */ + @JsonIgnore private String id; + + /** */ + @JsonProperty("Operations") + private Collection operations; + + /** The schema of the patch request. Must be ["urn:ietf:params:scim:api:messages:2.0:PatchOp"]. */ + @JsonProperty("schemas") + private Collection schemas; + + public PatchServicePrincipalRequest setId(String id) { + this.id = id; + return this; + } + + public String getId() { + return id; + } + + public PatchServicePrincipalRequest setOperations(Collection operations) { + this.operations = operations; + return this; + } + + public Collection getOperations() { + return operations; + } + + public PatchServicePrincipalRequest setSchemas(Collection schemas) { + this.schemas = schemas; + return this; + } + + public Collection getSchemas() { + return schemas; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + PatchServicePrincipalRequest that = (PatchServicePrincipalRequest) o; + return Objects.equals(id, that.id) + && Objects.equals(operations, that.operations) + && Objects.equals(schemas, that.schemas); + } + + @Override + public int hashCode() { + return Objects.hash(id, operations, schemas); + } + + @Override + public String toString() { + return new ToStringer(PatchServicePrincipalRequest.class) + .add("id", id) + .add("operations", operations) + .add("schemas", schemas) + .toString(); + } +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/PatchUserRequest.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/PatchUserRequest.java new file mode 100755 index 000000000..da0097a8b --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/PatchUserRequest.java @@ -0,0 +1,75 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. + +package com.databricks.sdk.service.iam; + +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.Collection; +import java.util.Objects; + +@Generated +public class PatchUserRequest { + /** Unique ID in the Databricks workspace. */ + @JsonIgnore private String id; + + /** */ + @JsonProperty("Operations") + private Collection operations; + + /** The schema of the patch request. Must be ["urn:ietf:params:scim:api:messages:2.0:PatchOp"]. */ + @JsonProperty("schemas") + private Collection schemas; + + public PatchUserRequest setId(String id) { + this.id = id; + return this; + } + + public String getId() { + return id; + } + + public PatchUserRequest setOperations(Collection operations) { + this.operations = operations; + return this; + } + + public Collection getOperations() { + return operations; + } + + public PatchUserRequest setSchemas(Collection schemas) { + this.schemas = schemas; + return this; + } + + public Collection getSchemas() { + return schemas; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + PatchUserRequest that = (PatchUserRequest) o; + return Objects.equals(id, that.id) + && Objects.equals(operations, that.operations) + && Objects.equals(schemas, that.schemas); + } + + @Override + public int hashCode() { + return Objects.hash(id, operations, schemas); + } + + @Override + public String toString() { + return new ToStringer(PatchUserRequest.class) + .add("id", id) + .add("operations", operations) + .add("schemas", schemas) + .toString(); + } +} 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 new file mode 100755 index 000000000..adbd38cc9 --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/ServicePrincipalsV2API.java @@ -0,0 +1,93 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. +package com.databricks.sdk.service.iam; + +import com.databricks.sdk.core.ApiClient; +import com.databricks.sdk.support.Generated; +import com.databricks.sdk.support.Paginator; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Identities for use with jobs, automated tools, and systems such as scripts, apps, and CI/CD + * platforms. Databricks recommends creating service principals to run production jobs or modify + * production data. If all processes that act on production data run with service principals, + * interactive users do not need any write, delete, or modify privileges in production. This + * eliminates the risk of a user overwriting production data by accident. + */ +@Generated +public class ServicePrincipalsV2API { + private static final Logger LOG = LoggerFactory.getLogger(ServicePrincipalsV2API.class); + + private final ServicePrincipalsV2Service impl; + + /** Regular-use constructor */ + public ServicePrincipalsV2API(ApiClient apiClient) { + impl = new ServicePrincipalsV2Impl(apiClient); + } + + /** Constructor for mocks */ + public ServicePrincipalsV2API(ServicePrincipalsV2Service mock) { + impl = mock; + } + + /** Creates a new service principal in the Databricks workspace. */ + public ServicePrincipal create(CreateServicePrincipalRequest request) { + return impl.create(request); + } + + public void delete(String id) { + delete(new DeleteServicePrincipalRequest().setId(id)); + } + + /** Delete a single service principal in the Databricks workspace. */ + public void delete(DeleteServicePrincipalRequest request) { + impl.delete(request); + } + + public ServicePrincipal get(String id) { + return get(new GetServicePrincipalRequest().setId(id)); + } + + /** Gets the details for a single service principal define in the Databricks workspace. */ + public ServicePrincipal get(GetServicePrincipalRequest request) { + return impl.get(request); + } + + /** Gets the set of service principals associated with a Databricks workspace. */ + public Iterable list(ListServicePrincipalsRequest request) { + request.setStartIndex(1L); + if (request.getCount() == null) { + request.setCount(10000L); + } + return new Paginator<>( + request, + impl::list, + ListServicePrincipalResponse::getResources, + response -> { + Long offset = request.getStartIndex(); + if (offset == null) { + offset = 0L; + } + offset += response.getResources().size(); + return request.setStartIndex(offset); + }); + } + + /** Partially updates the details of a single service principal in the Databricks workspace. */ + public void patch(PatchServicePrincipalRequest request) { + impl.patch(request); + } + + /** + * Updates the details of a single service principal. + * + *

This action replaces the existing service principal with the same name. + */ + public void update(UpdateServicePrincipalRequest request) { + impl.update(request); + } + + public ServicePrincipalsV2Service impl() { + return impl; + } +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/ServicePrincipalsV2Impl.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/ServicePrincipalsV2Impl.java new file mode 100755 index 000000000..381e0d3fc --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/ServicePrincipalsV2Impl.java @@ -0,0 +1,98 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. +package com.databricks.sdk.service.iam; + +import com.databricks.sdk.core.ApiClient; +import com.databricks.sdk.core.DatabricksException; +import com.databricks.sdk.core.http.Request; +import com.databricks.sdk.support.Generated; +import java.io.IOException; + +/** Package-local implementation of ServicePrincipalsV2 */ +@Generated +class ServicePrincipalsV2Impl implements ServicePrincipalsV2Service { + private final ApiClient apiClient; + + public ServicePrincipalsV2Impl(ApiClient apiClient) { + this.apiClient = apiClient; + } + + @Override + public ServicePrincipal create(CreateServicePrincipalRequest request) { + String path = "/api/2.0/preview/scim/v2/ServicePrincipals"; + 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, ServicePrincipal.class); + } catch (IOException e) { + throw new DatabricksException("IO error: " + e.getMessage(), e); + } + } + + @Override + public void delete(DeleteServicePrincipalRequest request) { + String path = String.format("/api/2.0/preview/scim/v2/ServicePrincipals/%s", request.getId()); + try { + Request req = new Request("DELETE", path); + ApiClient.setQuery(req, request); + apiClient.execute(req, Void.class); + } catch (IOException e) { + throw new DatabricksException("IO error: " + e.getMessage(), e); + } + } + + @Override + public ServicePrincipal get(GetServicePrincipalRequest request) { + String path = String.format("/api/2.0/preview/scim/v2/ServicePrincipals/%s", request.getId()); + try { + Request req = new Request("GET", path); + ApiClient.setQuery(req, request); + req.withHeader("Accept", "application/json"); + return apiClient.execute(req, ServicePrincipal.class); + } catch (IOException e) { + throw new DatabricksException("IO error: " + e.getMessage(), e); + } + } + + @Override + public ListServicePrincipalResponse list(ListServicePrincipalsRequest request) { + String path = "/api/2.0/preview/scim/v2/ServicePrincipals"; + try { + Request req = new Request("GET", path); + ApiClient.setQuery(req, request); + req.withHeader("Accept", "application/json"); + return apiClient.execute(req, ListServicePrincipalResponse.class); + } catch (IOException e) { + throw new DatabricksException("IO error: " + e.getMessage(), e); + } + } + + @Override + public void patch(PatchServicePrincipalRequest request) { + String path = String.format("/api/2.0/preview/scim/v2/ServicePrincipals/%s", request.getId()); + try { + Request req = new Request("PATCH", path, apiClient.serialize(request)); + ApiClient.setQuery(req, request); + req.withHeader("Accept", "application/json"); + req.withHeader("Content-Type", "application/json"); + apiClient.execute(req, Void.class); + } catch (IOException e) { + throw new DatabricksException("IO error: " + e.getMessage(), e); + } + } + + @Override + public void update(UpdateServicePrincipalRequest request) { + String path = String.format("/api/2.0/preview/scim/v2/ServicePrincipals/%s", request.getId()); + try { + Request req = new Request("PUT", path, apiClient.serialize(request)); + ApiClient.setQuery(req, request); + req.withHeader("Accept", "application/json"); + req.withHeader("Content-Type", "application/json"); + apiClient.execute(req, Void.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/iam/ServicePrincipalsV2Service.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/ServicePrincipalsV2Service.java new file mode 100755 index 000000000..86bf5711a --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/ServicePrincipalsV2Service.java @@ -0,0 +1,40 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. +package com.databricks.sdk.service.iam; + +import com.databricks.sdk.support.Generated; + +/** + * Identities for use with jobs, automated tools, and systems such as scripts, apps, and CI/CD + * platforms. Databricks recommends creating service principals to run production jobs or modify + * production data. If all processes that act on production data run with service principals, + * interactive users do not need any write, delete, or modify privileges in production. This + * eliminates the risk of a user overwriting production data by accident. + * + *

This is the high-level interface, that contains generated methods. + * + *

Evolving: this interface is under development. Method signatures may change. + */ +@Generated +public interface ServicePrincipalsV2Service { + /** Creates a new service principal in the Databricks workspace. */ + ServicePrincipal create(CreateServicePrincipalRequest createServicePrincipalRequest); + + /** Delete a single service principal in the Databricks workspace. */ + void delete(DeleteServicePrincipalRequest deleteServicePrincipalRequest); + + /** Gets the details for a single service principal define in the Databricks workspace. */ + ServicePrincipal get(GetServicePrincipalRequest getServicePrincipalRequest); + + /** Gets the set of service principals associated with a Databricks workspace. */ + ListServicePrincipalResponse list(ListServicePrincipalsRequest listServicePrincipalsRequest); + + /** Partially updates the details of a single service principal in the Databricks workspace. */ + void patch(PatchServicePrincipalRequest patchServicePrincipalRequest); + + /** + * Updates the details of a single service principal. + * + *

This action replaces the existing service principal with the same name. + */ + void update(UpdateServicePrincipalRequest updateServicePrincipalRequest); +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/UpdateAccountGroupRequest.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/UpdateAccountGroupRequest.java new file mode 100755 index 000000000..7c1ead7b1 --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/UpdateAccountGroupRequest.java @@ -0,0 +1,120 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. + +package com.databricks.sdk.service.iam; + +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.Collection; +import java.util.Objects; + +@Generated +public class UpdateAccountGroupRequest { + /** String that represents a human-readable group name */ + @JsonProperty("displayName") + private String displayName; + + /** */ + @JsonProperty("externalId") + private String externalId; + + /** Databricks group ID */ + @JsonIgnore private String id; + + /** */ + @JsonProperty("members") + private Collection members; + + /** Container for the group identifier. Workspace local versus account. */ + @JsonProperty("meta") + private ResourceMeta meta; + + /** Indicates if the group has the admin role. */ + @JsonProperty("roles") + private Collection roles; + + public UpdateAccountGroupRequest setDisplayName(String displayName) { + this.displayName = displayName; + return this; + } + + public String getDisplayName() { + return displayName; + } + + public UpdateAccountGroupRequest setExternalId(String externalId) { + this.externalId = externalId; + return this; + } + + public String getExternalId() { + return externalId; + } + + public UpdateAccountGroupRequest setId(String id) { + this.id = id; + return this; + } + + public String getId() { + return id; + } + + public UpdateAccountGroupRequest setMembers(Collection members) { + this.members = members; + return this; + } + + public Collection getMembers() { + return members; + } + + public UpdateAccountGroupRequest setMeta(ResourceMeta meta) { + this.meta = meta; + return this; + } + + public ResourceMeta getMeta() { + return meta; + } + + public UpdateAccountGroupRequest setRoles(Collection roles) { + this.roles = roles; + return this; + } + + public Collection getRoles() { + return roles; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + UpdateAccountGroupRequest that = (UpdateAccountGroupRequest) o; + return Objects.equals(displayName, that.displayName) + && Objects.equals(externalId, that.externalId) + && Objects.equals(id, that.id) + && Objects.equals(members, that.members) + && Objects.equals(meta, that.meta) + && Objects.equals(roles, that.roles); + } + + @Override + public int hashCode() { + return Objects.hash(displayName, externalId, id, members, meta, roles); + } + + @Override + public String toString() { + return new ToStringer(UpdateAccountGroupRequest.class) + .add("displayName", displayName) + .add("externalId", externalId) + .add("id", id) + .add("members", members) + .add("meta", meta) + .add("roles", roles) + .toString(); + } +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/UpdateAccountServicePrincipalRequest.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/UpdateAccountServicePrincipalRequest.java new file mode 100755 index 000000000..398e284f5 --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/UpdateAccountServicePrincipalRequest.java @@ -0,0 +1,120 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. + +package com.databricks.sdk.service.iam; + +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.Collection; +import java.util.Objects; + +@Generated +public class UpdateAccountServicePrincipalRequest { + /** If this user is active */ + @JsonProperty("active") + private Boolean active; + + /** UUID relating to the service principal */ + @JsonProperty("applicationId") + private String applicationId; + + /** String that represents a concatenation of given and family names. */ + @JsonProperty("displayName") + private String displayName; + + /** */ + @JsonProperty("externalId") + private String externalId; + + /** Databricks service principal ID. */ + @JsonIgnore private String id; + + /** Indicates if the group has the admin role. */ + @JsonProperty("roles") + private Collection roles; + + public UpdateAccountServicePrincipalRequest setActive(Boolean active) { + this.active = active; + return this; + } + + public Boolean getActive() { + return active; + } + + public UpdateAccountServicePrincipalRequest setApplicationId(String applicationId) { + this.applicationId = applicationId; + return this; + } + + public String getApplicationId() { + return applicationId; + } + + public UpdateAccountServicePrincipalRequest setDisplayName(String displayName) { + this.displayName = displayName; + return this; + } + + public String getDisplayName() { + return displayName; + } + + public UpdateAccountServicePrincipalRequest setExternalId(String externalId) { + this.externalId = externalId; + return this; + } + + public String getExternalId() { + return externalId; + } + + public UpdateAccountServicePrincipalRequest setId(String id) { + this.id = id; + return this; + } + + public String getId() { + return id; + } + + public UpdateAccountServicePrincipalRequest setRoles(Collection roles) { + this.roles = roles; + return this; + } + + public Collection getRoles() { + return roles; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + UpdateAccountServicePrincipalRequest that = (UpdateAccountServicePrincipalRequest) o; + return Objects.equals(active, that.active) + && Objects.equals(applicationId, that.applicationId) + && Objects.equals(displayName, that.displayName) + && Objects.equals(externalId, that.externalId) + && Objects.equals(id, that.id) + && Objects.equals(roles, that.roles); + } + + @Override + public int hashCode() { + return Objects.hash(active, applicationId, displayName, externalId, id, roles); + } + + @Override + public String toString() { + return new ToStringer(UpdateAccountServicePrincipalRequest.class) + .add("active", active) + .add("applicationId", applicationId) + .add("displayName", displayName) + .add("externalId", externalId) + .add("id", id) + .add("roles", roles) + .toString(); + } +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/UpdateAccountUserRequest.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/UpdateAccountUserRequest.java new file mode 100755 index 000000000..c078bac65 --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/UpdateAccountUserRequest.java @@ -0,0 +1,150 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. + +package com.databricks.sdk.service.iam; + +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.Collection; +import java.util.Objects; + +@Generated +public class UpdateAccountUserRequest { + /** If this user is active */ + @JsonProperty("active") + private Boolean active; + + /** String that represents a concatenation of given and family names. For example `John Smith`. */ + @JsonProperty("displayName") + private String displayName; + + /** All the emails associated with the Databricks user. */ + @JsonProperty("emails") + private Collection emails; + + /** External ID is not currently supported. It is reserved for future use. */ + @JsonProperty("externalId") + private String externalId; + + /** Databricks user ID. */ + @JsonIgnore private String id; + + /** */ + @JsonProperty("name") + private Name name; + + /** Indicates if the group has the admin role. */ + @JsonProperty("roles") + private Collection roles; + + /** Email address of the Databricks user. */ + @JsonProperty("userName") + private String userName; + + public UpdateAccountUserRequest setActive(Boolean active) { + this.active = active; + return this; + } + + public Boolean getActive() { + return active; + } + + public UpdateAccountUserRequest setDisplayName(String displayName) { + this.displayName = displayName; + return this; + } + + public String getDisplayName() { + return displayName; + } + + public UpdateAccountUserRequest setEmails(Collection emails) { + this.emails = emails; + return this; + } + + public Collection getEmails() { + return emails; + } + + public UpdateAccountUserRequest setExternalId(String externalId) { + this.externalId = externalId; + return this; + } + + public String getExternalId() { + return externalId; + } + + public UpdateAccountUserRequest setId(String id) { + this.id = id; + return this; + } + + public String getId() { + return id; + } + + public UpdateAccountUserRequest setName(Name name) { + this.name = name; + return this; + } + + public Name getName() { + return name; + } + + public UpdateAccountUserRequest setRoles(Collection roles) { + this.roles = roles; + return this; + } + + public Collection getRoles() { + return roles; + } + + public UpdateAccountUserRequest setUserName(String userName) { + this.userName = userName; + return this; + } + + public String getUserName() { + return userName; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + UpdateAccountUserRequest that = (UpdateAccountUserRequest) o; + return Objects.equals(active, that.active) + && Objects.equals(displayName, that.displayName) + && Objects.equals(emails, that.emails) + && Objects.equals(externalId, that.externalId) + && Objects.equals(id, that.id) + && Objects.equals(name, that.name) + && Objects.equals(roles, that.roles) + && Objects.equals(userName, that.userName); + } + + @Override + public int hashCode() { + return Objects.hash(active, displayName, emails, externalId, id, name, roles, userName); + } + + @Override + public String toString() { + return new ToStringer(UpdateAccountUserRequest.class) + .add("active", active) + .add("displayName", displayName) + .add("emails", emails) + .add("externalId", externalId) + .add("id", id) + .add("name", name) + .add("roles", roles) + .add("userName", userName) + .toString(); + } +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/UpdateGroupRequest.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/UpdateGroupRequest.java new file mode 100755 index 000000000..70892ebff --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/UpdateGroupRequest.java @@ -0,0 +1,172 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. + +package com.databricks.sdk.service.iam; + +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.Collection; +import java.util.Objects; + +@Generated +public class UpdateGroupRequest { + /** String that represents a human-readable group name */ + @JsonProperty("displayName") + private String displayName; + + /** + * Entitlements assigned to the group. See [assigning entitlements] for a full list of supported + * values. + * + *

[assigning entitlements]: + * https://docs.databricks.com/administration-guide/users-groups/index.html#assigning-entitlements + */ + @JsonProperty("entitlements") + private Collection entitlements; + + /** */ + @JsonProperty("externalId") + private String externalId; + + /** */ + @JsonProperty("groups") + private Collection groups; + + /** Databricks group ID */ + @JsonIgnore private String id; + + /** */ + @JsonProperty("members") + private Collection members; + + /** Container for the group identifier. Workspace local versus account. */ + @JsonProperty("meta") + private ResourceMeta meta; + + /** Corresponds to AWS instance profile/arn role. */ + @JsonProperty("roles") + private Collection roles; + + /** The schema of the group. */ + @JsonProperty("schemas") + private Collection schemas; + + public UpdateGroupRequest setDisplayName(String displayName) { + this.displayName = displayName; + return this; + } + + public String getDisplayName() { + return displayName; + } + + public UpdateGroupRequest setEntitlements(Collection entitlements) { + this.entitlements = entitlements; + return this; + } + + public Collection getEntitlements() { + return entitlements; + } + + public UpdateGroupRequest setExternalId(String externalId) { + this.externalId = externalId; + return this; + } + + public String getExternalId() { + return externalId; + } + + public UpdateGroupRequest setGroups(Collection groups) { + this.groups = groups; + return this; + } + + public Collection getGroups() { + return groups; + } + + public UpdateGroupRequest setId(String id) { + this.id = id; + return this; + } + + public String getId() { + return id; + } + + public UpdateGroupRequest setMembers(Collection members) { + this.members = members; + return this; + } + + public Collection getMembers() { + return members; + } + + public UpdateGroupRequest setMeta(ResourceMeta meta) { + this.meta = meta; + return this; + } + + public ResourceMeta getMeta() { + return meta; + } + + public UpdateGroupRequest setRoles(Collection roles) { + this.roles = roles; + return this; + } + + public Collection getRoles() { + return roles; + } + + public UpdateGroupRequest setSchemas(Collection schemas) { + this.schemas = schemas; + return this; + } + + public Collection getSchemas() { + return schemas; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + UpdateGroupRequest that = (UpdateGroupRequest) o; + return Objects.equals(displayName, that.displayName) + && Objects.equals(entitlements, that.entitlements) + && Objects.equals(externalId, that.externalId) + && Objects.equals(groups, that.groups) + && Objects.equals(id, that.id) + && Objects.equals(members, that.members) + && Objects.equals(meta, that.meta) + && Objects.equals(roles, that.roles) + && Objects.equals(schemas, that.schemas); + } + + @Override + public int hashCode() { + return Objects.hash( + displayName, entitlements, externalId, groups, id, members, meta, roles, schemas); + } + + @Override + public String toString() { + return new ToStringer(UpdateGroupRequest.class) + .add("displayName", displayName) + .add("entitlements", entitlements) + .add("externalId", externalId) + .add("groups", groups) + .add("id", id) + .add("members", members) + .add("meta", meta) + .add("roles", roles) + .add("schemas", schemas) + .toString(); + } +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/UpdateServicePrincipalRequest.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/UpdateServicePrincipalRequest.java new file mode 100755 index 000000000..d9dcbe3e1 --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/UpdateServicePrincipalRequest.java @@ -0,0 +1,172 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. + +package com.databricks.sdk.service.iam; + +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.Collection; +import java.util.Objects; + +@Generated +public class UpdateServicePrincipalRequest { + /** If this user is active */ + @JsonProperty("active") + private Boolean active; + + /** UUID relating to the service principal */ + @JsonProperty("applicationId") + private String applicationId; + + /** String that represents a concatenation of given and family names. */ + @JsonProperty("displayName") + private String displayName; + + /** + * Entitlements assigned to the service principal. See [assigning entitlements] for a full list of + * supported values. + * + *

[assigning entitlements]: + * https://docs.databricks.com/administration-guide/users-groups/index.html#assigning-entitlements + */ + @JsonProperty("entitlements") + private Collection entitlements; + + /** */ + @JsonProperty("externalId") + private String externalId; + + /** */ + @JsonProperty("groups") + private Collection groups; + + /** Databricks service principal ID. */ + @JsonIgnore private String id; + + /** Corresponds to AWS instance profile/arn role. */ + @JsonProperty("roles") + private Collection roles; + + /** The schema of the List response. */ + @JsonProperty("schemas") + private Collection schemas; + + public UpdateServicePrincipalRequest setActive(Boolean active) { + this.active = active; + return this; + } + + public Boolean getActive() { + return active; + } + + public UpdateServicePrincipalRequest setApplicationId(String applicationId) { + this.applicationId = applicationId; + return this; + } + + public String getApplicationId() { + return applicationId; + } + + public UpdateServicePrincipalRequest setDisplayName(String displayName) { + this.displayName = displayName; + return this; + } + + public String getDisplayName() { + return displayName; + } + + public UpdateServicePrincipalRequest setEntitlements(Collection entitlements) { + this.entitlements = entitlements; + return this; + } + + public Collection getEntitlements() { + return entitlements; + } + + public UpdateServicePrincipalRequest setExternalId(String externalId) { + this.externalId = externalId; + return this; + } + + public String getExternalId() { + return externalId; + } + + public UpdateServicePrincipalRequest setGroups(Collection groups) { + this.groups = groups; + return this; + } + + public Collection getGroups() { + return groups; + } + + public UpdateServicePrincipalRequest setId(String id) { + this.id = id; + return this; + } + + public String getId() { + return id; + } + + public UpdateServicePrincipalRequest setRoles(Collection roles) { + this.roles = roles; + return this; + } + + public Collection getRoles() { + return roles; + } + + public UpdateServicePrincipalRequest setSchemas(Collection schemas) { + this.schemas = schemas; + return this; + } + + public Collection getSchemas() { + return schemas; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + UpdateServicePrincipalRequest that = (UpdateServicePrincipalRequest) o; + return Objects.equals(active, that.active) + && Objects.equals(applicationId, that.applicationId) + && Objects.equals(displayName, that.displayName) + && Objects.equals(entitlements, that.entitlements) + && Objects.equals(externalId, that.externalId) + && Objects.equals(groups, that.groups) + && Objects.equals(id, that.id) + && Objects.equals(roles, that.roles) + && Objects.equals(schemas, that.schemas); + } + + @Override + public int hashCode() { + return Objects.hash( + active, applicationId, displayName, entitlements, externalId, groups, id, roles, schemas); + } + + @Override + public String toString() { + return new ToStringer(UpdateServicePrincipalRequest.class) + .add("active", active) + .add("applicationId", applicationId) + .add("displayName", displayName) + .add("entitlements", entitlements) + .add("externalId", externalId) + .add("groups", groups) + .add("id", id) + .add("roles", roles) + .add("schemas", schemas) + .toString(); + } +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/UpdateUserRequest.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/UpdateUserRequest.java new file mode 100755 index 000000000..cf1bd8e66 --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/UpdateUserRequest.java @@ -0,0 +1,219 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. + +package com.databricks.sdk.service.iam; + +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.Collection; +import java.util.Objects; + +@Generated +public class UpdateUserRequest { + /** If this user is active */ + @JsonProperty("active") + private Boolean active; + + /** + * String that represents a concatenation of given and family names. For example `John Smith`. + * This field cannot be updated through the Workspace SCIM APIs when [identity federation is + * enabled]. Use Account SCIM APIs to update `displayName`. + * + *

[identity federation is enabled]: + * https://docs.databricks.com/administration-guide/users-groups/best-practices.html#enable-identity-federation + */ + @JsonProperty("displayName") + private String displayName; + + /** All the emails associated with the Databricks user. */ + @JsonProperty("emails") + private Collection emails; + + /** + * Entitlements assigned to the user. See [assigning entitlements] for a full list of supported + * values. + * + *

[assigning entitlements]: + * https://docs.databricks.com/administration-guide/users-groups/index.html#assigning-entitlements + */ + @JsonProperty("entitlements") + private Collection entitlements; + + /** External ID is not currently supported. It is reserved for future use. */ + @JsonProperty("externalId") + private String externalId; + + /** */ + @JsonProperty("groups") + private Collection groups; + + /** Databricks user ID. */ + @JsonIgnore private String id; + + /** */ + @JsonProperty("name") + private Name name; + + /** Corresponds to AWS instance profile/arn role. */ + @JsonProperty("roles") + private Collection roles; + + /** The schema of the user. */ + @JsonProperty("schemas") + private Collection schemas; + + /** Email address of the Databricks user. */ + @JsonProperty("userName") + private String userName; + + public UpdateUserRequest setActive(Boolean active) { + this.active = active; + return this; + } + + public Boolean getActive() { + return active; + } + + public UpdateUserRequest setDisplayName(String displayName) { + this.displayName = displayName; + return this; + } + + public String getDisplayName() { + return displayName; + } + + public UpdateUserRequest setEmails(Collection emails) { + this.emails = emails; + return this; + } + + public Collection getEmails() { + return emails; + } + + public UpdateUserRequest setEntitlements(Collection entitlements) { + this.entitlements = entitlements; + return this; + } + + public Collection getEntitlements() { + return entitlements; + } + + public UpdateUserRequest setExternalId(String externalId) { + this.externalId = externalId; + return this; + } + + public String getExternalId() { + return externalId; + } + + public UpdateUserRequest setGroups(Collection groups) { + this.groups = groups; + return this; + } + + public Collection getGroups() { + return groups; + } + + public UpdateUserRequest setId(String id) { + this.id = id; + return this; + } + + public String getId() { + return id; + } + + public UpdateUserRequest setName(Name name) { + this.name = name; + return this; + } + + public Name getName() { + return name; + } + + public UpdateUserRequest setRoles(Collection roles) { + this.roles = roles; + return this; + } + + public Collection getRoles() { + return roles; + } + + public UpdateUserRequest setSchemas(Collection schemas) { + this.schemas = schemas; + return this; + } + + public Collection getSchemas() { + return schemas; + } + + public UpdateUserRequest setUserName(String userName) { + this.userName = userName; + return this; + } + + public String getUserName() { + return userName; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + UpdateUserRequest that = (UpdateUserRequest) o; + return Objects.equals(active, that.active) + && Objects.equals(displayName, that.displayName) + && Objects.equals(emails, that.emails) + && Objects.equals(entitlements, that.entitlements) + && Objects.equals(externalId, that.externalId) + && Objects.equals(groups, that.groups) + && Objects.equals(id, that.id) + && Objects.equals(name, that.name) + && Objects.equals(roles, that.roles) + && Objects.equals(schemas, that.schemas) + && Objects.equals(userName, that.userName); + } + + @Override + public int hashCode() { + return Objects.hash( + active, + displayName, + emails, + entitlements, + externalId, + groups, + id, + name, + roles, + schemas, + userName); + } + + @Override + public String toString() { + return new ToStringer(UpdateUserRequest.class) + .add("active", active) + .add("displayName", displayName) + .add("emails", emails) + .add("entitlements", entitlements) + .add("externalId", externalId) + .add("groups", groups) + .add("id", id) + .add("name", name) + .add("roles", roles) + .add("schemas", schemas) + .add("userName", userName) + .toString(); + } +} 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 new file mode 100755 index 000000000..7ab1654a6 --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/UsersV2API.java @@ -0,0 +1,132 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. +package com.databricks.sdk.service.iam; + +import com.databricks.sdk.core.ApiClient; +import com.databricks.sdk.support.Generated; +import com.databricks.sdk.support.Paginator; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * User identities recognized by Databricks and represented by email addresses. + * + *

Databricks recommends using SCIM provisioning to sync users and groups automatically from your + * identity provider to your Databricks workspace. SCIM streamlines onboarding a new employee or + * team by using your identity provider to create users and groups in Databricks workspace and give + * them the proper level of access. When a user leaves your organization or no longer needs access + * to Databricks workspace, admins can terminate the user in your identity provider and that user’s + * account will also be removed from Databricks workspace. This ensures a consistent offboarding + * process and prevents unauthorized users from accessing sensitive data. + */ +@Generated +public class UsersV2API { + private static final Logger LOG = LoggerFactory.getLogger(UsersV2API.class); + + private final UsersV2Service impl; + + /** Regular-use constructor */ + public UsersV2API(ApiClient apiClient) { + impl = new UsersV2Impl(apiClient); + } + + /** Constructor for mocks */ + public UsersV2API(UsersV2Service mock) { + impl = mock; + } + + /** + * Creates a new user in the Databricks workspace. This new user will also be added to the + * Databricks account. + */ + public User create(CreateUserRequest request) { + return impl.create(request); + } + + public void delete(String id) { + delete(new DeleteUserRequest().setId(id)); + } + + /** + * Deletes a user. Deleting a user from a Databricks workspace also removes objects associated + * with the user. + */ + public void delete(DeleteUserRequest request) { + impl.delete(request); + } + + public User get(String id) { + return get(new GetUserRequest().setId(id)); + } + + /** Gets information for a specific user in Databricks workspace. */ + public User get(GetUserRequest request) { + return impl.get(request); + } + + /** Gets the permission levels that a user can have on an object. */ + public GetPasswordPermissionLevelsResponse getPermissionLevels( + GetPasswordPermissionLevelsRequest request) { + return impl.getPermissionLevels(request); + } + + /** + * Gets the permissions of all passwords. Passwords can inherit permissions from their root + * object. + */ + public PasswordPermissions getPermissions(GetPasswordPermissionsRequest request) { + return impl.getPermissions(request); + } + + /** Gets details for all the users associated with a Databricks workspace. */ + public Iterable list(ListUsersRequest request) { + request.setStartIndex(1L); + if (request.getCount() == null) { + request.setCount(10000L); + } + return new Paginator<>( + request, + impl::list, + ListUsersResponse::getResources, + response -> { + Long offset = request.getStartIndex(); + if (offset == null) { + offset = 0L; + } + offset += response.getResources().size(); + return request.setStartIndex(offset); + }); + } + + /** + * Partially updates a user resource by applying the supplied operations on specific user + * attributes. + */ + public void patch(PatchUserRequest request) { + impl.patch(request); + } + + /** + * Sets permissions on an object, replacing existing permissions if they exist. Deletes all direct + * permissions if none are specified. Objects can inherit permissions from their root object. + */ + public PasswordPermissions setPermissions(PasswordPermissionsRequest request) { + return impl.setPermissions(request); + } + + /** Replaces a user's information with the data supplied in request. */ + public void update(UpdateUserRequest request) { + impl.update(request); + } + + /** + * Updates the permissions on all passwords. Passwords can inherit permissions from their root + * object. + */ + public PasswordPermissions updatePermissions(PasswordPermissionsRequest request) { + return impl.updatePermissions(request); + } + + public UsersV2Service impl() { + return impl; + } +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/UsersV2Impl.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/UsersV2Impl.java new file mode 100755 index 000000000..8119232b1 --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/UsersV2Impl.java @@ -0,0 +1,153 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. +package com.databricks.sdk.service.iam; + +import com.databricks.sdk.core.ApiClient; +import com.databricks.sdk.core.DatabricksException; +import com.databricks.sdk.core.http.Request; +import com.databricks.sdk.support.Generated; +import java.io.IOException; + +/** Package-local implementation of UsersV2 */ +@Generated +class UsersV2Impl implements UsersV2Service { + private final ApiClient apiClient; + + public UsersV2Impl(ApiClient apiClient) { + this.apiClient = apiClient; + } + + @Override + public User create(CreateUserRequest request) { + String path = "/api/2.0/preview/scim/v2/Users"; + 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, User.class); + } catch (IOException e) { + throw new DatabricksException("IO error: " + e.getMessage(), e); + } + } + + @Override + public void delete(DeleteUserRequest request) { + String path = String.format("/api/2.0/preview/scim/v2/Users/%s", request.getId()); + try { + Request req = new Request("DELETE", path); + ApiClient.setQuery(req, request); + apiClient.execute(req, Void.class); + } catch (IOException e) { + throw new DatabricksException("IO error: " + e.getMessage(), e); + } + } + + @Override + public User get(GetUserRequest request) { + String path = String.format("/api/2.0/preview/scim/v2/Users/%s", request.getId()); + try { + Request req = new Request("GET", path); + ApiClient.setQuery(req, request); + req.withHeader("Accept", "application/json"); + return apiClient.execute(req, User.class); + } catch (IOException e) { + throw new DatabricksException("IO error: " + e.getMessage(), e); + } + } + + @Override + public GetPasswordPermissionLevelsResponse getPermissionLevels( + GetPasswordPermissionLevelsRequest request) { + String path = "/api/2.0/permissions/authorization/passwords/permissionLevels"; + try { + Request req = new Request("GET", path); + ApiClient.setQuery(req, request); + req.withHeader("Accept", "application/json"); + return apiClient.execute(req, GetPasswordPermissionLevelsResponse.class); + } catch (IOException e) { + throw new DatabricksException("IO error: " + e.getMessage(), e); + } + } + + @Override + public PasswordPermissions getPermissions(GetPasswordPermissionsRequest request) { + String path = "/api/2.0/permissions/authorization/passwords"; + try { + Request req = new Request("GET", path); + ApiClient.setQuery(req, request); + req.withHeader("Accept", "application/json"); + return apiClient.execute(req, PasswordPermissions.class); + } catch (IOException e) { + throw new DatabricksException("IO error: " + e.getMessage(), e); + } + } + + @Override + public ListUsersResponse list(ListUsersRequest request) { + String path = "/api/2.0/preview/scim/v2/Users"; + try { + Request req = new Request("GET", path); + ApiClient.setQuery(req, request); + req.withHeader("Accept", "application/json"); + return apiClient.execute(req, ListUsersResponse.class); + } catch (IOException e) { + throw new DatabricksException("IO error: " + e.getMessage(), e); + } + } + + @Override + public void patch(PatchUserRequest request) { + String path = String.format("/api/2.0/preview/scim/v2/Users/%s", request.getId()); + try { + Request req = new Request("PATCH", path, apiClient.serialize(request)); + ApiClient.setQuery(req, request); + req.withHeader("Accept", "application/json"); + req.withHeader("Content-Type", "application/json"); + apiClient.execute(req, Void.class); + } catch (IOException e) { + throw new DatabricksException("IO error: " + e.getMessage(), e); + } + } + + @Override + public PasswordPermissions setPermissions(PasswordPermissionsRequest request) { + String path = "/api/2.0/permissions/authorization/passwords"; + try { + Request req = new Request("PUT", path, apiClient.serialize(request)); + ApiClient.setQuery(req, request); + req.withHeader("Accept", "application/json"); + req.withHeader("Content-Type", "application/json"); + return apiClient.execute(req, PasswordPermissions.class); + } catch (IOException e) { + throw new DatabricksException("IO error: " + e.getMessage(), e); + } + } + + @Override + public void update(UpdateUserRequest request) { + String path = String.format("/api/2.0/preview/scim/v2/Users/%s", request.getId()); + try { + Request req = new Request("PUT", path, apiClient.serialize(request)); + ApiClient.setQuery(req, request); + req.withHeader("Accept", "application/json"); + req.withHeader("Content-Type", "application/json"); + apiClient.execute(req, Void.class); + } catch (IOException e) { + throw new DatabricksException("IO error: " + e.getMessage(), e); + } + } + + @Override + public PasswordPermissions updatePermissions(PasswordPermissionsRequest request) { + String path = "/api/2.0/permissions/authorization/passwords"; + try { + Request req = new Request("PATCH", path, apiClient.serialize(request)); + ApiClient.setQuery(req, request); + req.withHeader("Accept", "application/json"); + req.withHeader("Content-Type", "application/json"); + return apiClient.execute(req, PasswordPermissions.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/iam/UsersV2Service.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/UsersV2Service.java new file mode 100755 index 000000000..2ab74a89f --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/UsersV2Service.java @@ -0,0 +1,71 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. +package com.databricks.sdk.service.iam; + +import com.databricks.sdk.support.Generated; + +/** + * User identities recognized by Databricks and represented by email addresses. + * + *

Databricks recommends using SCIM provisioning to sync users and groups automatically from your + * identity provider to your Databricks workspace. SCIM streamlines onboarding a new employee or + * team by using your identity provider to create users and groups in Databricks workspace and give + * them the proper level of access. When a user leaves your organization or no longer needs access + * to Databricks workspace, admins can terminate the user in your identity provider and that user’s + * account will also be removed from Databricks workspace. This ensures a consistent offboarding + * process and prevents unauthorized users from accessing sensitive data. + * + *

This is the high-level interface, that contains generated methods. + * + *

Evolving: this interface is under development. Method signatures may change. + */ +@Generated +public interface UsersV2Service { + /** + * Creates a new user in the Databricks workspace. This new user will also be added to the + * Databricks account. + */ + User create(CreateUserRequest createUserRequest); + + /** + * Deletes a user. Deleting a user from a Databricks workspace also removes objects associated + * with the user. + */ + void delete(DeleteUserRequest deleteUserRequest); + + /** Gets information for a specific user in Databricks workspace. */ + User get(GetUserRequest getUserRequest); + + /** Gets the permission levels that a user can have on an object. */ + GetPasswordPermissionLevelsResponse getPermissionLevels( + GetPasswordPermissionLevelsRequest getPasswordPermissionLevelsRequest); + + /** + * Gets the permissions of all passwords. Passwords can inherit permissions from their root + * object. + */ + PasswordPermissions getPermissions(GetPasswordPermissionsRequest getPasswordPermissionsRequest); + + /** Gets details for all the users associated with a Databricks workspace. */ + ListUsersResponse list(ListUsersRequest listUsersRequest); + + /** + * Partially updates a user resource by applying the supplied operations on specific user + * attributes. + */ + void patch(PatchUserRequest patchUserRequest); + + /** + * Sets permissions on an object, replacing existing permissions if they exist. Deletes all direct + * permissions if none are specified. Objects can inherit permissions from their root object. + */ + PasswordPermissions setPermissions(PasswordPermissionsRequest passwordPermissionsRequest); + + /** Replaces a user's information with the data supplied in request. */ + void update(UpdateUserRequest updateUserRequest); + + /** + * Updates the permissions on all passwords. Passwords can inherit permissions from their root + * object. + */ + PasswordPermissions updatePermissions(PasswordPermissionsRequest passwordPermissionsRequest); +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/ExportRunOutput.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/ExportRunOutput.java index 09a4c43b7..160338971 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/ExportRunOutput.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/ExportRunOutput.java @@ -13,9 +13,7 @@ public class ExportRunOutput { /** * The exported content in HTML format (one for every view item). To extract the HTML notebook - * from the JSON response, download and run this [Python script]. - * - *

[Python script]: https://docs.databricks.com/en/_static/examples/extract.py + * from the JSON response, download and run this [Python script](/_static/examples/extract.py). */ @JsonProperty("views") private Collection views; diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/RunTask.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/RunTask.java index 46418668b..c68229720 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/RunTask.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/RunTask.java @@ -24,7 +24,7 @@ public class RunTask { /** * The task runs a [clean rooms] notebook when the `clean_rooms_notebook_task` field is present. * - *

[clean rooms]: https://docs.databricks.com/en/clean-rooms/index.html + *

[clean rooms]: https://docs.databricks.com/clean-rooms/index.html */ @JsonProperty("clean_rooms_notebook_task") private CleanRoomsNotebookTask cleanRoomsNotebookTask; @@ -254,21 +254,9 @@ public class RunTask { private SparkPythonTask sparkPythonTask; /** - * (Legacy) The task runs the spark-submit script when the `spark_submit_task` field is present. - * This task can run only on new clusters and is not compatible with serverless compute. - * - *

In the `new_cluster` specification, `libraries` and `spark_conf` are not supported. Instead, - * use `--jars` and `--py-files` to add Java and Python libraries and `--conf` to set the Spark - * configurations. - * - *

`master`, `deploy-mode`, and `executor-cores` are automatically configured by Databricks; - * you _cannot_ specify them in parameters. - * - *

By default, the Spark submit job uses all available memory (excluding reserved memory for - * Databricks services). You can set `--driver-memory`, and `--executor-memory` to a smaller value - * to leave some room for off-heap usage. - * - *

The `--jars`, `--py-files`, `--files` arguments support DBFS and S3 paths. + * (Legacy) The task runs the spark-submit script when the spark_submit_task field is present. + * Databricks recommends using the spark_jar_task instead; see [Spark Submit task for + * jobs](/jobs/spark-submit). */ @JsonProperty("spark_submit_task") private SparkSubmitTask sparkSubmitTask; diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/RunType.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/RunType.java index f0392d503..1b20cd23c 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/RunType.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/RunType.java @@ -16,9 +16,7 @@ public enum RunType { JOB_RUN, // Normal job run. A run created with :method:jobs/runNow. SUBMIT_RUN, // Submit run. A run created with :method:jobs/submit. - WORKFLOW_RUN, // Workflow run. A run created with [dbutils.notebook.run]. - // - // [dbutils.notebook.run]: - // https://docs.databricks.com/dev-tools/databricks-utils.html#dbutils-workflow + WORKFLOW_RUN, // Workflow run. A run created with + // [dbutils.notebook.run](/dev-tools/databricks-utils.html#dbutils-workflow). } diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/SubmitTask.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/SubmitTask.java index 07677312a..2ca6b1107 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/SubmitTask.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/SubmitTask.java @@ -13,7 +13,7 @@ public class SubmitTask { /** * The task runs a [clean rooms] notebook when the `clean_rooms_notebook_task` field is present. * - *

[clean rooms]: https://docs.databricks.com/en/clean-rooms/index.html + *

[clean rooms]: https://docs.databricks.com/clean-rooms/index.html */ @JsonProperty("clean_rooms_notebook_task") private CleanRoomsNotebookTask cleanRoomsNotebookTask; @@ -154,21 +154,9 @@ public class SubmitTask { private SparkPythonTask sparkPythonTask; /** - * (Legacy) The task runs the spark-submit script when the `spark_submit_task` field is present. - * This task can run only on new clusters and is not compatible with serverless compute. - * - *

In the `new_cluster` specification, `libraries` and `spark_conf` are not supported. Instead, - * use `--jars` and `--py-files` to add Java and Python libraries and `--conf` to set the Spark - * configurations. - * - *

`master`, `deploy-mode`, and `executor-cores` are automatically configured by Databricks; - * you _cannot_ specify them in parameters. - * - *

By default, the Spark submit job uses all available memory (excluding reserved memory for - * Databricks services). You can set `--driver-memory`, and `--executor-memory` to a smaller value - * to leave some room for off-heap usage. - * - *

The `--jars`, `--py-files`, `--files` arguments support DBFS and S3 paths. + * (Legacy) The task runs the spark-submit script when the spark_submit_task field is present. + * Databricks recommends using the spark_jar_task instead; see [Spark Submit task for + * jobs](/jobs/spark-submit). */ @JsonProperty("spark_submit_task") private SparkSubmitTask sparkSubmitTask; diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/Task.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/Task.java index a4e7904e1..764d19238 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/Task.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/Task.java @@ -13,7 +13,7 @@ public class Task { /** * The task runs a [clean rooms] notebook when the `clean_rooms_notebook_task` field is present. * - *

[clean rooms]: https://docs.databricks.com/en/clean-rooms/index.html + *

[clean rooms]: https://docs.databricks.com/clean-rooms/index.html */ @JsonProperty("clean_rooms_notebook_task") private CleanRoomsNotebookTask cleanRoomsNotebookTask; @@ -201,21 +201,9 @@ public class Task { private SparkPythonTask sparkPythonTask; /** - * (Legacy) The task runs the spark-submit script when the `spark_submit_task` field is present. - * This task can run only on new clusters and is not compatible with serverless compute. - * - *

In the `new_cluster` specification, `libraries` and `spark_conf` are not supported. Instead, - * use `--jars` and `--py-files` to add Java and Python libraries and `--conf` to set the Spark - * configurations. - * - *

`master`, `deploy-mode`, and `executor-cores` are automatically configured by Databricks; - * you _cannot_ specify them in parameters. - * - *

By default, the Spark submit job uses all available memory (excluding reserved memory for - * Databricks services). You can set `--driver-memory`, and `--executor-memory` to a smaller value - * to leave some room for off-heap usage. - * - *

The `--jars`, `--py-files`, `--files` arguments support DBFS and S3 paths. + * (Legacy) The task runs the spark-submit script when the spark_submit_task field is present. + * Databricks recommends using the spark_jar_task instead; see [Spark Submit task for + * jobs](/jobs/spark-submit). */ @JsonProperty("spark_submit_task") private SparkSubmitTask sparkSubmitTask; diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/pipelines/IngestionPipelineDefinition.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/pipelines/IngestionPipelineDefinition.java index 747cfe8cb..6c311c809 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/pipelines/IngestionPipelineDefinition.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/pipelines/IngestionPipelineDefinition.java @@ -24,6 +24,13 @@ public class IngestionPipelineDefinition { @JsonProperty("ingestion_gateway_id") private String ingestionGatewayId; + /** + * Netsuite only configuration. When the field is set for a netsuite connector, the jar stored in + * the field will be validated and added to the classpath of pipeline's cluster. + */ + @JsonProperty("netsuite_jar_path") + private String netsuiteJarPath; + /** * Required. Settings specifying tables to replicate and the destination for the replicated * tables. @@ -67,6 +74,15 @@ public String getIngestionGatewayId() { return ingestionGatewayId; } + public IngestionPipelineDefinition setNetsuiteJarPath(String netsuiteJarPath) { + this.netsuiteJarPath = netsuiteJarPath; + return this; + } + + public String getNetsuiteJarPath() { + return netsuiteJarPath; + } + public IngestionPipelineDefinition setObjects(Collection objects) { this.objects = objects; return this; @@ -111,6 +127,7 @@ public boolean equals(Object o) { IngestionPipelineDefinition that = (IngestionPipelineDefinition) o; return Objects.equals(connectionName, that.connectionName) && Objects.equals(ingestionGatewayId, that.ingestionGatewayId) + && Objects.equals(netsuiteJarPath, that.netsuiteJarPath) && Objects.equals(objects, that.objects) && Objects.equals(sourceConfigurations, that.sourceConfigurations) && Objects.equals(sourceType, that.sourceType) @@ -122,6 +139,7 @@ public int hashCode() { return Objects.hash( connectionName, ingestionGatewayId, + netsuiteJarPath, objects, sourceConfigurations, sourceType, @@ -133,6 +151,7 @@ public String toString() { return new ToStringer(IngestionPipelineDefinition.class) .add("connectionName", connectionName) .add("ingestionGatewayId", ingestionGatewayId) + .add("netsuiteJarPath", netsuiteJarPath) .add("objects", objects) .add("sourceConfigurations", sourceConfigurations) .add("sourceType", sourceType) diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/pipelines/IngestionPipelineDefinitionWorkdayReportParameters.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/pipelines/IngestionPipelineDefinitionWorkdayReportParameters.java new file mode 100755 index 000000000..503dd2667 --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/pipelines/IngestionPipelineDefinitionWorkdayReportParameters.java @@ -0,0 +1,93 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. + +package com.databricks.sdk.service.pipelines; + +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.Map; +import java.util.Objects; + +@Generated +public class IngestionPipelineDefinitionWorkdayReportParameters { + /** + * (Optional) Marks the report as incremental. This field is deprecated and should not be used. + * Use `parameters` instead. The incremental behavior is now controlled by the `parameters` field. + */ + @JsonProperty("incremental") + private Boolean incremental; + + /** + * Parameters for the Workday report. Each key represents the parameter name (e.g., "start_date", + * "end_date"), and the corresponding value is a SQL-like expression used to compute the parameter + * value at runtime. Example: { "start_date": "{ coalesce(current_offset(), date(\"2025-02-01\")) + * }", "end_date": "{ current_date() - INTERVAL 1 DAY }" } + */ + @JsonProperty("parameters") + private Map parameters; + + /** + * (Optional) Additional custom parameters for Workday Report This field is deprecated and should + * not be used. Use `parameters` instead. + */ + @JsonProperty("report_parameters") + private Collection + reportParameters; + + public IngestionPipelineDefinitionWorkdayReportParameters setIncremental(Boolean incremental) { + this.incremental = incremental; + return this; + } + + public Boolean getIncremental() { + return incremental; + } + + public IngestionPipelineDefinitionWorkdayReportParameters setParameters( + Map parameters) { + this.parameters = parameters; + return this; + } + + public Map getParameters() { + return parameters; + } + + public IngestionPipelineDefinitionWorkdayReportParameters setReportParameters( + Collection + reportParameters) { + this.reportParameters = reportParameters; + return this; + } + + public Collection + getReportParameters() { + return reportParameters; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + IngestionPipelineDefinitionWorkdayReportParameters that = + (IngestionPipelineDefinitionWorkdayReportParameters) o; + return Objects.equals(incremental, that.incremental) + && Objects.equals(parameters, that.parameters) + && Objects.equals(reportParameters, that.reportParameters); + } + + @Override + public int hashCode() { + return Objects.hash(incremental, parameters, reportParameters); + } + + @Override + public String toString() { + return new ToStringer(IngestionPipelineDefinitionWorkdayReportParameters.class) + .add("incremental", incremental) + .add("parameters", parameters) + .add("reportParameters", reportParameters) + .toString(); + } +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/pipelines/IngestionPipelineDefinitionWorkdayReportParametersQueryKeyValue.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/pipelines/IngestionPipelineDefinitionWorkdayReportParametersQueryKeyValue.java new file mode 100755 index 000000000..36272c611 --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/pipelines/IngestionPipelineDefinitionWorkdayReportParametersQueryKeyValue.java @@ -0,0 +1,64 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. + +package com.databricks.sdk.service.pipelines; + +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 IngestionPipelineDefinitionWorkdayReportParametersQueryKeyValue { + /** Key for the report parameter, can be a column name or other metadata */ + @JsonProperty("key") + private String key; + + /** + * Value for the report parameter. Possible values it can take are these sql functions: 1. + * coalesce(current_offset(), date("YYYY-MM-DD")) -> if current_offset() is null, then the passed + * date, else current_offset() 2. current_date() 3. date_sub(current_date(), x) -> subtract x + * (some non-negative integer) days from current date + */ + @JsonProperty("value") + private String value; + + public IngestionPipelineDefinitionWorkdayReportParametersQueryKeyValue setKey(String key) { + this.key = key; + return this; + } + + public String getKey() { + return key; + } + + public IngestionPipelineDefinitionWorkdayReportParametersQueryKeyValue setValue(String value) { + this.value = value; + return this; + } + + public String getValue() { + return value; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + IngestionPipelineDefinitionWorkdayReportParametersQueryKeyValue that = + (IngestionPipelineDefinitionWorkdayReportParametersQueryKeyValue) o; + return Objects.equals(key, that.key) && Objects.equals(value, that.value); + } + + @Override + public int hashCode() { + return Objects.hash(key, value); + } + + @Override + public String toString() { + return new ToStringer(IngestionPipelineDefinitionWorkdayReportParametersQueryKeyValue.class) + .add("key", key) + .add("value", value) + .toString(); + } +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/pipelines/TableSpecificConfig.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/pipelines/TableSpecificConfig.java index 9d9d711e0..7626f06c3 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/pipelines/TableSpecificConfig.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/pipelines/TableSpecificConfig.java @@ -55,6 +55,10 @@ public class TableSpecificConfig { @JsonProperty("sequence_by") private Collection sequenceBy; + /** (Optional) Additional custom parameters for Workday Report */ + @JsonProperty("workday_report_parameters") + private IngestionPipelineDefinitionWorkdayReportParameters workdayReportParameters; + public TableSpecificConfig setExcludeColumns(Collection excludeColumns) { this.excludeColumns = excludeColumns; return this; @@ -122,6 +126,16 @@ public Collection getSequenceBy() { return sequenceBy; } + public TableSpecificConfig setWorkdayReportParameters( + IngestionPipelineDefinitionWorkdayReportParameters workdayReportParameters) { + this.workdayReportParameters = workdayReportParameters; + return this; + } + + public IngestionPipelineDefinitionWorkdayReportParameters getWorkdayReportParameters() { + return workdayReportParameters; + } + @Override public boolean equals(Object o) { if (this == o) return true; @@ -133,7 +147,8 @@ public boolean equals(Object o) { && Objects.equals(queryBasedConnectorConfig, that.queryBasedConnectorConfig) && Objects.equals(salesforceIncludeFormulaFields, that.salesforceIncludeFormulaFields) && Objects.equals(scdType, that.scdType) - && Objects.equals(sequenceBy, that.sequenceBy); + && Objects.equals(sequenceBy, that.sequenceBy) + && Objects.equals(workdayReportParameters, that.workdayReportParameters); } @Override @@ -145,7 +160,8 @@ public int hashCode() { queryBasedConnectorConfig, salesforceIncludeFormulaFields, scdType, - sequenceBy); + sequenceBy, + workdayReportParameters); } @Override @@ -158,6 +174,7 @@ public String toString() { .add("salesforceIncludeFormulaFields", salesforceIncludeFormulaFields) .add("scdType", scdType) .add("sequenceBy", sequenceBy) + .add("workdayReportParameters", workdayReportParameters) .toString(); } } 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 15d363eb0..a267952fe 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 @@ -14,19 +14,17 @@ * original schema, or provide alternate exposed names. */ @Generated -public class SharesAPI { +public class SharesAPI extends SharesExtAPI { private static final Logger LOG = LoggerFactory.getLogger(SharesAPI.class); - private final SharesService impl; - /** Regular-use constructor */ public SharesAPI(ApiClient apiClient) { - impl = new SharesImpl(apiClient); + super(apiClient); } /** Constructor for mocks */ public SharesAPI(SharesService mock) { - impl = mock; + super(mock); } /** @@ -58,23 +56,19 @@ public ShareInfo get(GetShareRequest request) { return impl.get(request); } - public Iterable list(String name) { - return list(new ListSharesRequest().setName(name)); - } - /** * Gets an array of data object shares from the metastore. The caller must be a metastore admin or * the owner of the share. There is no guarantee of a specific ordering of the elements in the * array. */ - public Iterable list(ListSharesRequest request) { + public Iterable listShares(SharesListRequest request) { if (request.getMaxResults() == null) { request.setMaxResults(0L); } return new Paginator<>( request, - impl::list, + impl::listShares, ListSharesResponse::getShares, response -> { String token = response.getNextPageToken(); 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 new file mode 100644 index 000000000..0c62ff999 --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/sharing/SharesExtAPI.java @@ -0,0 +1,44 @@ +package com.databricks.sdk.service.sharing; + +import com.databricks.sdk.core.ApiClient; +import com.databricks.sdk.support.Paginator; + +class SharesExtAPI { + + final SharesService impl; + + public SharesExtAPI(ApiClient apiClient) { + impl = new SharesImpl(apiClient); + } + + public SharesExtAPI(SharesService mock) { + impl = mock; + } + + public Iterable list(String name) { + return list(new ListSharesRequest().setName(name)); + } + + /** + * Gets an array of data object shares from the metastore. The caller must be a metastore admin or + * the owner of the share. There is no guarantee of a specific ordering of the elements in the + * array. + */ + public Iterable list(ListSharesRequest request) { + + if (request.getMaxResults() == null) { + request.setMaxResults(0L); + } + return new Paginator<>( + request, + impl::list, + ListSharesResponse::getShares, + response -> { + String token = response.getNextPageToken(); + if (token == null || token.isEmpty()) { + return null; + } + return request.setPageToken(token); + }); + } +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/sharing/SharesExtImpl.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/sharing/SharesExtImpl.java new file mode 100644 index 000000000..a1ab2be87 --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/sharing/SharesExtImpl.java @@ -0,0 +1,27 @@ +package com.databricks.sdk.service.sharing; + +import com.databricks.sdk.core.ApiClient; +import com.databricks.sdk.core.DatabricksException; +import com.databricks.sdk.core.http.Request; +import java.io.IOException; + +class SharesExtImpl implements SharesExtService { + final ApiClient apiClient; + + public SharesExtImpl(ApiClient apiClient) { + this.apiClient = apiClient; + } + + @Override + public ListSharesResponse list(ListSharesRequest request) { + String path = "/api/2.1/unity-catalog/shares"; + try { + Request req = new Request("GET", path); + ApiClient.setQuery(req, request); + req.withHeader("Accept", "application/json"); + return apiClient.execute(req, ListSharesResponse.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/sharing/SharesExtService.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/sharing/SharesExtService.java new file mode 100644 index 000000000..5ed431efe --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/sharing/SharesExtService.java @@ -0,0 +1,10 @@ +package com.databricks.sdk.service.sharing; + +interface SharesExtService { + /** + * Gets an array of data object shares from the metastore. The caller must be a metastore admin or + * the owner of the share. There is no guarantee of a specific ordering of the elements in the + * array. + */ + ListSharesResponse list(ListSharesRequest listSharesRequest); +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/sharing/SharesImpl.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/sharing/SharesImpl.java index 716fe7628..6bc4812cf 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/sharing/SharesImpl.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/sharing/SharesImpl.java @@ -9,11 +9,9 @@ /** Package-local implementation of Shares */ @Generated -class SharesImpl implements SharesService { - private final ApiClient apiClient; - +class SharesImpl extends SharesExtImpl implements SharesService { public SharesImpl(ApiClient apiClient) { - this.apiClient = apiClient; + super(apiClient); } @Override @@ -56,7 +54,7 @@ public ShareInfo get(GetShareRequest request) { } @Override - public ListSharesResponse list(ListSharesRequest request) { + public ListSharesResponse listShares(SharesListRequest request) { String path = "/api/2.1/unity-catalog/shares"; try { Request req = new Request("GET", path); diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/sharing/SharesListRequest.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/sharing/SharesListRequest.java new file mode 100755 index 000000000..b3d076c0c --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/sharing/SharesListRequest.java @@ -0,0 +1,69 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. + +package com.databricks.sdk.service.sharing; + +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 SharesListRequest { + /** + * Maximum number of shares to return. - when set to 0, the page length is set to a server + * configured value (recommended); - when set to a value greater than 0, the page length is the + * minimum of this value and a server configured value; - when set to a value less than 0, an + * invalid parameter error is returned; - If not set, all valid shares are returned (not + * recommended). - Note: The number of returned shares might be less than the specified + * max_results size, even zero. The only definitive indication that no further shares can be + * fetched is when the next_page_token is unset from the response. + */ + @JsonIgnore + @QueryParam("max_results") + private Long maxResults; + + /** Opaque pagination token to go to next page based on previous query. */ + @JsonIgnore + @QueryParam("page_token") + private String pageToken; + + public SharesListRequest setMaxResults(Long maxResults) { + this.maxResults = maxResults; + return this; + } + + public Long getMaxResults() { + return maxResults; + } + + public SharesListRequest setPageToken(String pageToken) { + this.pageToken = pageToken; + return this; + } + + public String getPageToken() { + return pageToken; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + SharesListRequest that = (SharesListRequest) o; + return Objects.equals(maxResults, that.maxResults) && Objects.equals(pageToken, that.pageToken); + } + + @Override + public int hashCode() { + return Objects.hash(maxResults, pageToken); + } + + @Override + public String toString() { + return new ToStringer(SharesListRequest.class) + .add("maxResults", maxResults) + .add("pageToken", pageToken) + .toString(); + } +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/sharing/SharesService.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/sharing/SharesService.java index 7efbc554c..dc111d87d 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/sharing/SharesService.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/sharing/SharesService.java @@ -14,7 +14,7 @@ *

Evolving: this interface is under development. Method signatures may change. */ @Generated -public interface SharesService { +public interface SharesService extends SharesExtService { /** * Creates a new share for data objects. Data objects can be added after creation with **update**. * The caller must be a metastore admin or have the **CREATE_SHARE** privilege on the metastore. @@ -35,7 +35,7 @@ public interface SharesService { * the owner of the share. There is no guarantee of a specific ordering of the elements in the * array. */ - ListSharesResponse list(ListSharesRequest listSharesRequest); + ListSharesResponse listShares(SharesListRequest sharesListRequest); /** * Gets the permissions for a data share from the metastore. The caller must be a metastore admin diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/sharing/TableInternalAttributesSharedTableType.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/sharing/TableInternalAttributesSharedTableType.java index 07f042522..ef6824f6c 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/sharing/TableInternalAttributesSharedTableType.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/sharing/TableInternalAttributesSharedTableType.java @@ -12,6 +12,7 @@ public enum TableInternalAttributesSharedTableType { FOREIGN_ICEBERG_TABLE, FOREIGN_TABLE, MATERIALIZED_VIEW, + METRIC_VIEW, STREAMING_TABLE, VIEW, } diff --git a/scripts/cleanup-services.sh b/scripts/cleanup-services.sh new file mode 100755 index 000000000..647a8c484 --- /dev/null +++ b/scripts/cleanup-services.sh @@ -0,0 +1,106 @@ +#!/bin/bash + +# Script to clean up generated service directories while preserving specific files +# This script is configured for the Databricks SDK Java project + +set -e + +# Configuration +SERVICE_DIR="databricks-sdk-java/src/main/java/com/databricks/sdk/service" + +# Files/directories to exclude from deletion (relative to service directory) +# Add specific files or directories that should be preserved during cleanup +EXCLUDES=( + "iam" + "sharing/SharesExtService.java" + "sharing/SharesExtImpl.java" + "sharing/SharesExtAPI.java" +) + +echo "🧹 Cleaning service directory: $SERVICE_DIR" +echo "📋 Exclusions: ${EXCLUDES[*]}" + +# Check if service directory exists +if [[ ! -d "$SERVICE_DIR" ]]; then + echo "❌ Service directory not found: $SERVICE_DIR" + exit 1 +fi + +# Function to check if a file/directory should be excluded +should_exclude() { + local item="$1" + local relative_path="${item#$SERVICE_DIR/}" + # Remove trailing slash if present + relative_path="${relative_path%/}" + + for exclude_pattern in "${EXCLUDES[@]}"; do + if [[ -n "$exclude_pattern" ]]; then + # Handle directory exclusions (exact match) + if [[ "$relative_path" == "$exclude_pattern" ]]; then + return 0 # Should exclude + fi + # Handle file exclusions (check if this item contains the excluded file) + if [[ "$exclude_pattern" == *"/"* ]]; then + local exclude_dir="${exclude_pattern%%/*}" + if [[ "$relative_path" == "$exclude_dir" ]]; then + # This is a directory that contains excluded files, handle specially + return 2 # Special case: partial exclusion + fi + fi + fi + done + return 1 # Should not exclude +} + +# Function to selectively clean a directory with file-level exclusions +selective_clean_directory() { + local dir="$1" + local dir_name="${dir#$SERVICE_DIR/}" + dir_name="${dir_name%/}" + + echo "🔍 Selectively cleaning directory: $dir_name" + + # Find all files in this directory + while IFS= read -r -d '' file; do + local file_relative="${file#$SERVICE_DIR/}" + local should_keep=false + + # Check if this file should be excluded + for exclude_pattern in "${EXCLUDES[@]}"; do + if [[ "$file_relative" == "$exclude_pattern" ]]; then + should_keep=true + break + fi + done + + if $should_keep; then + echo "⏭️ Keeping: $file_relative" + else + echo "🗑️ Deleting: $file_relative" + rm -f "$file" + fi + done < <(find "$dir" -type f -print0) + + # Remove empty subdirectories + find "$dir" -type d -empty -delete 2>/dev/null || true +} + +# Find all items in the service directory (1 level deep) +while IFS= read -r -d '' item; do + exclusion_result=$(should_exclude "$item"; echo $?) + + case $exclusion_result in + 0) # Full exclusion + echo "⏭️ Skipping: ${item#$SERVICE_DIR/}" + ;; + 2) # Partial exclusion (directory with some excluded files) + selective_clean_directory "$item" + ;; + *) # No exclusion - delete entirely + echo "🗑️ Deleting: ${item#$SERVICE_DIR/}" + rm -rf "$item" + ;; + esac +done < <(find "$SERVICE_DIR" -mindepth 1 -maxdepth 1 -type d -print0) + +echo "✅ Service directory cleanup completed"