diff --git a/.codegen.json b/.codegen.json
index f37be8c8c..82c9406ab 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": ["find databricks-sdk-java/src/main/java/com/databricks/sdk/service -mindepth 1 -maxdepth 1 -type d ! -name 'iam' -exec rm -rf {} +"],
"post_generate": ["mvn spotless:apply","mvn --errors clean test"]
}
}
diff --git a/.codegen/_openapi_sha b/.codegen/_openapi_sha
index 9834ec958..347bf5ee5 100644
--- a/.codegen/_openapi_sha
+++ b/.codegen/_openapi_sha
@@ -1 +1 @@
-3ae6f76120079424c8654263eafbc30ec0551854
\ No newline at end of file
+universe:/home/parth.bansal/universetwo
\ No newline at end of file
diff --git a/.gitattributes b/.gitattributes
index c4d456976..8c75fd581 100755
--- a/.gitattributes
+++ b/.gitattributes
@@ -157,6 +157,7 @@ databricks-sdk-java/src/main/java/com/databricks/sdk/service/billing/UsageDashbo
databricks-sdk-java/src/main/java/com/databricks/sdk/service/billing/WrappedCreateLogDeliveryConfiguration.java linguist-generated=true
databricks-sdk-java/src/main/java/com/databricks/sdk/service/billing/WrappedLogDeliveryConfiguration.java linguist-generated=true
databricks-sdk-java/src/main/java/com/databricks/sdk/service/billing/WrappedLogDeliveryConfigurations.java linguist-generated=true
+databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/AccessRequestDestinations.java linguist-generated=true
databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/AccountMetastoreAssignmentsAPI.java linguist-generated=true
databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/AccountMetastoreAssignmentsImpl.java linguist-generated=true
databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/AccountMetastoreAssignmentsService.java linguist-generated=true
@@ -193,6 +194,8 @@ databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/AzureManage
databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/AzureQueueStorage.java linguist-generated=true
databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/AzureServicePrincipal.java linguist-generated=true
databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/AzureUserDelegationSas.java linguist-generated=true
+databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/BatchCreateAccessRequestsRequest.java linguist-generated=true
+databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/BatchCreateAccessRequestsResponse.java linguist-generated=true
databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/CancelRefreshRequest.java linguist-generated=true
databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/CatalogInfo.java linguist-generated=true
databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/CatalogIsolationMode.java linguist-generated=true
@@ -213,6 +216,8 @@ databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/Connections
databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ConnectionsImpl.java linguist-generated=true
databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ConnectionsService.java linguist-generated=true
databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ContinuousUpdateStatus.java linguist-generated=true
+databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/CreateAccessRequest.java linguist-generated=true
+databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/CreateAccessRequestResponse.java linguist-generated=true
databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/CreateCatalog.java linguist-generated=true
databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/CreateConnection.java linguist-generated=true
databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/CreateCredentialRequest.java linguist-generated=true
@@ -278,6 +283,7 @@ databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/DeltaRuntim
databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/DeltaSharingScopeEnum.java linguist-generated=true
databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/Dependency.java linguist-generated=true
databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/DependencyList.java linguist-generated=true
+databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/DestinationType.java linguist-generated=true
databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/DisableRequest.java linguist-generated=true
databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/EffectivePermissionsList.java linguist-generated=true
databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/EffectivePredictiveOptimizationFlag.java linguist-generated=true
@@ -287,7 +293,6 @@ databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/EffectivePr
databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/EnablePredictiveOptimization.java linguist-generated=true
databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/EnableRequest.java linguist-generated=true
databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/EncryptionDetails.java linguist-generated=true
-databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/EnvironmentSettings.java linguist-generated=true
databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ExistsRequest.java linguist-generated=true
databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ExternalLineageAPI.java linguist-generated=true
databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ExternalLineageExternalMetadata.java linguist-generated=true
@@ -338,6 +343,7 @@ databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/GenerateTem
databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/GenerateTemporaryServiceCredentialRequest.java linguist-generated=true
databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/GenerateTemporaryTableCredentialRequest.java linguist-generated=true
databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/GenerateTemporaryTableCredentialResponse.java linguist-generated=true
+databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/GetAccessRequestDestinationsRequest.java linguist-generated=true
databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/GetAccountMetastoreAssignmentRequest.java linguist-generated=true
databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/GetAccountMetastoreRequest.java linguist-generated=true
databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/GetAccountStorageCredentialRequest.java linguist-generated=true
@@ -445,6 +451,7 @@ databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/MonitorRefr
databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/MonitorSnapshot.java linguist-generated=true
databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/MonitorTimeSeries.java linguist-generated=true
databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/NamedTableConstraint.java linguist-generated=true
+databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/NotificationDestination.java linguist-generated=true
databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/OnlineTable.java linguist-generated=true
databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/OnlineTableSpec.java linguist-generated=true
databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/OnlineTableSpecContinuousSchedulingPolicy.java linguist-generated=true
@@ -466,6 +473,8 @@ databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/PoliciesSer
databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/PolicyInfo.java linguist-generated=true
databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/PolicyType.java linguist-generated=true
databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/PrimaryKeyConstraint.java linguist-generated=true
+databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/Principal.java linguist-generated=true
+databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/PrincipalType.java linguist-generated=true
databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/Privilege.java linguist-generated=true
databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/PrivilegeAssignment.java linguist-generated=true
databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ProvisioningInfo.java linguist-generated=true
@@ -487,17 +496,23 @@ databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/RegisteredM
databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ResourceQuotasAPI.java linguist-generated=true
databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ResourceQuotasImpl.java linguist-generated=true
databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ResourceQuotasService.java linguist-generated=true
+databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/RfaAPI.java linguist-generated=true
+databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/RfaImpl.java linguist-generated=true
+databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/RfaService.java linguist-generated=true
databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/RowFilterOptions.java linguist-generated=true
databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/RunRefreshRequest.java linguist-generated=true
databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/SchemaInfo.java linguist-generated=true
databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/SchemasAPI.java linguist-generated=true
databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/SchemasImpl.java linguist-generated=true
databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/SchemasService.java linguist-generated=true
+databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/Securable.java linguist-generated=true
databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/SecurableKind.java linguist-generated=true
databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/SecurableKindManifest.java linguist-generated=true
+databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/SecurablePermissions.java linguist-generated=true
databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/SecurableType.java linguist-generated=true
databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/SetArtifactAllowlist.java linguist-generated=true
databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/SetRegisteredModelAliasRequest.java linguist-generated=true
+databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/SpecialDestination.java linguist-generated=true
databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/SseEncryptionDetails.java linguist-generated=true
databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/SseEncryptionDetailsAlgorithm.java linguist-generated=true
databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/StorageCredentialInfo.java linguist-generated=true
@@ -533,6 +548,7 @@ databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/TemporaryTa
databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/TemporaryTableCredentialsService.java linguist-generated=true
databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/TriggeredUpdateStatus.java linguist-generated=true
databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/UnassignRequest.java linguist-generated=true
+databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/UpdateAccessRequestDestinationsRequest.java linguist-generated=true
databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/UpdateCatalog.java linguist-generated=true
databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/UpdateCatalogWorkspaceBindingsResponse.java linguist-generated=true
databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/UpdateConnection.java linguist-generated=true
@@ -1037,20 +1053,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
@@ -1067,7 +1092,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
@@ -1079,11 +1106,13 @@ 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/ListGroupsRequest.java linguist-generated=true
databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/ListGroupsResponse.java linguist-generated=true
@@ -1098,7 +1127,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
@@ -1107,8 +1135,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
@@ -1130,18 +1164,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
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 9701ceb5c..191939a74 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.oauth2.AccountFederationPolicyAPI;
@@ -78,37 +84,71 @@ public class AccountClient {
private final DatabricksConfig config;
private AccountAccessControlAPI accessControlAPI;
+
private BillableUsageAPI billableUsageAPI;
+
private BudgetPolicyAPI budgetPolicyAPI;
+
private BudgetsAPI budgetsAPI;
+
private CredentialsAPI credentialsAPI;
+
private CustomAppIntegrationAPI customAppIntegrationAPI;
+
private EncryptionKeysAPI encryptionKeysAPI;
+
private AccountFederationPolicyAPI federationPolicyAPI;
- private AccountGroupsAPI groupsAPI;
+
+ private AccountGroupsV2API groupsV2API;
+
private AccountIpAccessListsAPI ipAccessListsAPI;
+
private LogDeliveryAPI logDeliveryAPI;
+
private AccountMetastoreAssignmentsAPI metastoreAssignmentsAPI;
+
private AccountMetastoresAPI metastoresAPI;
+
private NetworkConnectivityAPI networkConnectivityAPI;
+
private NetworkPoliciesAPI networkPoliciesAPI;
+
private NetworksAPI networksAPI;
+
private OAuthPublishedAppsAPI oAuthPublishedAppsAPI;
+
private PrivateAccessAPI privateAccessAPI;
+
private PublishedAppIntegrationAPI publishedAppIntegrationAPI;
+
private ServicePrincipalFederationPolicyAPI servicePrincipalFederationPolicyAPI;
+
private ServicePrincipalSecretsAPI servicePrincipalSecretsAPI;
- private AccountServicePrincipalsAPI servicePrincipalsAPI;
+
+ private AccountServicePrincipalsV2API servicePrincipalsV2API;
+
private AccountSettingsAPI settingsAPI;
+
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());
}
@@ -118,36 +158,70 @@ public AccountClient(DatabricksConfig config) {
apiClient = new ApiClient(config);
accessControlAPI = new AccountAccessControlAPI(apiClient);
+
billableUsageAPI = new BillableUsageAPI(apiClient);
+
budgetPolicyAPI = new BudgetPolicyAPI(apiClient);
+
budgetsAPI = new BudgetsAPI(apiClient);
+
credentialsAPI = new CredentialsAPI(apiClient);
+
customAppIntegrationAPI = new CustomAppIntegrationAPI(apiClient);
+
encryptionKeysAPI = new EncryptionKeysAPI(apiClient);
+
federationPolicyAPI = new AccountFederationPolicyAPI(apiClient);
- groupsAPI = new AccountGroupsAPI(apiClient);
+
+ groupsV2API = new AccountGroupsV2API(apiClient);
+
ipAccessListsAPI = new AccountIpAccessListsAPI(apiClient);
+
logDeliveryAPI = new LogDeliveryAPI(apiClient);
+
metastoreAssignmentsAPI = new AccountMetastoreAssignmentsAPI(apiClient);
+
metastoresAPI = new AccountMetastoresAPI(apiClient);
+
networkConnectivityAPI = new NetworkConnectivityAPI(apiClient);
+
networkPoliciesAPI = new NetworkPoliciesAPI(apiClient);
+
networksAPI = new NetworksAPI(apiClient);
+
oAuthPublishedAppsAPI = new OAuthPublishedAppsAPI(apiClient);
+
privateAccessAPI = new PrivateAccessAPI(apiClient);
+
publishedAppIntegrationAPI = new PublishedAppIntegrationAPI(apiClient);
+
servicePrincipalFederationPolicyAPI = new ServicePrincipalFederationPolicyAPI(apiClient);
+
servicePrincipalSecretsAPI = new ServicePrincipalSecretsAPI(apiClient);
- servicePrincipalsAPI = new AccountServicePrincipalsAPI(apiClient);
+
+ servicePrincipalsV2API = new AccountServicePrincipalsV2API(apiClient);
+
settingsAPI = new AccountSettingsAPI(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 */
@@ -283,8 +357,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;
}
/**
@@ -524,8 +598,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. */
@@ -569,8 +643,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. */
@@ -611,6 +685,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));
@@ -701,14 +812,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;
}
@@ -856,16 +967,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;
}
@@ -916,14 +1028,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;
}
@@ -974,6 +1086,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 51628d922..99d61f97a 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
@@ -44,6 +44,8 @@
import com.databricks.sdk.service.catalog.RegisteredModelsService;
import com.databricks.sdk.service.catalog.ResourceQuotasAPI;
import com.databricks.sdk.service.catalog.ResourceQuotasService;
+import com.databricks.sdk.service.catalog.RfaAPI;
+import com.databricks.sdk.service.catalog.RfaService;
import com.databricks.sdk.service.catalog.SchemasAPI;
import com.databricks.sdk.service.catalog.SchemasService;
import com.databricks.sdk.service.catalog.StorageCredentialsAPI;
@@ -108,14 +110,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.jobs.JobsAPI;
import com.databricks.sdk.service.jobs.JobsService;
import com.databricks.sdk.service.jobs.PolicyComplianceForJobsAPI;
@@ -238,118 +246,235 @@ public class WorkspaceClient {
private final DatabricksConfig config;
private AccessControlAPI accessControlAPI;
+
private AccountAccessControlProxyAPI accountAccessControlProxyAPI;
+
private AgentBricksAPI agentBricksAPI;
+
private AlertsAPI alertsAPI;
+
private AlertsLegacyAPI alertsLegacyAPI;
+
private AlertsV2API alertsV2API;
+
private AppsAPI appsAPI;
+
private ArtifactAllowlistsAPI artifactAllowlistsAPI;
+
private CatalogsAPI catalogsAPI;
+
private CleanRoomAssetRevisionsAPI cleanRoomAssetRevisionsAPI;
+
private CleanRoomAssetsAPI cleanRoomAssetsAPI;
+
private CleanRoomAutoApprovalRulesAPI cleanRoomAutoApprovalRulesAPI;
+
private CleanRoomTaskRunsAPI cleanRoomTaskRunsAPI;
+
private CleanRoomsAPI cleanRoomsAPI;
+
private ClusterPoliciesAPI clusterPoliciesAPI;
+
private ClustersExt clustersAPI;
+
private CommandExecutionAPI commandExecutionAPI;
+
private ConnectionsAPI connectionsAPI;
+
private ConsumerFulfillmentsAPI consumerFulfillmentsAPI;
+
private ConsumerInstallationsAPI consumerInstallationsAPI;
+
private ConsumerListingsAPI consumerListingsAPI;
+
private ConsumerPersonalizationRequestsAPI consumerPersonalizationRequestsAPI;
+
private ConsumerProvidersAPI consumerProvidersAPI;
+
private CredentialsAPI credentialsAPI;
+
private CredentialsManagerAPI credentialsManagerAPI;
+
private CurrentUserAPI currentUserAPI;
+
private DashboardWidgetsAPI dashboardWidgetsAPI;
+
private DashboardsAPI dashboardsAPI;
+
private DataSourcesAPI dataSourcesAPI;
+
private DatabaseAPI databaseAPI;
+
private DbfsExt dbfsAPI;
+
private DbsqlPermissionsAPI dbsqlPermissionsAPI;
+
private ExperimentsAPI experimentsAPI;
+
private ExternalLineageAPI externalLineageAPI;
+
private ExternalLocationsAPI externalLocationsAPI;
+
private ExternalMetadataAPI externalMetadataAPI;
+
private FeatureStoreAPI featureStoreAPI;
+
private FilesAPI filesAPI;
+
private ForecastingAPI forecastingAPI;
+
private FunctionsAPI functionsAPI;
+
private GenieAPI genieAPI;
+
private GitCredentialsAPI gitCredentialsAPI;
+
private GlobalInitScriptsAPI globalInitScriptsAPI;
+
private GrantsAPI grantsAPI;
- private GroupsAPI groupsAPI;
+
+ private GroupsV2API groupsV2API;
+
private InstancePoolsAPI instancePoolsAPI;
+
private InstanceProfilesAPI instanceProfilesAPI;
+
private IpAccessListsAPI ipAccessListsAPI;
+
private JobsAPI jobsAPI;
+
private LakeviewAPI lakeviewAPI;
+
private LakeviewEmbeddedAPI lakeviewEmbeddedAPI;
+
private LibrariesAPI librariesAPI;
+
private MaterializedFeaturesAPI materializedFeaturesAPI;
+
private MetastoresAPI metastoresAPI;
+
private ModelRegistryAPI modelRegistryAPI;
+
private ModelVersionsAPI modelVersionsAPI;
+
private NotificationDestinationsAPI notificationDestinationsAPI;
+
private OnlineTablesAPI onlineTablesAPI;
+
private PermissionMigrationAPI permissionMigrationAPI;
+
private PermissionsAPI permissionsAPI;
+
private PipelinesAPI pipelinesAPI;
+
private PoliciesAPI policiesAPI;
+
private PolicyComplianceForClustersAPI policyComplianceForClustersAPI;
+
private PolicyComplianceForJobsAPI policyComplianceForJobsAPI;
+
private PolicyFamiliesAPI policyFamiliesAPI;
+
private ProviderExchangeFiltersAPI providerExchangeFiltersAPI;
+
private ProviderExchangesAPI providerExchangesAPI;
+
private ProviderFilesAPI providerFilesAPI;
+
private ProviderListingsAPI providerListingsAPI;
+
private ProviderPersonalizationRequestsAPI providerPersonalizationRequestsAPI;
+
private ProviderProviderAnalyticsDashboardsAPI providerProviderAnalyticsDashboardsAPI;
+
private ProviderProvidersAPI providerProvidersAPI;
+
private ProvidersAPI providersAPI;
+
private QualityMonitorV2API qualityMonitorV2API;
+
private QualityMonitorsAPI qualityMonitorsAPI;
+
private QueriesAPI queriesAPI;
+
private QueriesLegacyAPI queriesLegacyAPI;
+
private QueryHistoryAPI queryHistoryAPI;
+
private QueryVisualizationsAPI queryVisualizationsAPI;
+
private QueryVisualizationsLegacyAPI queryVisualizationsLegacyAPI;
+
private RecipientActivationAPI recipientActivationAPI;
+
private RecipientFederationPoliciesAPI recipientFederationPoliciesAPI;
+
private RecipientsAPI recipientsAPI;
+
private RedashConfigAPI redashConfigAPI;
+
private RegisteredModelsAPI registeredModelsAPI;
+
private ReposAPI reposAPI;
+
private ResourceQuotasAPI resourceQuotasAPI;
+
+ private RfaAPI rfaAPI;
+
private SchemasAPI schemasAPI;
+
private SecretsExt secretsAPI;
+
private ServicePrincipalSecretsProxyAPI servicePrincipalSecretsProxyAPI;
- private ServicePrincipalsAPI servicePrincipalsAPI;
+
+ private ServicePrincipalsV2API servicePrincipalsV2API;
+
private ServingEndpointsAPI servingEndpointsAPI;
+
private ServingEndpointsDataPlaneAPI servingEndpointsDataPlaneAPI;
+
private SettingsAPI settingsAPI;
+
private SharesAPI sharesAPI;
+
private StatementExecutionAPI statementExecutionAPI;
+
private StorageCredentialsAPI storageCredentialsAPI;
+
private SystemSchemasAPI systemSchemasAPI;
+
private TableConstraintsAPI tableConstraintsAPI;
+
private TablesAPI tablesAPI;
+
private TemporaryPathCredentialsAPI temporaryPathCredentialsAPI;
+
private TemporaryTableCredentialsAPI temporaryTableCredentialsAPI;
+
private TokenManagementAPI tokenManagementAPI;
+
private TokensAPI tokensAPI;
- private UsersAPI usersAPI;
+
+ private UsersV2API usersV2API;
+
private VectorSearchEndpointsAPI vectorSearchEndpointsAPI;
+
private VectorSearchIndexesAPI vectorSearchIndexesAPI;
+
private VolumesAPI volumesAPI;
+
private WarehousesAPI warehousesAPI;
+
private WorkspaceAPI workspaceAPI;
+
private WorkspaceBindingsAPI workspaceBindingsAPI;
+
private WorkspaceConfAPI workspaceConfAPI;
+ private GroupsAPI groupsAPI;
+ private ServicePrincipalsAPI servicePrincipalsAPI;
+ private UsersAPI usersAPI;
+
public WorkspaceClient() {
this(ConfigLoader.getDefault());
}
@@ -358,118 +483,234 @@ public WorkspaceClient(DatabricksConfig config) {
this.config = config;
apiClient = new ApiClient(config);
accessControlAPI = new AccessControlAPI(apiClient);
+
accountAccessControlProxyAPI = new AccountAccessControlProxyAPI(apiClient);
+
agentBricksAPI = new AgentBricksAPI(apiClient);
+
alertsAPI = new AlertsAPI(apiClient);
+
alertsLegacyAPI = new AlertsLegacyAPI(apiClient);
+
alertsV2API = new AlertsV2API(apiClient);
+
appsAPI = new AppsAPI(apiClient);
+
artifactAllowlistsAPI = new ArtifactAllowlistsAPI(apiClient);
+
catalogsAPI = new CatalogsAPI(apiClient);
+
cleanRoomAssetRevisionsAPI = new CleanRoomAssetRevisionsAPI(apiClient);
+
cleanRoomAssetsAPI = new CleanRoomAssetsAPI(apiClient);
+
cleanRoomAutoApprovalRulesAPI = new CleanRoomAutoApprovalRulesAPI(apiClient);
+
cleanRoomTaskRunsAPI = new CleanRoomTaskRunsAPI(apiClient);
+
cleanRoomsAPI = new CleanRoomsAPI(apiClient);
+
clusterPoliciesAPI = new ClusterPoliciesAPI(apiClient);
+
clustersAPI = new ClustersExt(apiClient);
+
commandExecutionAPI = new CommandExecutionAPI(apiClient);
+
connectionsAPI = new ConnectionsAPI(apiClient);
+
consumerFulfillmentsAPI = new ConsumerFulfillmentsAPI(apiClient);
+
consumerInstallationsAPI = new ConsumerInstallationsAPI(apiClient);
+
consumerListingsAPI = new ConsumerListingsAPI(apiClient);
+
consumerPersonalizationRequestsAPI = new ConsumerPersonalizationRequestsAPI(apiClient);
+
consumerProvidersAPI = new ConsumerProvidersAPI(apiClient);
+
credentialsAPI = new CredentialsAPI(apiClient);
+
credentialsManagerAPI = new CredentialsManagerAPI(apiClient);
+
currentUserAPI = new CurrentUserAPI(apiClient);
+
dashboardWidgetsAPI = new DashboardWidgetsAPI(apiClient);
+
dashboardsAPI = new DashboardsAPI(apiClient);
+
dataSourcesAPI = new DataSourcesAPI(apiClient);
+
databaseAPI = new DatabaseAPI(apiClient);
+
dbfsAPI = new DbfsExt(apiClient);
+
dbsqlPermissionsAPI = new DbsqlPermissionsAPI(apiClient);
+
experimentsAPI = new ExperimentsAPI(apiClient);
+
externalLineageAPI = new ExternalLineageAPI(apiClient);
+
externalLocationsAPI = new ExternalLocationsAPI(apiClient);
+
externalMetadataAPI = new ExternalMetadataAPI(apiClient);
+
featureStoreAPI = new FeatureStoreAPI(apiClient);
+
filesAPI = new FilesAPI(apiClient);
+
forecastingAPI = new ForecastingAPI(apiClient);
+
functionsAPI = new FunctionsAPI(apiClient);
+
genieAPI = new GenieAPI(apiClient);
+
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);
+
jobsAPI = new JobsAPI(apiClient);
+
lakeviewAPI = new LakeviewAPI(apiClient);
+
lakeviewEmbeddedAPI = new LakeviewEmbeddedAPI(apiClient);
+
librariesAPI = new LibrariesAPI(apiClient);
+
materializedFeaturesAPI = new MaterializedFeaturesAPI(apiClient);
+
metastoresAPI = new MetastoresAPI(apiClient);
+
modelRegistryAPI = new ModelRegistryAPI(apiClient);
+
modelVersionsAPI = new ModelVersionsAPI(apiClient);
+
notificationDestinationsAPI = new NotificationDestinationsAPI(apiClient);
+
onlineTablesAPI = new OnlineTablesAPI(apiClient);
+
permissionMigrationAPI = new PermissionMigrationAPI(apiClient);
+
permissionsAPI = new PermissionsAPI(apiClient);
+
pipelinesAPI = new PipelinesAPI(apiClient);
+
policiesAPI = new PoliciesAPI(apiClient);
+
policyComplianceForClustersAPI = new PolicyComplianceForClustersAPI(apiClient);
+
policyComplianceForJobsAPI = new PolicyComplianceForJobsAPI(apiClient);
+
policyFamiliesAPI = new PolicyFamiliesAPI(apiClient);
+
providerExchangeFiltersAPI = new ProviderExchangeFiltersAPI(apiClient);
+
providerExchangesAPI = new ProviderExchangesAPI(apiClient);
+
providerFilesAPI = new ProviderFilesAPI(apiClient);
+
providerListingsAPI = new ProviderListingsAPI(apiClient);
+
providerPersonalizationRequestsAPI = new ProviderPersonalizationRequestsAPI(apiClient);
+
providerProviderAnalyticsDashboardsAPI = new ProviderProviderAnalyticsDashboardsAPI(apiClient);
+
providerProvidersAPI = new ProviderProvidersAPI(apiClient);
+
providersAPI = new ProvidersAPI(apiClient);
+
qualityMonitorV2API = new QualityMonitorV2API(apiClient);
+
qualityMonitorsAPI = new QualityMonitorsAPI(apiClient);
+
queriesAPI = new QueriesAPI(apiClient);
+
queriesLegacyAPI = new QueriesLegacyAPI(apiClient);
+
queryHistoryAPI = new QueryHistoryAPI(apiClient);
+
queryVisualizationsAPI = new QueryVisualizationsAPI(apiClient);
+
queryVisualizationsLegacyAPI = new QueryVisualizationsLegacyAPI(apiClient);
+
recipientActivationAPI = new RecipientActivationAPI(apiClient);
+
recipientFederationPoliciesAPI = new RecipientFederationPoliciesAPI(apiClient);
+
recipientsAPI = new RecipientsAPI(apiClient);
+
redashConfigAPI = new RedashConfigAPI(apiClient);
+
registeredModelsAPI = new RegisteredModelsAPI(apiClient);
+
reposAPI = new ReposAPI(apiClient);
+
resourceQuotasAPI = new ResourceQuotasAPI(apiClient);
+
+ rfaAPI = new RfaAPI(apiClient);
+
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);
+
settingsAPI = new SettingsAPI(apiClient);
+
sharesAPI = new SharesAPI(apiClient);
+
statementExecutionAPI = new StatementExecutionAPI(apiClient);
+
storageCredentialsAPI = new StorageCredentialsAPI(apiClient);
+
systemSchemasAPI = new SystemSchemasAPI(apiClient);
+
tableConstraintsAPI = new TableConstraintsAPI(apiClient);
+
tablesAPI = new TablesAPI(apiClient);
+
temporaryPathCredentialsAPI = new TemporaryPathCredentialsAPI(apiClient);
+
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);
+
warehousesAPI = new WarehousesAPI(apiClient);
+
workspaceAPI = new WorkspaceAPI(apiClient);
+
workspaceBindingsAPI = new WorkspaceBindingsAPI(apiClient);
+
workspaceConfAPI = new WorkspaceConfAPI(apiClient);
+
+ groupsAPI = new GroupsAPI(apiClient);
+ servicePrincipalsAPI = new ServicePrincipalsAPI(apiClient);
+ usersAPI = new UsersAPI(apiClient);
}
/** Constructor for mocks */
@@ -977,8 +1218,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;
}
/**
@@ -1532,6 +1773,18 @@ public ResourceQuotasAPI resourceQuotas() {
return resourceQuotasAPI;
}
+ /**
+ * Request for Access enables customers to request access to and manage access request
+ * destinations for Unity Catalog securables.
+ *
+ *
These APIs provide a standardized way to update, get, and request to access request
+ * destinations. Fine-grained authorization ensures that only users with appropriate permissions
+ * can manage access request destinations.
+ */
+ public RfaAPI rfa() {
+ return rfaAPI;
+ }
+
/**
* A schema (also called a database) is the second layer of Unity Catalog’s three-level namespace.
* A schema organizes tables, views and functions. To access (or list) a table or view in a
@@ -1585,8 +1838,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;
}
/**
@@ -1856,8 +2109,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. */
@@ -1940,6 +2193,45 @@ public WorkspaceConfAPI workspaceConf() {
return workspaceConfAPI;
}
+ /**
+ * 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));
@@ -2439,14 +2731,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;
}
@@ -2942,6 +3234,17 @@ public WorkspaceClient withResourceQuotasAPI(ResourceQuotasAPI resourceQuotas) {
return this;
}
+ /** Replace the default RfaService with a custom implementation. */
+ public WorkspaceClient withRfaImpl(RfaService rfa) {
+ return this.withRfaAPI(new RfaAPI(rfa));
+ }
+
+ /** Replace the default RfaAPI with a custom implementation. */
+ public WorkspaceClient withRfaAPI(RfaAPI rfa) {
+ this.rfaAPI = rfa;
+ return this;
+ }
+
/** Replace the default SchemasService with a custom implementation. */
public WorkspaceClient withSchemasImpl(SchemasService schemas) {
return this.withSchemasAPI(new SchemasAPI(schemas));
@@ -2978,14 +3281,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;
}
@@ -3141,14 +3445,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;
}
@@ -3232,6 +3536,39 @@ public WorkspaceClient withWorkspaceConfAPI(WorkspaceConfAPI workspaceConf) {
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/core/DatabricksConfig.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/core/DatabricksConfig.java
index 074e97974..775b52a79 100644
--- a/databricks-sdk-java/src/main/java/com/databricks/sdk/core/DatabricksConfig.java
+++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/core/DatabricksConfig.java
@@ -431,13 +431,17 @@ public DatabricksConfig setAzureUseMsi(boolean azureUseMsi) {
return this;
}
- /** @deprecated Use {@link #getAzureUseMsi()} instead. */
+ /**
+ * @deprecated Use {@link #getAzureUseMsi()} instead.
+ */
@Deprecated()
public boolean getAzureUseMSI() {
return azureUseMsi;
}
- /** @deprecated Use {@link #getAzureUseMsi()} instead. */
+ /**
+ * @deprecated Use {@link #getAzureUseMsi()} instead.
+ */
@Deprecated
public DatabricksConfig setAzureUseMSI(boolean azureUseMsi) {
this.azureUseMsi = azureUseMsi;
diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/AccessRequestDestinations.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/AccessRequestDestinations.java
new file mode 100755
index 000000000..79eca7689
--- /dev/null
+++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/AccessRequestDestinations.java
@@ -0,0 +1,79 @@
+// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT.
+
+package com.databricks.sdk.service.catalog;
+
+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 AccessRequestDestinations {
+ /**
+ * Indicates whether any destinations are hidden from the caller due to a lack of permissions.
+ * This value is true if the caller does not have permission to see all destinations.
+ */
+ @JsonProperty("are_any_destinations_hidden")
+ private Boolean areAnyDestinationsHidden;
+
+ /** The access request destinations for the securable. */
+ @JsonProperty("destinations")
+ private Collection destinations;
+
+ /** The securable for which the access request destinations are being retrieved. */
+ @JsonProperty("securable")
+ private Securable securable;
+
+ public AccessRequestDestinations setAreAnyDestinationsHidden(Boolean areAnyDestinationsHidden) {
+ this.areAnyDestinationsHidden = areAnyDestinationsHidden;
+ return this;
+ }
+
+ public Boolean getAreAnyDestinationsHidden() {
+ return areAnyDestinationsHidden;
+ }
+
+ public AccessRequestDestinations setDestinations(
+ Collection destinations) {
+ this.destinations = destinations;
+ return this;
+ }
+
+ public Collection getDestinations() {
+ return destinations;
+ }
+
+ public AccessRequestDestinations setSecurable(Securable securable) {
+ this.securable = securable;
+ return this;
+ }
+
+ public Securable getSecurable() {
+ return securable;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+ AccessRequestDestinations that = (AccessRequestDestinations) o;
+ return Objects.equals(areAnyDestinationsHidden, that.areAnyDestinationsHidden)
+ && Objects.equals(destinations, that.destinations)
+ && Objects.equals(securable, that.securable);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(areAnyDestinationsHidden, destinations, securable);
+ }
+
+ @Override
+ public String toString() {
+ return new ToStringer(AccessRequestDestinations.class)
+ .add("areAnyDestinationsHidden", areAnyDestinationsHidden)
+ .add("destinations", destinations)
+ .add("securable", securable)
+ .toString();
+ }
+}
diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/BatchCreateAccessRequestsRequest.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/BatchCreateAccessRequestsRequest.java
new file mode 100755
index 000000000..ade945f68
--- /dev/null
+++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/BatchCreateAccessRequestsRequest.java
@@ -0,0 +1,50 @@
+// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT.
+
+package com.databricks.sdk.service.catalog;
+
+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 BatchCreateAccessRequestsRequest {
+ /**
+ * A list of individual access requests, where each request corresponds to a set of permissions
+ * being requested on a list of securables for a specified principal.
+ *
+ * At most 30 requests per API call.
+ */
+ @JsonProperty("requests")
+ private Collection requests;
+
+ public BatchCreateAccessRequestsRequest setRequests(Collection requests) {
+ this.requests = requests;
+ return this;
+ }
+
+ public Collection getRequests() {
+ return requests;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+ BatchCreateAccessRequestsRequest that = (BatchCreateAccessRequestsRequest) o;
+ return Objects.equals(requests, that.requests);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(requests);
+ }
+
+ @Override
+ public String toString() {
+ return new ToStringer(BatchCreateAccessRequestsRequest.class)
+ .add("requests", requests)
+ .toString();
+ }
+}
diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/BatchCreateAccessRequestsResponse.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/BatchCreateAccessRequestsResponse.java
new file mode 100755
index 000000000..5f0d00228
--- /dev/null
+++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/BatchCreateAccessRequestsResponse.java
@@ -0,0 +1,46 @@
+// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT.
+
+package com.databricks.sdk.service.catalog;
+
+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 BatchCreateAccessRequestsResponse {
+ /** The access request destinations for each securable object the principal requested. */
+ @JsonProperty("responses")
+ private Collection responses;
+
+ public BatchCreateAccessRequestsResponse setResponses(
+ Collection responses) {
+ this.responses = responses;
+ return this;
+ }
+
+ public Collection getResponses() {
+ return responses;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+ BatchCreateAccessRequestsResponse that = (BatchCreateAccessRequestsResponse) o;
+ return Objects.equals(responses, that.responses);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(responses);
+ }
+
+ @Override
+ public String toString() {
+ return new ToStringer(BatchCreateAccessRequestsResponse.class)
+ .add("responses", responses)
+ .toString();
+ }
+}
diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ConnectionInfo.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ConnectionInfo.java
index a60688b06..948ca6bb2 100755
--- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ConnectionInfo.java
+++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ConnectionInfo.java
@@ -35,10 +35,6 @@ public class ConnectionInfo {
@JsonProperty("credential_type")
private CredentialType credentialType;
- /** [Create,Update:OPT] Connection environment settings as EnvironmentSettings object. */
- @JsonProperty("environment_settings")
- private EnvironmentSettings environmentSettings;
-
/** Full name of connection. */
@JsonProperty("full_name")
private String fullName;
@@ -141,15 +137,6 @@ public CredentialType getCredentialType() {
return credentialType;
}
- public ConnectionInfo setEnvironmentSettings(EnvironmentSettings environmentSettings) {
- this.environmentSettings = environmentSettings;
- return this;
- }
-
- public EnvironmentSettings getEnvironmentSettings() {
- return environmentSettings;
- }
-
public ConnectionInfo setFullName(String fullName) {
this.fullName = fullName;
return this;
@@ -269,7 +256,6 @@ public boolean equals(Object o) {
&& Objects.equals(createdAt, that.createdAt)
&& Objects.equals(createdBy, that.createdBy)
&& Objects.equals(credentialType, that.credentialType)
- && Objects.equals(environmentSettings, that.environmentSettings)
&& Objects.equals(fullName, that.fullName)
&& Objects.equals(metastoreId, that.metastoreId)
&& Objects.equals(name, that.name)
@@ -293,7 +279,6 @@ public int hashCode() {
createdAt,
createdBy,
credentialType,
- environmentSettings,
fullName,
metastoreId,
name,
@@ -317,7 +302,6 @@ public String toString() {
.add("createdAt", createdAt)
.add("createdBy", createdBy)
.add("credentialType", credentialType)
- .add("environmentSettings", environmentSettings)
.add("fullName", fullName)
.add("metastoreId", metastoreId)
.add("name", name)
diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/CreateAccessRequest.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/CreateAccessRequest.java
new file mode 100755
index 000000000..ad2e25601
--- /dev/null
+++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/CreateAccessRequest.java
@@ -0,0 +1,91 @@
+// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT.
+
+package com.databricks.sdk.service.catalog;
+
+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 CreateAccessRequest {
+ /**
+ * Optional. The principal this request is for. Empty `behalf_of` defaults to the requester's
+ * identity.
+ *
+ * Principals must be unique across the API call.
+ */
+ @JsonProperty("behalf_of")
+ private Principal behalfOf;
+
+ /**
+ * Optional. Comment associated with the request.
+ *
+ *
At most 200 characters, can only contain lowercase/uppercase letters (a-z, A-Z), numbers
+ * (0-9), punctuation, and spaces.
+ */
+ @JsonProperty("comment")
+ private String comment;
+
+ /**
+ * List of securables and their corresponding requested UC privileges.
+ *
+ *
At most 30 securables can be requested for a principal per batched call. Each securable can
+ * only be requested once per principal.
+ */
+ @JsonProperty("securable_permissions")
+ private Collection securablePermissions;
+
+ public CreateAccessRequest setBehalfOf(Principal behalfOf) {
+ this.behalfOf = behalfOf;
+ return this;
+ }
+
+ public Principal getBehalfOf() {
+ return behalfOf;
+ }
+
+ public CreateAccessRequest setComment(String comment) {
+ this.comment = comment;
+ return this;
+ }
+
+ public String getComment() {
+ return comment;
+ }
+
+ public CreateAccessRequest setSecurablePermissions(
+ Collection securablePermissions) {
+ this.securablePermissions = securablePermissions;
+ return this;
+ }
+
+ public Collection getSecurablePermissions() {
+ return securablePermissions;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+ CreateAccessRequest that = (CreateAccessRequest) o;
+ return Objects.equals(behalfOf, that.behalfOf)
+ && Objects.equals(comment, that.comment)
+ && Objects.equals(securablePermissions, that.securablePermissions);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(behalfOf, comment, securablePermissions);
+ }
+
+ @Override
+ public String toString() {
+ return new ToStringer(CreateAccessRequest.class)
+ .add("behalfOf", behalfOf)
+ .add("comment", comment)
+ .add("securablePermissions", securablePermissions)
+ .toString();
+ }
+}
diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/CreateAccessRequestResponse.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/CreateAccessRequestResponse.java
new file mode 100755
index 000000000..ec721c924
--- /dev/null
+++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/CreateAccessRequestResponse.java
@@ -0,0 +1,61 @@
+// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT.
+
+package com.databricks.sdk.service.catalog;
+
+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 CreateAccessRequestResponse {
+ /** The principal the request was made on behalf of. */
+ @JsonProperty("behalf_of")
+ private Principal behalfOf;
+
+ /** The access request destinations for all the securables the principal requested. */
+ @JsonProperty("request_destinations")
+ private Collection requestDestinations;
+
+ public CreateAccessRequestResponse setBehalfOf(Principal behalfOf) {
+ this.behalfOf = behalfOf;
+ return this;
+ }
+
+ public Principal getBehalfOf() {
+ return behalfOf;
+ }
+
+ public CreateAccessRequestResponse setRequestDestinations(
+ Collection requestDestinations) {
+ this.requestDestinations = requestDestinations;
+ return this;
+ }
+
+ public Collection getRequestDestinations() {
+ return requestDestinations;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+ CreateAccessRequestResponse that = (CreateAccessRequestResponse) o;
+ return Objects.equals(behalfOf, that.behalfOf)
+ && Objects.equals(requestDestinations, that.requestDestinations);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(behalfOf, requestDestinations);
+ }
+
+ @Override
+ public String toString() {
+ return new ToStringer(CreateAccessRequestResponse.class)
+ .add("behalfOf", behalfOf)
+ .add("requestDestinations", requestDestinations)
+ .toString();
+ }
+}
diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/CreateConnection.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/CreateConnection.java
index f890b1b6e..3eea7832c 100755
--- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/CreateConnection.java
+++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/CreateConnection.java
@@ -18,10 +18,6 @@ public class CreateConnection {
@JsonProperty("connection_type")
private ConnectionType connectionType;
- /** [Create,Update:OPT] Connection environment settings as EnvironmentSettings object. */
- @JsonProperty("environment_settings")
- private EnvironmentSettings environmentSettings;
-
/** Name of the connection. */
@JsonProperty("name")
private String name;
@@ -56,15 +52,6 @@ public ConnectionType getConnectionType() {
return connectionType;
}
- public CreateConnection setEnvironmentSettings(EnvironmentSettings environmentSettings) {
- this.environmentSettings = environmentSettings;
- return this;
- }
-
- public EnvironmentSettings getEnvironmentSettings() {
- return environmentSettings;
- }
-
public CreateConnection setName(String name) {
this.name = name;
return this;
@@ -108,7 +95,6 @@ public boolean equals(Object o) {
CreateConnection that = (CreateConnection) o;
return Objects.equals(comment, that.comment)
&& Objects.equals(connectionType, that.connectionType)
- && Objects.equals(environmentSettings, that.environmentSettings)
&& Objects.equals(name, that.name)
&& Objects.equals(options, that.options)
&& Objects.equals(properties, that.properties)
@@ -117,8 +103,7 @@ public boolean equals(Object o) {
@Override
public int hashCode() {
- return Objects.hash(
- comment, connectionType, environmentSettings, name, options, properties, readOnly);
+ return Objects.hash(comment, connectionType, name, options, properties, readOnly);
}
@Override
@@ -126,7 +111,6 @@ public String toString() {
return new ToStringer(CreateConnection.class)
.add("comment", comment)
.add("connectionType", connectionType)
- .add("environmentSettings", environmentSettings)
.add("name", name)
.add("options", options)
.add("properties", properties)
diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/DestinationType.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/DestinationType.java
new file mode 100755
index 000000000..b5dc069b9
--- /dev/null
+++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/DestinationType.java
@@ -0,0 +1,14 @@
+// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT.
+
+package com.databricks.sdk.service.catalog;
+
+import com.databricks.sdk.support.Generated;
+
+@Generated
+public enum DestinationType {
+ EMAIL,
+ GENERIC_WEBHOOK,
+ MICROSOFT_TEAMS,
+ SLACK,
+ URL,
+}
diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/EnvironmentSettings.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/EnvironmentSettings.java
deleted file mode 100755
index 1e8e3a92e..000000000
--- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/EnvironmentSettings.java
+++ /dev/null
@@ -1,60 +0,0 @@
-// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT.
-
-package com.databricks.sdk.service.catalog;
-
-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 EnvironmentSettings {
- /** */
- @JsonProperty("environment_version")
- private String environmentVersion;
-
- /** */
- @JsonProperty("java_dependencies")
- private Collection javaDependencies;
-
- public EnvironmentSettings setEnvironmentVersion(String environmentVersion) {
- this.environmentVersion = environmentVersion;
- return this;
- }
-
- public String getEnvironmentVersion() {
- return environmentVersion;
- }
-
- public EnvironmentSettings setJavaDependencies(Collection javaDependencies) {
- this.javaDependencies = javaDependencies;
- return this;
- }
-
- public Collection getJavaDependencies() {
- return javaDependencies;
- }
-
- @Override
- public boolean equals(Object o) {
- if (this == o) return true;
- if (o == null || getClass() != o.getClass()) return false;
- EnvironmentSettings that = (EnvironmentSettings) o;
- return Objects.equals(environmentVersion, that.environmentVersion)
- && Objects.equals(javaDependencies, that.javaDependencies);
- }
-
- @Override
- public int hashCode() {
- return Objects.hash(environmentVersion, javaDependencies);
- }
-
- @Override
- public String toString() {
- return new ToStringer(EnvironmentSettings.class)
- .add("environmentVersion", environmentVersion)
- .add("javaDependencies", javaDependencies)
- .toString();
- }
-}
diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/GetAccessRequestDestinationsRequest.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/GetAccessRequestDestinationsRequest.java
new file mode 100755
index 000000000..31a34b389
--- /dev/null
+++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/GetAccessRequestDestinationsRequest.java
@@ -0,0 +1,57 @@
+// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT.
+
+package com.databricks.sdk.service.catalog;
+
+import com.databricks.sdk.support.Generated;
+import com.databricks.sdk.support.ToStringer;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import java.util.Objects;
+
+@Generated
+public class GetAccessRequestDestinationsRequest {
+ /** The full name of the securable. */
+ @JsonIgnore private String fullName;
+
+ /** The type of the securable. */
+ @JsonIgnore private String securableType;
+
+ public GetAccessRequestDestinationsRequest setFullName(String fullName) {
+ this.fullName = fullName;
+ return this;
+ }
+
+ public String getFullName() {
+ return fullName;
+ }
+
+ public GetAccessRequestDestinationsRequest setSecurableType(String securableType) {
+ this.securableType = securableType;
+ return this;
+ }
+
+ public String getSecurableType() {
+ return securableType;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+ GetAccessRequestDestinationsRequest that = (GetAccessRequestDestinationsRequest) o;
+ return Objects.equals(fullName, that.fullName)
+ && Objects.equals(securableType, that.securableType);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(fullName, securableType);
+ }
+
+ @Override
+ public String toString() {
+ return new ToStringer(GetAccessRequestDestinationsRequest.class)
+ .add("fullName", fullName)
+ .add("securableType", securableType)
+ .toString();
+ }
+}
diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/NotificationDestination.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/NotificationDestination.java
new file mode 100755
index 000000000..573230127
--- /dev/null
+++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/NotificationDestination.java
@@ -0,0 +1,84 @@
+// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT.
+
+package com.databricks.sdk.service.catalog;
+
+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 NotificationDestination {
+ /**
+ * The identifier for the destination. This is the email address for EMAIL destinations, the URL
+ * for URL destinations, or the unique Databricks notification destination ID for all other
+ * external destinations.
+ */
+ @JsonProperty("destination_id")
+ private String destinationId;
+
+ /** The type of the destination. */
+ @JsonProperty("destination_type")
+ private DestinationType destinationType;
+
+ /**
+ * This field is used to denote whether the destination is the email of the owner of the securable
+ * object. The special destination cannot be assigned to a securable and only represents the
+ * default destination of the securable. The securable types that support default special
+ * destinations are: "catalog", "external_location", "connection", "credential", and "metastore".
+ * The **destination_type** of a **special_destination** is always EMAIL.
+ */
+ @JsonProperty("special_destination")
+ private SpecialDestination specialDestination;
+
+ public NotificationDestination setDestinationId(String destinationId) {
+ this.destinationId = destinationId;
+ return this;
+ }
+
+ public String getDestinationId() {
+ return destinationId;
+ }
+
+ public NotificationDestination setDestinationType(DestinationType destinationType) {
+ this.destinationType = destinationType;
+ return this;
+ }
+
+ public DestinationType getDestinationType() {
+ return destinationType;
+ }
+
+ public NotificationDestination setSpecialDestination(SpecialDestination specialDestination) {
+ this.specialDestination = specialDestination;
+ return this;
+ }
+
+ public SpecialDestination getSpecialDestination() {
+ return specialDestination;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+ NotificationDestination that = (NotificationDestination) o;
+ return Objects.equals(destinationId, that.destinationId)
+ && Objects.equals(destinationType, that.destinationType)
+ && Objects.equals(specialDestination, that.specialDestination);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(destinationId, destinationType, specialDestination);
+ }
+
+ @Override
+ public String toString() {
+ return new ToStringer(NotificationDestination.class)
+ .add("destinationId", destinationId)
+ .add("destinationType", destinationType)
+ .add("specialDestination", specialDestination)
+ .toString();
+ }
+}
diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/Principal.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/Principal.java
new file mode 100755
index 000000000..55ed154c7
--- /dev/null
+++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/Principal.java
@@ -0,0 +1,58 @@
+// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT.
+
+package com.databricks.sdk.service.catalog;
+
+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 Principal {
+ /** Databricks user, group or service principal ID. */
+ @JsonProperty("id")
+ private String id;
+
+ /** */
+ @JsonProperty("principal_type")
+ private PrincipalType principalType;
+
+ public Principal setId(String id) {
+ this.id = id;
+ return this;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public Principal setPrincipalType(PrincipalType principalType) {
+ this.principalType = principalType;
+ return this;
+ }
+
+ public PrincipalType getPrincipalType() {
+ return principalType;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+ Principal that = (Principal) o;
+ return Objects.equals(id, that.id) && Objects.equals(principalType, that.principalType);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(id, principalType);
+ }
+
+ @Override
+ public String toString() {
+ return new ToStringer(Principal.class)
+ .add("id", id)
+ .add("principalType", principalType)
+ .toString();
+ }
+}
diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/PrincipalType.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/PrincipalType.java
new file mode 100755
index 000000000..03cdcadca
--- /dev/null
+++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/PrincipalType.java
@@ -0,0 +1,12 @@
+// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT.
+
+package com.databricks.sdk.service.catalog;
+
+import com.databricks.sdk.support.Generated;
+
+@Generated
+public enum PrincipalType {
+ GROUP_PRINCIPAL,
+ SERVICE_PRINCIPAL,
+ USER_PRINCIPAL,
+}
diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/RfaAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/RfaAPI.java
new file mode 100755
index 000000000..a37bc8093
--- /dev/null
+++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/RfaAPI.java
@@ -0,0 +1,88 @@
+// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT.
+package com.databricks.sdk.service.catalog;
+
+import com.databricks.sdk.core.ApiClient;
+import com.databricks.sdk.support.Generated;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * Request for Access enables customers to request access to and manage access request destinations
+ * for Unity Catalog securables.
+ *
+ * These APIs provide a standardized way to update, get, and request to access request
+ * destinations. Fine-grained authorization ensures that only users with appropriate permissions can
+ * manage access request destinations.
+ */
+@Generated
+public class RfaAPI {
+ private static final Logger LOG = LoggerFactory.getLogger(RfaAPI.class);
+
+ private final RfaService impl;
+
+ /** Regular-use constructor */
+ public RfaAPI(ApiClient apiClient) {
+ impl = new RfaImpl(apiClient);
+ }
+
+ /** Constructor for mocks */
+ public RfaAPI(RfaService mock) {
+ impl = mock;
+ }
+
+ /**
+ * Creates access requests for Unity Catalog permissions for a specified principal on a securable
+ * object. This Batch API can take in multiple principals, securable objects, and permissions as
+ * the input and returns the access request destinations for each. Principals must be unique
+ * across the API call.
+ *
+ *
The supported securable types are: "metastore", "catalog", "schema", "table",
+ * "external_location", "connection", "credential", "function", "registered_model", and "volume".
+ */
+ public BatchCreateAccessRequestsResponse batchCreateAccessRequests(
+ BatchCreateAccessRequestsRequest request) {
+ return impl.batchCreateAccessRequests(request);
+ }
+
+ public AccessRequestDestinations getAccessRequestDestinations(
+ String securableType, String fullName) {
+ return getAccessRequestDestinations(
+ new GetAccessRequestDestinationsRequest()
+ .setSecurableType(securableType)
+ .setFullName(fullName));
+ }
+
+ /**
+ * Gets an array of access request destinations for the specified securable. Any caller can see
+ * URL destinations or the destinations on the metastore. Otherwise, only those with **BROWSE**
+ * permissions on the securable can see destinations.
+ *
+ *
The supported securable types are: "metastore", "catalog", "schema", "table",
+ * "external_location", "connection", "credential", "function", "registered_model", and "volume".
+ */
+ public AccessRequestDestinations getAccessRequestDestinations(
+ GetAccessRequestDestinationsRequest request) {
+ return impl.getAccessRequestDestinations(request);
+ }
+
+ /**
+ * Updates the access request destinations for the given securable. The caller must be a metastore
+ * admin, the owner of the securable, or a user that has the **MANAGE** privilege on the securable
+ * in order to assign destinations. Destinations cannot be updated for securables underneath
+ * schemas (tables, volumes, functions, and models). For these securable types, destinations are
+ * inherited from the parent securable. A maximum of 5 emails and 5 external notification
+ * destinations (Slack, Microsoft Teams, and Generic Webhook destinations) can be assigned to a
+ * securable. If a URL destination is assigned, no other destinations can be set.
+ *
+ *
The supported securable types are: "metastore", "catalog", "schema", "table",
+ * "external_location", "connection", "credential", "function", "registered_model", and "volume".
+ */
+ public AccessRequestDestinations updateAccessRequestDestinations(
+ UpdateAccessRequestDestinationsRequest request) {
+ return impl.updateAccessRequestDestinations(request);
+ }
+
+ public RfaService impl() {
+ return impl;
+ }
+}
diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/RfaImpl.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/RfaImpl.java
new file mode 100755
index 000000000..702479620
--- /dev/null
+++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/RfaImpl.java
@@ -0,0 +1,65 @@
+// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT.
+package com.databricks.sdk.service.catalog;
+
+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 Rfa */
+@Generated
+class RfaImpl implements RfaService {
+ private final ApiClient apiClient;
+
+ public RfaImpl(ApiClient apiClient) {
+ this.apiClient = apiClient;
+ }
+
+ @Override
+ public BatchCreateAccessRequestsResponse batchCreateAccessRequests(
+ BatchCreateAccessRequestsRequest request) {
+ String path = "/api/3.0/rfa/requests";
+ 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, BatchCreateAccessRequestsResponse.class);
+ } catch (IOException e) {
+ throw new DatabricksException("IO error: " + e.getMessage(), e);
+ }
+ }
+
+ @Override
+ public AccessRequestDestinations getAccessRequestDestinations(
+ GetAccessRequestDestinationsRequest request) {
+ String path =
+ String.format(
+ "/api/3.0/rfa/destinations/%s/%s", request.getSecurableType(), request.getFullName());
+ try {
+ Request req = new Request("GET", path);
+ ApiClient.setQuery(req, request);
+ req.withHeader("Accept", "application/json");
+ return apiClient.execute(req, AccessRequestDestinations.class);
+ } catch (IOException e) {
+ throw new DatabricksException("IO error: " + e.getMessage(), e);
+ }
+ }
+
+ @Override
+ public AccessRequestDestinations updateAccessRequestDestinations(
+ UpdateAccessRequestDestinationsRequest request) {
+ String path = "/api/3.0/rfa/destinations";
+ try {
+ Request req =
+ new Request("PATCH", path, apiClient.serialize(request.getAccessRequestDestinations()));
+ ApiClient.setQuery(req, request);
+ req.withHeader("Accept", "application/json");
+ req.withHeader("Content-Type", "application/json");
+ return apiClient.execute(req, AccessRequestDestinations.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/catalog/RfaService.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/RfaService.java
new file mode 100755
index 000000000..15b8dc7c3
--- /dev/null
+++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/RfaService.java
@@ -0,0 +1,57 @@
+// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT.
+package com.databricks.sdk.service.catalog;
+
+import com.databricks.sdk.support.Generated;
+
+/**
+ * Request for Access enables customers to request access to and manage access request destinations
+ * for Unity Catalog securables.
+ *
+ *
These APIs provide a standardized way to update, get, and request to access request
+ * destinations. Fine-grained authorization ensures that only users with appropriate permissions can
+ * manage access request destinations.
+ *
+ *
This is the high-level interface, that contains generated methods.
+ *
+ *
Evolving: this interface is under development. Method signatures may change.
+ */
+@Generated
+public interface RfaService {
+ /**
+ * Creates access requests for Unity Catalog permissions for a specified principal on a securable
+ * object. This Batch API can take in multiple principals, securable objects, and permissions as
+ * the input and returns the access request destinations for each. Principals must be unique
+ * across the API call.
+ *
+ *
The supported securable types are: "metastore", "catalog", "schema", "table",
+ * "external_location", "connection", "credential", "function", "registered_model", and "volume".
+ */
+ BatchCreateAccessRequestsResponse batchCreateAccessRequests(
+ BatchCreateAccessRequestsRequest batchCreateAccessRequestsRequest);
+
+ /**
+ * Gets an array of access request destinations for the specified securable. Any caller can see
+ * URL destinations or the destinations on the metastore. Otherwise, only those with **BROWSE**
+ * permissions on the securable can see destinations.
+ *
+ *
The supported securable types are: "metastore", "catalog", "schema", "table",
+ * "external_location", "connection", "credential", "function", "registered_model", and "volume".
+ */
+ AccessRequestDestinations getAccessRequestDestinations(
+ GetAccessRequestDestinationsRequest getAccessRequestDestinationsRequest);
+
+ /**
+ * Updates the access request destinations for the given securable. The caller must be a metastore
+ * admin, the owner of the securable, or a user that has the **MANAGE** privilege on the securable
+ * in order to assign destinations. Destinations cannot be updated for securables underneath
+ * schemas (tables, volumes, functions, and models). For these securable types, destinations are
+ * inherited from the parent securable. A maximum of 5 emails and 5 external notification
+ * destinations (Slack, Microsoft Teams, and Generic Webhook destinations) can be assigned to a
+ * securable. If a URL destination is assigned, no other destinations can be set.
+ *
+ *
The supported securable types are: "metastore", "catalog", "schema", "table",
+ * "external_location", "connection", "credential", "function", "registered_model", and "volume".
+ */
+ AccessRequestDestinations updateAccessRequestDestinations(
+ UpdateAccessRequestDestinationsRequest updateAccessRequestDestinationsRequest);
+}
diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/Securable.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/Securable.java
new file mode 100755
index 000000000..b6b8a8674
--- /dev/null
+++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/Securable.java
@@ -0,0 +1,83 @@
+// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT.
+
+package com.databricks.sdk.service.catalog;
+
+import com.databricks.sdk.support.Generated;
+import com.databricks.sdk.support.ToStringer;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.Objects;
+
+/**
+ * Generic definition of a securable, which is uniquely defined in a metastore by its type and full
+ * name.
+ */
+@Generated
+public class Securable {
+ /** Required. The full name of the catalog/schema/table. Optional if resource_name is present. */
+ @JsonProperty("full_name")
+ private String fullName;
+
+ /**
+ * Optional. The name of the Share object that contains the securable when the securable is
+ * getting shared in D2D Delta Sharing.
+ */
+ @JsonProperty("provider_share")
+ private String providerShare;
+
+ /**
+ * Required. The type of securable (catalog/schema/table). Optional if resource_name is present.
+ */
+ @JsonProperty("type")
+ private SecurableType typeValue;
+
+ public Securable setFullName(String fullName) {
+ this.fullName = fullName;
+ return this;
+ }
+
+ public String getFullName() {
+ return fullName;
+ }
+
+ public Securable setProviderShare(String providerShare) {
+ this.providerShare = providerShare;
+ return this;
+ }
+
+ public String getProviderShare() {
+ return providerShare;
+ }
+
+ public Securable setType(SecurableType typeValue) {
+ this.typeValue = typeValue;
+ return this;
+ }
+
+ public SecurableType getType() {
+ return typeValue;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+ Securable that = (Securable) o;
+ return Objects.equals(fullName, that.fullName)
+ && Objects.equals(providerShare, that.providerShare)
+ && Objects.equals(typeValue, that.typeValue);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(fullName, providerShare, typeValue);
+ }
+
+ @Override
+ public String toString() {
+ return new ToStringer(Securable.class)
+ .add("fullName", fullName)
+ .add("providerShare", providerShare)
+ .add("typeValue", typeValue)
+ .toString();
+ }
+}
diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/SecurablePermissions.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/SecurablePermissions.java
new file mode 100755
index 000000000..2a5854931
--- /dev/null
+++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/SecurablePermissions.java
@@ -0,0 +1,60 @@
+// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT.
+
+package com.databricks.sdk.service.catalog;
+
+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 SecurablePermissions {
+ /** List of requested Unity Catalog permissions. */
+ @JsonProperty("permissions")
+ private Collection permissions;
+
+ /** The securable for which the access request destinations are being requested. */
+ @JsonProperty("securable")
+ private Securable securable;
+
+ public SecurablePermissions setPermissions(Collection permissions) {
+ this.permissions = permissions;
+ return this;
+ }
+
+ public Collection getPermissions() {
+ return permissions;
+ }
+
+ public SecurablePermissions setSecurable(Securable securable) {
+ this.securable = securable;
+ return this;
+ }
+
+ public Securable getSecurable() {
+ return securable;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+ SecurablePermissions that = (SecurablePermissions) o;
+ return Objects.equals(permissions, that.permissions)
+ && Objects.equals(securable, that.securable);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(permissions, securable);
+ }
+
+ @Override
+ public String toString() {
+ return new ToStringer(SecurablePermissions.class)
+ .add("permissions", permissions)
+ .add("securable", securable)
+ .toString();
+ }
+}
diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/SpecialDestination.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/SpecialDestination.java
new file mode 100755
index 000000000..105d24844
--- /dev/null
+++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/SpecialDestination.java
@@ -0,0 +1,14 @@
+// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT.
+
+package com.databricks.sdk.service.catalog;
+
+import com.databricks.sdk.support.Generated;
+
+@Generated
+public enum SpecialDestination {
+ SPECIAL_DESTINATION_CATALOG_OWNER,
+ SPECIAL_DESTINATION_CONNECTION_OWNER,
+ SPECIAL_DESTINATION_CREDENTIAL_OWNER,
+ SPECIAL_DESTINATION_EXTERNAL_LOCATION_OWNER,
+ SPECIAL_DESTINATION_METASTORE_OWNER,
+}
diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/UpdateAccessRequestDestinationsRequest.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/UpdateAccessRequestDestinationsRequest.java
new file mode 100755
index 000000000..dac6c0ae3
--- /dev/null
+++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/UpdateAccessRequestDestinationsRequest.java
@@ -0,0 +1,76 @@
+// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT.
+
+package com.databricks.sdk.service.catalog;
+
+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 com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.Objects;
+
+@Generated
+public class UpdateAccessRequestDestinationsRequest {
+ /**
+ * The access request destinations to assign to the securable. For each destination, a
+ * **destination_id** and **destination_type** must be defined.
+ */
+ @JsonProperty("access_request_destinations")
+ private AccessRequestDestinations accessRequestDestinations;
+
+ /**
+ * The field mask must be a single string, with multiple fields separated by commas (no spaces).
+ * The field path is relative to the resource object, using a dot (`.`) to navigate sub-fields
+ * (e.g., `author.given_name`). Specification of elements in sequence or map fields is not
+ * allowed, as only the entire collection field can be specified. Field names must exactly match
+ * the resource field names.
+ *
+ * A field mask of `*` indicates full replacement. It’s recommended to always explicitly list
+ * the fields being updated and avoid using `*` wildcards, as it can lead to unintended results if
+ * the API changes in the future.
+ */
+ @JsonIgnore
+ @QueryParam("update_mask")
+ private String updateMask;
+
+ public UpdateAccessRequestDestinationsRequest setAccessRequestDestinations(
+ AccessRequestDestinations accessRequestDestinations) {
+ this.accessRequestDestinations = accessRequestDestinations;
+ return this;
+ }
+
+ public AccessRequestDestinations getAccessRequestDestinations() {
+ return accessRequestDestinations;
+ }
+
+ public UpdateAccessRequestDestinationsRequest setUpdateMask(String updateMask) {
+ this.updateMask = updateMask;
+ return this;
+ }
+
+ public String getUpdateMask() {
+ return updateMask;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+ UpdateAccessRequestDestinationsRequest that = (UpdateAccessRequestDestinationsRequest) o;
+ return Objects.equals(accessRequestDestinations, that.accessRequestDestinations)
+ && Objects.equals(updateMask, that.updateMask);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(accessRequestDestinations, updateMask);
+ }
+
+ @Override
+ public String toString() {
+ return new ToStringer(UpdateAccessRequestDestinationsRequest.class)
+ .add("accessRequestDestinations", accessRequestDestinations)
+ .add("updateMask", updateMask)
+ .toString();
+ }
+}
diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/UpdateConnection.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/UpdateConnection.java
index 5119aa1fa..d37165c3a 100755
--- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/UpdateConnection.java
+++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/UpdateConnection.java
@@ -11,10 +11,6 @@
@Generated
public class UpdateConnection {
- /** [Create,Update:OPT] Connection environment settings as EnvironmentSettings object. */
- @JsonProperty("environment_settings")
- private EnvironmentSettings environmentSettings;
-
/** Name of the connection. */
@JsonIgnore private String name;
@@ -30,15 +26,6 @@ public class UpdateConnection {
@JsonProperty("owner")
private String owner;
- public UpdateConnection setEnvironmentSettings(EnvironmentSettings environmentSettings) {
- this.environmentSettings = environmentSettings;
- return this;
- }
-
- public EnvironmentSettings getEnvironmentSettings() {
- return environmentSettings;
- }
-
public UpdateConnection setName(String name) {
this.name = name;
return this;
@@ -80,8 +67,7 @@ public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
UpdateConnection that = (UpdateConnection) o;
- return Objects.equals(environmentSettings, that.environmentSettings)
- && Objects.equals(name, that.name)
+ return Objects.equals(name, that.name)
&& Objects.equals(newName, that.newName)
&& Objects.equals(options, that.options)
&& Objects.equals(owner, that.owner);
@@ -89,13 +75,12 @@ public boolean equals(Object o) {
@Override
public int hashCode() {
- return Objects.hash(environmentSettings, name, newName, options, owner);
+ return Objects.hash(name, newName, options, owner);
}
@Override
public String toString() {
return new ToStringer(UpdateConnection.class)
- .add("environmentSettings", environmentSettings)
.add("name", name)
.add("newName", newName)
.add("options", options)
diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/cleanrooms/CleanRoom.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/cleanrooms/CleanRoom.java
index 08962f135..0372a8bd2 100755
--- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/cleanrooms/CleanRoom.java
+++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/cleanrooms/CleanRoom.java
@@ -46,7 +46,7 @@ public class CleanRoom {
private CleanRoomOutputCatalog outputCatalog;
/**
- * This is Databricks username of the owner of the local clean room securable for permission
+ * This is the Databricks username of the owner of the local clean room securable for permission
* management.
*/
@JsonProperty("owner")
diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/cleanrooms/CleanRoomAssetNotebook.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/cleanrooms/CleanRoomAssetNotebook.java
index d56dd9b48..c4d6211cc 100755
--- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/cleanrooms/CleanRoomAssetNotebook.java
+++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/cleanrooms/CleanRoomAssetNotebook.java
@@ -29,7 +29,7 @@ public class CleanRoomAssetNotebook {
@JsonProperty("reviews")
private Collection reviews;
- /** collaborators that can run the notebook */
+ /** Aliases of collaborators that can run the notebook. */
@JsonProperty("runner_collaborator_aliases")
private Collection runnerCollaboratorAliases;
diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/cleanrooms/CleanRoomCollaborator.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/cleanrooms/CleanRoomCollaborator.java
index 88dae5502..f757862ee 100755
--- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/cleanrooms/CleanRoomCollaborator.java
+++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/cleanrooms/CleanRoomCollaborator.java
@@ -31,7 +31,7 @@ public class CleanRoomCollaborator {
private String displayName;
/**
- * The global Unity Catalog metastore id of the collaborator. The identifier is of format
+ * The global Unity Catalog metastore ID of the collaborator. The identifier is of format
* cloud:region:metastore-uuid.
*/
@JsonProperty("global_metastore_id")
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..86c30647e
--- /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;
+
+ /** */
+ @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..ac6697a79
--- /dev/null
+++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/AccountGroupsV2API.java
@@ -0,0 +1,92 @@
+// 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. */
+ 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..3f6e248f2
--- /dev/null
+++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/AccountGroupsV2Impl.java
@@ -0,0 +1,110 @@
+// 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("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..0964bec7c
--- /dev/null
+++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/AccountGroupsV2Service.java
@@ -0,0 +1,39 @@
+// 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. */
+ 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..19e108bd8
--- /dev/null
+++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/AccountServicePrincipalsV2Impl.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 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("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("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..34827a3d1
--- /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,
+ ListAccountGroupsResponse::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..318789db5
--- /dev/null
+++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/AccountUsersV2Impl.java
@@ -0,0 +1,110 @@
+// 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 ListAccountGroupsResponse 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, ListAccountGroupsResponse.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("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("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..27e3a0ddb
--- /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. */
+ ListAccountGroupsResponse 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..8c70489f0
--- /dev/null
+++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/GroupsV2Impl.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.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("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("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/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..dddf4af21
--- /dev/null
+++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/ServicePrincipalsV2Impl.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.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("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("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..98ca4cc41
--- /dev/null
+++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/UsersV2Impl.java
@@ -0,0 +1,151 @@
+// 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("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("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/BaseJob.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/BaseJob.java
index f772fc643..a78f27377 100755
--- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/BaseJob.java
+++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/BaseJob.java
@@ -31,6 +31,10 @@ public class BaseJob {
@JsonProperty("effective_budget_policy_id")
private String effectiveBudgetPolicyId;
+ /** The id of the usage policy used by this job for cost attribution purposes. */
+ @JsonProperty("effective_usage_policy_id")
+ private String effectiveUsagePolicyId;
+
/**
* Indicates if the job has more array properties (`tasks`, `job_clusters`) that are not shown.
* They can be accessed via :method:jobs/get endpoint. It is only relevant for API 2.2
@@ -81,6 +85,15 @@ public String getEffectiveBudgetPolicyId() {
return effectiveBudgetPolicyId;
}
+ public BaseJob setEffectiveUsagePolicyId(String effectiveUsagePolicyId) {
+ this.effectiveUsagePolicyId = effectiveUsagePolicyId;
+ return this;
+ }
+
+ public String getEffectiveUsagePolicyId() {
+ return effectiveUsagePolicyId;
+ }
+
public BaseJob setHasMore(Boolean hasMore) {
this.hasMore = hasMore;
return this;
@@ -125,6 +138,7 @@ public boolean equals(Object o) {
return Objects.equals(createdTime, that.createdTime)
&& Objects.equals(creatorUserName, that.creatorUserName)
&& Objects.equals(effectiveBudgetPolicyId, that.effectiveBudgetPolicyId)
+ && Objects.equals(effectiveUsagePolicyId, that.effectiveUsagePolicyId)
&& Objects.equals(hasMore, that.hasMore)
&& Objects.equals(jobId, that.jobId)
&& Objects.equals(settings, that.settings)
@@ -137,6 +151,7 @@ public int hashCode() {
createdTime,
creatorUserName,
effectiveBudgetPolicyId,
+ effectiveUsagePolicyId,
hasMore,
jobId,
settings,
@@ -149,6 +164,7 @@ public String toString() {
.add("createdTime", createdTime)
.add("creatorUserName", creatorUserName)
.add("effectiveBudgetPolicyId", effectiveBudgetPolicyId)
+ .add("effectiveUsagePolicyId", effectiveUsagePolicyId)
.add("hasMore", hasMore)
.add("jobId", jobId)
.add("settings", settings)
diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/BaseRun.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/BaseRun.java
index 147838c6d..3b1b2da28 100755
--- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/BaseRun.java
+++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/BaseRun.java
@@ -63,6 +63,10 @@ public class BaseRun {
@JsonProperty("effective_performance_target")
private PerformanceTarget effectivePerformanceTarget;
+ /** The id of the usage policy used by this run for cost attribution purposes. */
+ @JsonProperty("effective_usage_policy_id")
+ private String effectiveUsagePolicyId;
+
/**
* The time at which this run ended in epoch milliseconds (milliseconds since 1/1/1970 UTC). This
* field is set to 0 if the job is still running.
@@ -280,6 +284,15 @@ public PerformanceTarget getEffectivePerformanceTarget() {
return effectivePerformanceTarget;
}
+ public BaseRun setEffectiveUsagePolicyId(String effectiveUsagePolicyId) {
+ this.effectiveUsagePolicyId = effectiveUsagePolicyId;
+ return this;
+ }
+
+ public String getEffectiveUsagePolicyId() {
+ return effectiveUsagePolicyId;
+ }
+
public BaseRun setEndTime(Long endTime) {
this.endTime = endTime;
return this;
@@ -526,6 +539,7 @@ public boolean equals(Object o) {
&& Objects.equals(creatorUserName, that.creatorUserName)
&& Objects.equals(description, that.description)
&& Objects.equals(effectivePerformanceTarget, that.effectivePerformanceTarget)
+ && Objects.equals(effectiveUsagePolicyId, that.effectiveUsagePolicyId)
&& Objects.equals(endTime, that.endTime)
&& Objects.equals(executionDuration, that.executionDuration)
&& Objects.equals(gitSource, that.gitSource)
@@ -564,6 +578,7 @@ public int hashCode() {
creatorUserName,
description,
effectivePerformanceTarget,
+ effectiveUsagePolicyId,
endTime,
executionDuration,
gitSource,
@@ -602,6 +617,7 @@ public String toString() {
.add("creatorUserName", creatorUserName)
.add("description", description)
.add("effectivePerformanceTarget", effectivePerformanceTarget)
+ .add("effectiveUsagePolicyId", effectiveUsagePolicyId)
.add("endTime", endTime)
.add("executionDuration", executionDuration)
.add("gitSource", gitSource)
diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/CreateJob.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/CreateJob.java
index 2ecd577cc..c38a239bd 100755
--- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/CreateJob.java
+++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/CreateJob.java
@@ -189,8 +189,8 @@ public class CreateJob {
/**
* The id of the user specified usage policy to use for this job. If not specified, a default
- * usage policy may be applied when creating or modifying the job. See
- * `effective_budget_policy_id` for the budget policy used by this workload.
+ * usage policy may be applied when creating or modifying the job. See `effective_usage_policy_id`
+ * for the usage policy used by this workload.
*/
@JsonProperty("usage_policy_id")
private String usagePolicyId;
diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/Job.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/Job.java
index 94e5f7d60..3b2a3d50b 100755
--- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/Job.java
+++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/Job.java
@@ -32,6 +32,10 @@ public class Job {
@JsonProperty("effective_budget_policy_id")
private String effectiveBudgetPolicyId;
+ /** The id of the usage policy used by this job for cost attribution purposes. */
+ @JsonProperty("effective_usage_policy_id")
+ private String effectiveUsagePolicyId;
+
/**
* Indicates if the job has more array properties (`tasks`, `job_clusters`) that are not shown.
* They can be accessed via :method:jobs/get endpoint. It is only relevant for API 2.2
@@ -98,6 +102,15 @@ public String getEffectiveBudgetPolicyId() {
return effectiveBudgetPolicyId;
}
+ public Job setEffectiveUsagePolicyId(String effectiveUsagePolicyId) {
+ this.effectiveUsagePolicyId = effectiveUsagePolicyId;
+ return this;
+ }
+
+ public String getEffectiveUsagePolicyId() {
+ return effectiveUsagePolicyId;
+ }
+
public Job setHasMore(Boolean hasMore) {
this.hasMore = hasMore;
return this;
@@ -160,6 +173,7 @@ public boolean equals(Object o) {
return Objects.equals(createdTime, that.createdTime)
&& Objects.equals(creatorUserName, that.creatorUserName)
&& Objects.equals(effectiveBudgetPolicyId, that.effectiveBudgetPolicyId)
+ && Objects.equals(effectiveUsagePolicyId, that.effectiveUsagePolicyId)
&& Objects.equals(hasMore, that.hasMore)
&& Objects.equals(jobId, that.jobId)
&& Objects.equals(nextPageToken, that.nextPageToken)
@@ -174,6 +188,7 @@ public int hashCode() {
createdTime,
creatorUserName,
effectiveBudgetPolicyId,
+ effectiveUsagePolicyId,
hasMore,
jobId,
nextPageToken,
@@ -188,6 +203,7 @@ public String toString() {
.add("createdTime", createdTime)
.add("creatorUserName", creatorUserName)
.add("effectiveBudgetPolicyId", effectiveBudgetPolicyId)
+ .add("effectiveUsagePolicyId", effectiveUsagePolicyId)
.add("hasMore", hasMore)
.add("jobId", jobId)
.add("nextPageToken", nextPageToken)
diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/JobSettings.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/JobSettings.java
index 6c3b6dca5..d0d2ad7ee 100755
--- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/JobSettings.java
+++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/JobSettings.java
@@ -185,8 +185,8 @@ public class JobSettings {
/**
* The id of the user specified usage policy to use for this job. If not specified, a default
- * usage policy may be applied when creating or modifying the job. See
- * `effective_budget_policy_id` for the budget policy used by this workload.
+ * usage policy may be applied when creating or modifying the job. See `effective_usage_policy_id`
+ * for the usage policy used by this workload.
*/
@JsonProperty("usage_policy_id")
private String usagePolicyId;
diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/Run.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/Run.java
index 70bb1e68c..f46de2d24 100755
--- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/Run.java
+++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/Run.java
@@ -64,6 +64,10 @@ public class Run {
@JsonProperty("effective_performance_target")
private PerformanceTarget effectivePerformanceTarget;
+ /** The id of the usage policy used by this run for cost attribution purposes. */
+ @JsonProperty("effective_usage_policy_id")
+ private String effectiveUsagePolicyId;
+
/**
* The time at which this run ended in epoch milliseconds (milliseconds since 1/1/1970 UTC). This
* field is set to 0 if the job is still running.
@@ -289,6 +293,15 @@ public PerformanceTarget getEffectivePerformanceTarget() {
return effectivePerformanceTarget;
}
+ public Run setEffectiveUsagePolicyId(String effectiveUsagePolicyId) {
+ this.effectiveUsagePolicyId = effectiveUsagePolicyId;
+ return this;
+ }
+
+ public String getEffectiveUsagePolicyId() {
+ return effectiveUsagePolicyId;
+ }
+
public Run setEndTime(Long endTime) {
this.endTime = endTime;
return this;
@@ -553,6 +566,7 @@ public boolean equals(Object o) {
&& Objects.equals(creatorUserName, that.creatorUserName)
&& Objects.equals(description, that.description)
&& Objects.equals(effectivePerformanceTarget, that.effectivePerformanceTarget)
+ && Objects.equals(effectiveUsagePolicyId, that.effectiveUsagePolicyId)
&& Objects.equals(endTime, that.endTime)
&& Objects.equals(executionDuration, that.executionDuration)
&& Objects.equals(gitSource, that.gitSource)
@@ -593,6 +607,7 @@ public int hashCode() {
creatorUserName,
description,
effectivePerformanceTarget,
+ effectiveUsagePolicyId,
endTime,
executionDuration,
gitSource,
@@ -633,6 +648,7 @@ public String toString() {
.add("creatorUserName", creatorUserName)
.add("description", description)
.add("effectivePerformanceTarget", effectivePerformanceTarget)
+ .add("effectiveUsagePolicyId", effectiveUsagePolicyId)
.add("endTime", endTime)
.add("executionDuration", executionDuration)
.add("gitSource", gitSource)
diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/sharing/Share.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/sharing/Share.java
index 517e5634a..dbc6f59f3 100755
--- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/sharing/Share.java
+++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/sharing/Share.java
@@ -5,19 +5,10 @@
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 Share {
- /** The comment of the share. */
- @JsonProperty("comment")
- private String comment;
-
- /** The display name of the share. If defined, it will be shown in the UI. */
- @JsonProperty("display_name")
- private String displayName;
-
/** */
@JsonProperty("id")
private String id;
@@ -26,28 +17,6 @@ public class Share {
@JsonProperty("name")
private String name;
- /** The tags of the share. */
- @JsonProperty("tags")
- private Collection tags;
-
- public Share setComment(String comment) {
- this.comment = comment;
- return this;
- }
-
- public String getComment() {
- return comment;
- }
-
- public Share setDisplayName(String displayName) {
- this.displayName = displayName;
- return this;
- }
-
- public String getDisplayName() {
- return displayName;
- }
-
public Share setId(String id) {
this.id = id;
return this;
@@ -66,40 +35,21 @@ public String getName() {
return name;
}
- public Share setTags(Collection tags) {
- this.tags = tags;
- return this;
- }
-
- public Collection getTags() {
- return tags;
- }
-
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Share that = (Share) o;
- return Objects.equals(comment, that.comment)
- && Objects.equals(displayName, that.displayName)
- && Objects.equals(id, that.id)
- && Objects.equals(name, that.name)
- && Objects.equals(tags, that.tags);
+ return Objects.equals(id, that.id) && Objects.equals(name, that.name);
}
@Override
public int hashCode() {
- return Objects.hash(comment, displayName, id, name, tags);
+ return Objects.hash(id, name);
}
@Override
public String toString() {
- return new ToStringer(Share.class)
- .add("comment", comment)
- .add("displayName", displayName)
- .add("id", id)
- .add("name", name)
- .add("tags", tags)
- .toString();
+ return new ToStringer(Share.class).add("id", id).add("name", name).toString();
}
}