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(); } }