diff --git a/.codegen/_openapi_sha b/.codegen/_openapi_sha index 8af35ea49..b75b936f1 100644 --- a/.codegen/_openapi_sha +++ b/.codegen/_openapi_sha @@ -1 +1 @@ -b95c2c6e21bec9551ec7d7d51ddf2dfe390b4522 \ No newline at end of file +8182e896c6797f3724042b048d466a78052b59d9 \ No newline at end of file diff --git a/.gitattributes b/.gitattributes index d072b3802..161d1dc53 100755 --- a/.gitattributes +++ b/.gitattributes @@ -929,6 +929,7 @@ databricks-sdk-java/src/main/java/com/databricks/sdk/service/dashboards/GenieDel databricks-sdk-java/src/main/java/com/databricks/sdk/service/dashboards/GenieDeleteConversationRequest.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/dashboards/GenieExecuteMessageAttachmentQueryRequest.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/dashboards/GenieExecuteMessageQueryRequest.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/dashboards/GenieFeedback.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/dashboards/GenieFeedbackRating.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/dashboards/GenieGetConversationMessageRequest.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/dashboards/GenieGetMessageAttachmentQueryResultRequest.java linguist-generated=true @@ -1201,6 +1202,33 @@ databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/WorkspaceAssign databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/WorkspaceAssignmentService.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/WorkspacePermission.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/WorkspacePermissions.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/iamv2/AccountIamV2API.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/iamv2/AccountIamV2Impl.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/iamv2/AccountIamV2Service.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/iamv2/GetWorkspaceAccessDetailLocalRequest.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/iamv2/GetWorkspaceAccessDetailRequest.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/iamv2/Group.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/iamv2/PrincipalType.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/iamv2/ResolveGroupProxyRequest.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/iamv2/ResolveGroupRequest.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/iamv2/ResolveGroupResponse.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/iamv2/ResolveServicePrincipalProxyRequest.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/iamv2/ResolveServicePrincipalRequest.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/iamv2/ResolveServicePrincipalResponse.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/iamv2/ResolveUserProxyRequest.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/iamv2/ResolveUserRequest.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/iamv2/ResolveUserResponse.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/iamv2/ServicePrincipal.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/iamv2/State.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/iamv2/User.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/iamv2/UserName.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/iamv2/WorkspaceAccessDetail.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/iamv2/WorkspaceAccessDetailAccessType.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/iamv2/WorkspaceAccessDetailView.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/iamv2/WorkspaceIamV2API.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/iamv2/WorkspaceIamV2Impl.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/iamv2/WorkspaceIamV2Service.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/iamv2/WorkspacePermission.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/AuthenticationMethod.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/BaseJob.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/BaseRun.java linguist-generated=true diff --git a/NEXT_CHANGELOG.md b/NEXT_CHANGELOG.md index 5fc234f9f..51eb9718e 100644 --- a/NEXT_CHANGELOG.md +++ b/NEXT_CHANGELOG.md @@ -11,3 +11,13 @@ ### Internal Changes ### API Changes +* Added `com.databricks.sdk.service.iamv2` package. +* Added `accountClient.accountIamV2()` service and `workspaceClient.workspaceIamV2()` service. +* Added `feedback` field for `com.databricks.sdk.service.dashboards.GenieMessage`. +* Added `disabled` field for `com.databricks.sdk.service.jobs.Task`. +* Added `auxiliaryManagedLocation` field for `com.databricks.sdk.service.sharing.TableInternalAttributes`. +* Added `alerts` field for `com.databricks.sdk.service.sql.ListAlertsV2Response`. +* Added `NO_ACTIVATED_K8S` and `USAGE_POLICY_ENTITLEMENT_DENIED` enum values for `com.databricks.sdk.service.compute.TerminationReasonCode`. +* Added `FOREIGN_CATALOG` enum value for `com.databricks.sdk.service.pipelines.IngestionSourceType`. +* Added `FOREIGN_ICEBERG_TABLE` enum value for `com.databricks.sdk.service.sharing.TableInternalAttributesSharedTableType`. +* [Breaking] Removed `disabled` field for `com.databricks.sdk.service.jobs.RunTask`. \ No newline at end of file diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/AccountClient.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/AccountClient.java index b0c8a74fe..68e1b7db7 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 @@ -32,6 +32,8 @@ import com.databricks.sdk.service.iam.AccountUsersService; import com.databricks.sdk.service.iam.WorkspaceAssignmentAPI; import com.databricks.sdk.service.iam.WorkspaceAssignmentService; +import com.databricks.sdk.service.iamv2.AccountIamV2API; +import com.databricks.sdk.service.iamv2.AccountIamV2Service; import com.databricks.sdk.service.oauth2.AccountFederationPolicyAPI; import com.databricks.sdk.service.oauth2.AccountFederationPolicyService; import com.databricks.sdk.service.oauth2.CustomAppIntegrationAPI; @@ -88,6 +90,7 @@ public class AccountClient { private EncryptionKeysAPI encryptionKeysAPI; private AccountFederationPolicyAPI federationPolicyAPI; private AccountGroupsAPI groupsAPI; + private AccountIamV2API iamV2API; private AccountIpAccessListsAPI ipAccessListsAPI; private LogDeliveryAPI logDeliveryAPI; private AccountMetastoreAssignmentsAPI metastoreAssignmentsAPI; @@ -129,6 +132,7 @@ public AccountClient(DatabricksConfig config) { encryptionKeysAPI = new EncryptionKeysAPI(apiClient); federationPolicyAPI = new AccountFederationPolicyAPI(apiClient); groupsAPI = new AccountGroupsAPI(apiClient); + iamV2API = new AccountIamV2API(apiClient); ipAccessListsAPI = new AccountIpAccessListsAPI(apiClient); logDeliveryAPI = new LogDeliveryAPI(apiClient); metastoreAssignmentsAPI = new AccountMetastoreAssignmentsAPI(apiClient); @@ -291,6 +295,14 @@ public AccountGroupsAPI groups() { return groupsAPI; } + /** + * These APIs are used to manage identities and the workspace access of these identities in + * . + */ + public AccountIamV2API iamV2() { + return iamV2API; + } + /** * The Accounts IP Access List API enables account admins to configure IP access lists for access * to the account console. @@ -721,6 +733,17 @@ public AccountClient withGroupsAPI(AccountGroupsAPI accountGroups) { return this; } + /** Replace the default AccountIamV2Service with a custom implementation. */ + public AccountClient withIamV2Impl(AccountIamV2Service accountIamV2) { + return this.withIamV2API(new AccountIamV2API(accountIamV2)); + } + + /** Replace the default AccountIamV2API with a custom implementation. */ + public AccountClient withIamV2API(AccountIamV2API accountIamV2) { + this.iamV2API = accountIamV2; + return this; + } + /** Replace the default AccountIpAccessListsService with a custom implementation. */ public AccountClient withIpAccessListsImpl(AccountIpAccessListsService accountIpAccessLists) { return this.withIpAccessListsAPI(new AccountIpAccessListsAPI(accountIpAccessLists)); 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 c8c302cc8..0af9ec6bc 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 @@ -122,6 +122,8 @@ import com.databricks.sdk.service.iam.ServicePrincipalsService; import com.databricks.sdk.service.iam.UsersAPI; import com.databricks.sdk.service.iam.UsersService; +import com.databricks.sdk.service.iamv2.WorkspaceIamV2API; +import com.databricks.sdk.service.iamv2.WorkspaceIamV2Service; import com.databricks.sdk.service.jobs.JobsAPI; import com.databricks.sdk.service.jobs.JobsService; import com.databricks.sdk.service.jobs.PolicyComplianceForJobsAPI; @@ -363,6 +365,7 @@ public class WorkspaceClient { private WorkspaceAPI workspaceAPI; private WorkspaceBindingsAPI workspaceBindingsAPI; private WorkspaceConfAPI workspaceConfAPI; + private WorkspaceIamV2API workspaceIamV2API; private WorkspaceSettingsV2API workspaceSettingsV2API; public WorkspaceClient() { @@ -489,6 +492,7 @@ public WorkspaceClient(DatabricksConfig config) { workspaceAPI = new WorkspaceAPI(apiClient); workspaceBindingsAPI = new WorkspaceBindingsAPI(apiClient); workspaceConfAPI = new WorkspaceConfAPI(apiClient); + workspaceIamV2API = new WorkspaceIamV2API(apiClient); workspaceSettingsV2API = new WorkspaceSettingsV2API(apiClient); } @@ -1828,7 +1832,7 @@ public TablesAPI tables() { return tablesAPI; } - /** The Tag Policy API allows you to manage tag policies in Databricks. */ + /** The Tag Policy API allows you to manage policies for governed tags in Databricks. */ public TagPoliciesAPI tagPolicies() { return tagPoliciesAPI; } @@ -1992,6 +1996,14 @@ public WorkspaceConfAPI workspaceConf() { return workspaceConfAPI; } + /** + * These APIs are used to manage identities and the workspace access of these identities in + * . + */ + public WorkspaceIamV2API workspaceIamV2() { + return workspaceIamV2API; + } + /** APIs to manage workspace level settings */ public WorkspaceSettingsV2API workspaceSettingsV2() { return workspaceSettingsV2API; @@ -3334,6 +3346,17 @@ public WorkspaceClient withWorkspaceConfAPI(WorkspaceConfAPI workspaceConf) { return this; } + /** Replace the default WorkspaceIamV2Service with a custom implementation. */ + public WorkspaceClient withWorkspaceIamV2Impl(WorkspaceIamV2Service workspaceIamV2) { + return this.withWorkspaceIamV2API(new WorkspaceIamV2API(workspaceIamV2)); + } + + /** Replace the default WorkspaceIamV2API with a custom implementation. */ + public WorkspaceClient withWorkspaceIamV2API(WorkspaceIamV2API workspaceIamV2) { + this.workspaceIamV2API = workspaceIamV2; + return this; + } + /** Replace the default WorkspaceSettingsV2Service with a custom implementation. */ public WorkspaceClient withWorkspaceSettingsV2Impl( WorkspaceSettingsV2Service workspaceSettingsV2) { diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/CreateExternalLocation.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/CreateExternalLocation.java index f2a8fb83c..63b70fb7a 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/CreateExternalLocation.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/CreateExternalLocation.java @@ -33,7 +33,10 @@ public class CreateExternalLocation { @JsonProperty("fallback") private Boolean fallback; - /** File event queue settings. */ + /** + * File event queue settings. If `enable_file_events` is `true`, must be defined and have exactly + * one of the documented properties. + */ @JsonProperty("file_event_queue") private FileEventQueue fileEventQueue; diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ExternalLocationInfo.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ExternalLocationInfo.java index 0827a081c..4e91f1d6e 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ExternalLocationInfo.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ExternalLocationInfo.java @@ -52,7 +52,10 @@ public class ExternalLocationInfo { @JsonProperty("fallback") private Boolean fallback; - /** File event queue settings. */ + /** + * File event queue settings. If `enable_file_events` is `true`, must be defined and have exactly + * one of the documented properties. + */ @JsonProperty("file_event_queue") private FileEventQueue fileEventQueue; diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/UpdateExternalLocation.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/UpdateExternalLocation.java index 719c6c4d0..258f5b765 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/UpdateExternalLocation.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/UpdateExternalLocation.java @@ -34,7 +34,10 @@ public class UpdateExternalLocation { @JsonProperty("fallback") private Boolean fallback; - /** File event queue settings. */ + /** + * File event queue settings. If `enable_file_events` is `true`, must be defined and have exactly + * one of the documented properties. + */ @JsonProperty("file_event_queue") private FileEventQueue fileEventQueue; diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/compute/TerminationReasonCode.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/compute/TerminationReasonCode.java index a044c78df..7d2392552 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/compute/TerminationReasonCode.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/compute/TerminationReasonCode.java @@ -137,6 +137,7 @@ public enum TerminationReasonCode { NETWORK_CHECK_STORAGE_FAILURE, NETWORK_CONFIGURATION_FAILURE, NFS_MOUNT_FAILURE, + NO_ACTIVATED_K8S, NO_MATCHED_K8S, NO_MATCHED_K8S_TESTING_TAG, NPIP_TUNNEL_SETUP_FAILURE, @@ -175,6 +176,7 @@ public enum TerminationReasonCode { UNKNOWN, UNSUPPORTED_INSTANCE_TYPE, UPDATE_INSTANCE_PROFILE_FAILURE, + USAGE_POLICY_ENTITLEMENT_DENIED, USER_INITIATED_VM_TERMINATION, USER_REQUEST, WORKER_SETUP_FAILURE, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/dashboards/GenieFeedback.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/dashboards/GenieFeedback.java new file mode 100755 index 000000000..86339a735 --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/dashboards/GenieFeedback.java @@ -0,0 +1,59 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. + +package com.databricks.sdk.service.dashboards; + +import com.databricks.sdk.support.Generated; +import com.databricks.sdk.support.ToStringer; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +/** Feedback containing rating and optional comment */ +@Generated +public class GenieFeedback { + /** Optional feedback comment text */ + @JsonProperty("comment") + private String comment; + + /** The feedback rating */ + @JsonProperty("rating") + private GenieFeedbackRating rating; + + public GenieFeedback setComment(String comment) { + this.comment = comment; + return this; + } + + public String getComment() { + return comment; + } + + public GenieFeedback setRating(GenieFeedbackRating rating) { + this.rating = rating; + return this; + } + + public GenieFeedbackRating getRating() { + return rating; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + GenieFeedback that = (GenieFeedback) o; + return Objects.equals(comment, that.comment) && Objects.equals(rating, that.rating); + } + + @Override + public int hashCode() { + return Objects.hash(comment, rating); + } + + @Override + public String toString() { + return new ToStringer(GenieFeedback.class) + .add("comment", comment) + .add("rating", rating) + .toString(); + } +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/dashboards/GenieListConversationsRequest.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/dashboards/GenieListConversationsRequest.java index b3091c97c..bb856708e 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/dashboards/GenieListConversationsRequest.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/dashboards/GenieListConversationsRequest.java @@ -11,8 +11,8 @@ @Generated public class GenieListConversationsRequest { /** - * Include all conversations in the space across all users. Requires "Can Manage" permission on - * the space. + * Include all conversations in the space across all users. Requires at least CAN MANAGE + * permission on the space. */ @JsonIgnore @QueryParam("include_all") diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/dashboards/GenieMessage.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/dashboards/GenieMessage.java index be97d6d5c..e43e20e2d 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/dashboards/GenieMessage.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/dashboards/GenieMessage.java @@ -30,6 +30,10 @@ public class GenieMessage { @JsonProperty("error") private MessageError error; + /** User feedback for the message if provided */ + @JsonProperty("feedback") + private GenieFeedback feedback; + /** Message ID. Legacy identifier, use message_id instead */ @JsonProperty("id") private String id; @@ -106,6 +110,15 @@ public MessageError getError() { return error; } + public GenieMessage setFeedback(GenieFeedback feedback) { + this.feedback = feedback; + return this; + } + + public GenieFeedback getFeedback() { + return feedback; + } + public GenieMessage setId(String id) { this.id = id; return this; @@ -179,6 +192,7 @@ public boolean equals(Object o) { && Objects.equals(conversationId, that.conversationId) && Objects.equals(createdTimestamp, that.createdTimestamp) && Objects.equals(error, that.error) + && Objects.equals(feedback, that.feedback) && Objects.equals(id, that.id) && Objects.equals(lastUpdatedTimestamp, that.lastUpdatedTimestamp) && Objects.equals(messageId, that.messageId) @@ -196,6 +210,7 @@ public int hashCode() { conversationId, createdTimestamp, error, + feedback, id, lastUpdatedTimestamp, messageId, @@ -213,6 +228,7 @@ public String toString() { .add("conversationId", conversationId) .add("createdTimestamp", createdTimestamp) .add("error", error) + .add("feedback", feedback) .add("id", id) .add("lastUpdatedTimestamp", lastUpdatedTimestamp) .add("messageId", messageId) diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/Group.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/Group.java index a57cb180c..bc5b0fe30 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/Group.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iam/Group.java @@ -24,7 +24,7 @@ public class Group { @JsonProperty("entitlements") private Collection entitlements; - /** */ + /** external_id should be unique for identifying groups */ @JsonProperty("externalId") private String externalId; diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iamv2/AccountIamV2API.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iamv2/AccountIamV2API.java new file mode 100755 index 000000000..431df6742 --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iamv2/AccountIamV2API.java @@ -0,0 +1,78 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. +package com.databricks.sdk.service.iamv2; + +import com.databricks.sdk.core.ApiClient; +import com.databricks.sdk.support.Generated; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * These APIs are used to manage identities and the workspace access of these identities in + * . + */ +@Generated +public class AccountIamV2API { + private static final Logger LOG = LoggerFactory.getLogger(AccountIamV2API.class); + + private final AccountIamV2Service impl; + + /** Regular-use constructor */ + public AccountIamV2API(ApiClient apiClient) { + impl = new AccountIamV2Impl(apiClient); + } + + /** Constructor for mocks */ + public AccountIamV2API(AccountIamV2Service mock) { + impl = mock; + } + + public WorkspaceAccessDetail getWorkspaceAccessDetail(long workspaceId, long principalId) { + return getWorkspaceAccessDetail( + new GetWorkspaceAccessDetailRequest() + .setWorkspaceId(workspaceId) + .setPrincipalId(principalId)); + } + + /** + * Returns the access details for a principal in a workspace. Allows for checking access details + * for any provisioned principal (user, service principal, or group) in a workspace. * Provisioned + * principal here refers to one that has been synced into Databricks from the customer's IdP or + * added explicitly to Databricks via SCIM/UI. Allows for passing in a "view" parameter to control + * what fields are returned (BASIC by default or FULL). + */ + public WorkspaceAccessDetail getWorkspaceAccessDetail(GetWorkspaceAccessDetailRequest request) { + return impl.getWorkspaceAccessDetail(request); + } + + /** + * Resolves a group with the given external ID from the customer's IdP. If the group does not + * exist, it will be created in the account. If the customer is not onboarded onto Automatic + * Identity Management (AIM), this will return an error. + */ + public ResolveGroupResponse resolveGroup(ResolveGroupRequest request) { + return impl.resolveGroup(request); + } + + /** + * Resolves an SP with the given external ID from the customer's IdP. If the SP does not exist, it + * will be created. If the customer is not onboarded onto Automatic Identity Management (AIM), + * this will return an error. + */ + public ResolveServicePrincipalResponse resolveServicePrincipal( + ResolveServicePrincipalRequest request) { + return impl.resolveServicePrincipal(request); + } + + /** + * Resolves a user with the given external ID from the customer's IdP. If the user does not exist, + * it will be created. If the customer is not onboarded onto Automatic Identity Management (AIM), + * this will return an error. + */ + public ResolveUserResponse resolveUser(ResolveUserRequest request) { + return impl.resolveUser(request); + } + + public AccountIamV2Service impl() { + return impl; + } +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iamv2/AccountIamV2Impl.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iamv2/AccountIamV2Impl.java new file mode 100755 index 000000000..c887fd39b --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iamv2/AccountIamV2Impl.java @@ -0,0 +1,86 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. +package com.databricks.sdk.service.iamv2; + +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 AccountIamV2 */ +@Generated +class AccountIamV2Impl implements AccountIamV2Service { + private final ApiClient apiClient; + + public AccountIamV2Impl(ApiClient apiClient) { + this.apiClient = apiClient; + } + + @Override + public WorkspaceAccessDetail getWorkspaceAccessDetail(GetWorkspaceAccessDetailRequest request) { + String path = + String.format( + "/api/2.0/identity/accounts/%s/workspaces/%s/workspaceAccessDetails/%s", + apiClient.configuredAccountID(), request.getWorkspaceId(), request.getPrincipalId()); + try { + Request req = new Request("GET", path); + ApiClient.setQuery(req, request); + req.withHeader("Accept", "application/json"); + return apiClient.execute(req, WorkspaceAccessDetail.class); + } catch (IOException e) { + throw new DatabricksException("IO error: " + e.getMessage(), e); + } + } + + @Override + public ResolveGroupResponse resolveGroup(ResolveGroupRequest request) { + String path = + String.format( + "/api/2.0/identity/accounts/%s/groups/resolveByExternalId", + 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, ResolveGroupResponse.class); + } catch (IOException e) { + throw new DatabricksException("IO error: " + e.getMessage(), e); + } + } + + @Override + public ResolveServicePrincipalResponse resolveServicePrincipal( + ResolveServicePrincipalRequest request) { + String path = + String.format( + "/api/2.0/identity/accounts/%s/servicePrincipals/resolveByExternalId", + 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, ResolveServicePrincipalResponse.class); + } catch (IOException e) { + throw new DatabricksException("IO error: " + e.getMessage(), e); + } + } + + @Override + public ResolveUserResponse resolveUser(ResolveUserRequest request) { + String path = + String.format( + "/api/2.0/identity/accounts/%s/users/resolveByExternalId", + 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, ResolveUserResponse.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/iamv2/AccountIamV2Service.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iamv2/AccountIamV2Service.java new file mode 100755 index 000000000..2a56ad630 --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iamv2/AccountIamV2Service.java @@ -0,0 +1,47 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. +package com.databricks.sdk.service.iamv2; + +import com.databricks.sdk.support.Generated; + +/** + * These APIs are used to manage identities and the workspace access of these identities in + * . + * + *

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

Evolving: this interface is under development. Method signatures may change. + */ +@Generated +public interface AccountIamV2Service { + /** + * Returns the access details for a principal in a workspace. Allows for checking access details + * for any provisioned principal (user, service principal, or group) in a workspace. * Provisioned + * principal here refers to one that has been synced into Databricks from the customer's IdP or + * added explicitly to Databricks via SCIM/UI. Allows for passing in a "view" parameter to control + * what fields are returned (BASIC by default or FULL). + */ + WorkspaceAccessDetail getWorkspaceAccessDetail( + GetWorkspaceAccessDetailRequest getWorkspaceAccessDetailRequest); + + /** + * Resolves a group with the given external ID from the customer's IdP. If the group does not + * exist, it will be created in the account. If the customer is not onboarded onto Automatic + * Identity Management (AIM), this will return an error. + */ + ResolveGroupResponse resolveGroup(ResolveGroupRequest resolveGroupRequest); + + /** + * Resolves an SP with the given external ID from the customer's IdP. If the SP does not exist, it + * will be created. If the customer is not onboarded onto Automatic Identity Management (AIM), + * this will return an error. + */ + ResolveServicePrincipalResponse resolveServicePrincipal( + ResolveServicePrincipalRequest resolveServicePrincipalRequest); + + /** + * Resolves a user with the given external ID from the customer's IdP. If the user does not exist, + * it will be created. If the customer is not onboarded onto Automatic Identity Management (AIM), + * this will return an error. + */ + ResolveUserResponse resolveUser(ResolveUserRequest resolveUserRequest); +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iamv2/GetWorkspaceAccessDetailLocalRequest.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iamv2/GetWorkspaceAccessDetailLocalRequest.java new file mode 100755 index 000000000..52923abdc --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iamv2/GetWorkspaceAccessDetailLocalRequest.java @@ -0,0 +1,62 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. + +package com.databricks.sdk.service.iamv2; + +import com.databricks.sdk.support.Generated; +import com.databricks.sdk.support.QueryParam; +import com.databricks.sdk.support.ToStringer; +import com.fasterxml.jackson.annotation.JsonIgnore; +import java.util.Objects; + +@Generated +public class GetWorkspaceAccessDetailLocalRequest { + /** + * Required. The internal ID of the principal (user/sp/group) for which the access details are + * being requested. + */ + @JsonIgnore private Long principalId; + + /** Controls what fields are returned. */ + @JsonIgnore + @QueryParam("view") + private WorkspaceAccessDetailView view; + + public GetWorkspaceAccessDetailLocalRequest setPrincipalId(Long principalId) { + this.principalId = principalId; + return this; + } + + public Long getPrincipalId() { + return principalId; + } + + public GetWorkspaceAccessDetailLocalRequest setView(WorkspaceAccessDetailView view) { + this.view = view; + return this; + } + + public WorkspaceAccessDetailView getView() { + return view; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + GetWorkspaceAccessDetailLocalRequest that = (GetWorkspaceAccessDetailLocalRequest) o; + return Objects.equals(principalId, that.principalId) && Objects.equals(view, that.view); + } + + @Override + public int hashCode() { + return Objects.hash(principalId, view); + } + + @Override + public String toString() { + return new ToStringer(GetWorkspaceAccessDetailLocalRequest.class) + .add("principalId", principalId) + .add("view", view) + .toString(); + } +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iamv2/GetWorkspaceAccessDetailRequest.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iamv2/GetWorkspaceAccessDetailRequest.java new file mode 100755 index 000000000..39e1a686d --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iamv2/GetWorkspaceAccessDetailRequest.java @@ -0,0 +1,77 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. + +package com.databricks.sdk.service.iamv2; + +import com.databricks.sdk.support.Generated; +import com.databricks.sdk.support.QueryParam; +import com.databricks.sdk.support.ToStringer; +import com.fasterxml.jackson.annotation.JsonIgnore; +import java.util.Objects; + +@Generated +public class GetWorkspaceAccessDetailRequest { + /** + * Required. The internal ID of the principal (user/sp/group) for which the access details are + * being requested. + */ + @JsonIgnore private Long principalId; + + /** Controls what fields are returned. */ + @JsonIgnore + @QueryParam("view") + private WorkspaceAccessDetailView view; + + /** Required. The workspace ID for which the access details are being requested. */ + @JsonIgnore private Long workspaceId; + + public GetWorkspaceAccessDetailRequest setPrincipalId(Long principalId) { + this.principalId = principalId; + return this; + } + + public Long getPrincipalId() { + return principalId; + } + + public GetWorkspaceAccessDetailRequest setView(WorkspaceAccessDetailView view) { + this.view = view; + return this; + } + + public WorkspaceAccessDetailView getView() { + return view; + } + + public GetWorkspaceAccessDetailRequest setWorkspaceId(Long workspaceId) { + this.workspaceId = workspaceId; + return this; + } + + public Long getWorkspaceId() { + return workspaceId; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + GetWorkspaceAccessDetailRequest that = (GetWorkspaceAccessDetailRequest) o; + return Objects.equals(principalId, that.principalId) + && Objects.equals(view, that.view) + && Objects.equals(workspaceId, that.workspaceId); + } + + @Override + public int hashCode() { + return Objects.hash(principalId, view, workspaceId); + } + + @Override + public String toString() { + return new ToStringer(GetWorkspaceAccessDetailRequest.class) + .add("principalId", principalId) + .add("view", view) + .add("workspaceId", workspaceId) + .toString(); + } +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iamv2/Group.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iamv2/Group.java new file mode 100755 index 000000000..c956bf858 --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iamv2/Group.java @@ -0,0 +1,90 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. + +package com.databricks.sdk.service.iamv2; + +import com.databricks.sdk.support.Generated; +import com.databricks.sdk.support.ToStringer; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +/** The details of a Group resource. */ +@Generated +public class Group { + /** The parent account ID for group in Databricks. */ + @JsonProperty("account_id") + private String accountId; + + /** ExternalId of the group in the customer's IdP. */ + @JsonProperty("external_id") + private String externalId; + + /** Display name of the group. */ + @JsonProperty("group_name") + private String groupName; + + /** Internal group ID of the group in Databricks. */ + @JsonProperty("internal_id") + private Long internalId; + + public Group setAccountId(String accountId) { + this.accountId = accountId; + return this; + } + + public String getAccountId() { + return accountId; + } + + public Group setExternalId(String externalId) { + this.externalId = externalId; + return this; + } + + public String getExternalId() { + return externalId; + } + + public Group setGroupName(String groupName) { + this.groupName = groupName; + return this; + } + + public String getGroupName() { + return groupName; + } + + public Group setInternalId(Long internalId) { + this.internalId = internalId; + return this; + } + + public Long getInternalId() { + return internalId; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + Group that = (Group) o; + return Objects.equals(accountId, that.accountId) + && Objects.equals(externalId, that.externalId) + && Objects.equals(groupName, that.groupName) + && Objects.equals(internalId, that.internalId); + } + + @Override + public int hashCode() { + return Objects.hash(accountId, externalId, groupName, internalId); + } + + @Override + public String toString() { + return new ToStringer(Group.class) + .add("accountId", accountId) + .add("externalId", externalId) + .add("groupName", groupName) + .add("internalId", internalId) + .toString(); + } +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iamv2/PrincipalType.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iamv2/PrincipalType.java new file mode 100755 index 000000000..35bda5ab4 --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iamv2/PrincipalType.java @@ -0,0 +1,13 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. + +package com.databricks.sdk.service.iamv2; + +import com.databricks.sdk.support.Generated; + +/** The type of the principal (user/sp/group). */ +@Generated +public enum PrincipalType { + GROUP, + SERVICE_PRINCIPAL, + USER, +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iamv2/ResolveGroupProxyRequest.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iamv2/ResolveGroupProxyRequest.java new file mode 100755 index 000000000..f49573b95 --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iamv2/ResolveGroupProxyRequest.java @@ -0,0 +1,46 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. + +package com.databricks.sdk.service.iamv2; + +import com.databricks.sdk.support.Generated; +import com.databricks.sdk.support.ToStringer; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +/** + * Request message for resolving a group with the given external ID from the customer's IdP into + * Databricks. Will resolve metadata such as the group's groupname, and inherited parent groups. + */ +@Generated +public class ResolveGroupProxyRequest { + /** Required. The external ID of the group in the customer's IdP. */ + @JsonProperty("external_id") + private String externalId; + + public ResolveGroupProxyRequest setExternalId(String externalId) { + this.externalId = externalId; + return this; + } + + public String getExternalId() { + return externalId; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + ResolveGroupProxyRequest that = (ResolveGroupProxyRequest) o; + return Objects.equals(externalId, that.externalId); + } + + @Override + public int hashCode() { + return Objects.hash(externalId); + } + + @Override + public String toString() { + return new ToStringer(ResolveGroupProxyRequest.class).add("externalId", externalId).toString(); + } +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iamv2/ResolveGroupRequest.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iamv2/ResolveGroupRequest.java new file mode 100755 index 000000000..2169e740a --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iamv2/ResolveGroupRequest.java @@ -0,0 +1,46 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. + +package com.databricks.sdk.service.iamv2; + +import com.databricks.sdk.support.Generated; +import com.databricks.sdk.support.ToStringer; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +/** + * Request message for resolving a group with the given external ID from the customer's IdP into + * Databricks. Will resolve metadata such as the group's groupname, and inherited parent groups. + */ +@Generated +public class ResolveGroupRequest { + /** Required. The external ID of the group in the customer's IdP. */ + @JsonProperty("external_id") + private String externalId; + + public ResolveGroupRequest setExternalId(String externalId) { + this.externalId = externalId; + return this; + } + + public String getExternalId() { + return externalId; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + ResolveGroupRequest that = (ResolveGroupRequest) o; + return Objects.equals(externalId, that.externalId); + } + + @Override + public int hashCode() { + return Objects.hash(externalId); + } + + @Override + public String toString() { + return new ToStringer(ResolveGroupRequest.class).add("externalId", externalId).toString(); + } +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iamv2/ResolveGroupResponse.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iamv2/ResolveGroupResponse.java new file mode 100755 index 000000000..d93829753 --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iamv2/ResolveGroupResponse.java @@ -0,0 +1,42 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. + +package com.databricks.sdk.service.iamv2; + +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 ResolveGroupResponse { + /** The group that was resolved. */ + @JsonProperty("group") + private Group group; + + public ResolveGroupResponse setGroup(Group group) { + this.group = group; + return this; + } + + public Group getGroup() { + return group; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + ResolveGroupResponse that = (ResolveGroupResponse) o; + return Objects.equals(group, that.group); + } + + @Override + public int hashCode() { + return Objects.hash(group); + } + + @Override + public String toString() { + return new ToStringer(ResolveGroupResponse.class).add("group", group).toString(); + } +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iamv2/ResolveServicePrincipalProxyRequest.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iamv2/ResolveServicePrincipalProxyRequest.java new file mode 100755 index 000000000..3f058b9cd --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iamv2/ResolveServicePrincipalProxyRequest.java @@ -0,0 +1,49 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. + +package com.databricks.sdk.service.iamv2; + +import com.databricks.sdk.support.Generated; +import com.databricks.sdk.support.ToStringer; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +/** + * Request message for resolving a service principal with the given external ID from the customer's + * IdP into Databricks. Will resolve metadata such as the service principal's displayname, status, + * and inherited parent groups. + */ +@Generated +public class ResolveServicePrincipalProxyRequest { + /** Required. The external ID of the service principal in the customer's IdP. */ + @JsonProperty("external_id") + private String externalId; + + public ResolveServicePrincipalProxyRequest setExternalId(String externalId) { + this.externalId = externalId; + return this; + } + + public String getExternalId() { + return externalId; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + ResolveServicePrincipalProxyRequest that = (ResolveServicePrincipalProxyRequest) o; + return Objects.equals(externalId, that.externalId); + } + + @Override + public int hashCode() { + return Objects.hash(externalId); + } + + @Override + public String toString() { + return new ToStringer(ResolveServicePrincipalProxyRequest.class) + .add("externalId", externalId) + .toString(); + } +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iamv2/ResolveServicePrincipalRequest.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iamv2/ResolveServicePrincipalRequest.java new file mode 100755 index 000000000..84a647848 --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iamv2/ResolveServicePrincipalRequest.java @@ -0,0 +1,49 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. + +package com.databricks.sdk.service.iamv2; + +import com.databricks.sdk.support.Generated; +import com.databricks.sdk.support.ToStringer; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +/** + * Request message for resolving a service principal with the given external ID from the customer's + * IdP into Databricks. Will resolve metadata such as the service principal's displayname, status, + * and inherited parent groups. + */ +@Generated +public class ResolveServicePrincipalRequest { + /** Required. The external ID of the service principal in the customer's IdP. */ + @JsonProperty("external_id") + private String externalId; + + public ResolveServicePrincipalRequest setExternalId(String externalId) { + this.externalId = externalId; + return this; + } + + public String getExternalId() { + return externalId; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + ResolveServicePrincipalRequest that = (ResolveServicePrincipalRequest) o; + return Objects.equals(externalId, that.externalId); + } + + @Override + public int hashCode() { + return Objects.hash(externalId); + } + + @Override + public String toString() { + return new ToStringer(ResolveServicePrincipalRequest.class) + .add("externalId", externalId) + .toString(); + } +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iamv2/ResolveServicePrincipalResponse.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iamv2/ResolveServicePrincipalResponse.java new file mode 100755 index 000000000..037ed6bd0 --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iamv2/ResolveServicePrincipalResponse.java @@ -0,0 +1,44 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. + +package com.databricks.sdk.service.iamv2; + +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 ResolveServicePrincipalResponse { + /** The service principal that was resolved. */ + @JsonProperty("service_principal") + private ServicePrincipal servicePrincipal; + + public ResolveServicePrincipalResponse setServicePrincipal(ServicePrincipal servicePrincipal) { + this.servicePrincipal = servicePrincipal; + return this; + } + + public ServicePrincipal getServicePrincipal() { + return servicePrincipal; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + ResolveServicePrincipalResponse that = (ResolveServicePrincipalResponse) o; + return Objects.equals(servicePrincipal, that.servicePrincipal); + } + + @Override + public int hashCode() { + return Objects.hash(servicePrincipal); + } + + @Override + public String toString() { + return new ToStringer(ResolveServicePrincipalResponse.class) + .add("servicePrincipal", servicePrincipal) + .toString(); + } +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iamv2/ResolveUserProxyRequest.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iamv2/ResolveUserProxyRequest.java new file mode 100755 index 000000000..cda2a4f70 --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iamv2/ResolveUserProxyRequest.java @@ -0,0 +1,47 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. + +package com.databricks.sdk.service.iamv2; + +import com.databricks.sdk.support.Generated; +import com.databricks.sdk.support.ToStringer; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +/** + * Request message for resolving a user with the given external ID from the customer's IdP into + * Databricks. Will resolve metadata such as the user's displayname, status, and inherited parent + * groups. + */ +@Generated +public class ResolveUserProxyRequest { + /** Required. The external ID of the user in the customer's IdP. */ + @JsonProperty("external_id") + private String externalId; + + public ResolveUserProxyRequest setExternalId(String externalId) { + this.externalId = externalId; + return this; + } + + public String getExternalId() { + return externalId; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + ResolveUserProxyRequest that = (ResolveUserProxyRequest) o; + return Objects.equals(externalId, that.externalId); + } + + @Override + public int hashCode() { + return Objects.hash(externalId); + } + + @Override + public String toString() { + return new ToStringer(ResolveUserProxyRequest.class).add("externalId", externalId).toString(); + } +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iamv2/ResolveUserRequest.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iamv2/ResolveUserRequest.java new file mode 100755 index 000000000..bcca02a53 --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iamv2/ResolveUserRequest.java @@ -0,0 +1,47 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. + +package com.databricks.sdk.service.iamv2; + +import com.databricks.sdk.support.Generated; +import com.databricks.sdk.support.ToStringer; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +/** + * Request message for resolving a user with the given external ID from the customer's IdP into + * Databricks. Will resolve metadata such as the user's displayname, status, and inherited parent + * groups. + */ +@Generated +public class ResolveUserRequest { + /** Required. The external ID of the user in the customer's IdP. */ + @JsonProperty("external_id") + private String externalId; + + public ResolveUserRequest setExternalId(String externalId) { + this.externalId = externalId; + return this; + } + + public String getExternalId() { + return externalId; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + ResolveUserRequest that = (ResolveUserRequest) o; + return Objects.equals(externalId, that.externalId); + } + + @Override + public int hashCode() { + return Objects.hash(externalId); + } + + @Override + public String toString() { + return new ToStringer(ResolveUserRequest.class).add("externalId", externalId).toString(); + } +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iamv2/ResolveUserResponse.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iamv2/ResolveUserResponse.java new file mode 100755 index 000000000..471f37854 --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iamv2/ResolveUserResponse.java @@ -0,0 +1,42 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. + +package com.databricks.sdk.service.iamv2; + +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 ResolveUserResponse { + /** The user that was resolved. */ + @JsonProperty("user") + private User user; + + public ResolveUserResponse setUser(User user) { + this.user = user; + return this; + } + + public User getUser() { + return user; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + ResolveUserResponse that = (ResolveUserResponse) o; + return Objects.equals(user, that.user); + } + + @Override + public int hashCode() { + return Objects.hash(user); + } + + @Override + public String toString() { + return new ToStringer(ResolveUserResponse.class).add("user", user).toString(); + } +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iamv2/ServicePrincipal.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iamv2/ServicePrincipal.java new file mode 100755 index 000000000..06e3edbe2 --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iamv2/ServicePrincipal.java @@ -0,0 +1,121 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. + +package com.databricks.sdk.service.iamv2; + +import com.databricks.sdk.support.Generated; +import com.databricks.sdk.support.ToStringer; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +/** The details of a ServicePrincipal resource. */ +@Generated +public class ServicePrincipal { + /** The parent account ID for the service principal in Databricks. */ + @JsonProperty("account_id") + private String accountId; + + /** The activity status of a service principal in a Databricks account. */ + @JsonProperty("account_sp_status") + private State accountSpStatus; + + /** Application ID of the service principal. */ + @JsonProperty("application_id") + private String applicationId; + + /** Display name of the service principal. */ + @JsonProperty("display_name") + private String displayName; + + /** ExternalId of the service principal in the customer's IdP. */ + @JsonProperty("external_id") + private String externalId; + + /** Internal service principal ID of the service principal in Databricks. */ + @JsonProperty("internal_id") + private Long internalId; + + public ServicePrincipal setAccountId(String accountId) { + this.accountId = accountId; + return this; + } + + public String getAccountId() { + return accountId; + } + + public ServicePrincipal setAccountSpStatus(State accountSpStatus) { + this.accountSpStatus = accountSpStatus; + return this; + } + + public State getAccountSpStatus() { + return accountSpStatus; + } + + public ServicePrincipal setApplicationId(String applicationId) { + this.applicationId = applicationId; + return this; + } + + public String getApplicationId() { + return applicationId; + } + + public ServicePrincipal setDisplayName(String displayName) { + this.displayName = displayName; + return this; + } + + public String getDisplayName() { + return displayName; + } + + public ServicePrincipal setExternalId(String externalId) { + this.externalId = externalId; + return this; + } + + public String getExternalId() { + return externalId; + } + + public ServicePrincipal setInternalId(Long internalId) { + this.internalId = internalId; + return this; + } + + public Long getInternalId() { + return internalId; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + ServicePrincipal that = (ServicePrincipal) o; + return Objects.equals(accountId, that.accountId) + && Objects.equals(accountSpStatus, that.accountSpStatus) + && Objects.equals(applicationId, that.applicationId) + && Objects.equals(displayName, that.displayName) + && Objects.equals(externalId, that.externalId) + && Objects.equals(internalId, that.internalId); + } + + @Override + public int hashCode() { + return Objects.hash( + accountId, accountSpStatus, applicationId, displayName, externalId, internalId); + } + + @Override + public String toString() { + return new ToStringer(ServicePrincipal.class) + .add("accountId", accountId) + .add("accountSpStatus", accountSpStatus) + .add("applicationId", applicationId) + .add("displayName", displayName) + .add("externalId", externalId) + .add("internalId", internalId) + .toString(); + } +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iamv2/State.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iamv2/State.java new file mode 100755 index 000000000..b385fb00c --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iamv2/State.java @@ -0,0 +1,12 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. + +package com.databricks.sdk.service.iamv2; + +import com.databricks.sdk.support.Generated; + +/** The activity status of a user or service principal in a Databricks account or workspace. */ +@Generated +public enum State { + ACTIVE, + INACTIVE, +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iamv2/User.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iamv2/User.java new file mode 100755 index 000000000..5f5c699d9 --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iamv2/User.java @@ -0,0 +1,120 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. + +package com.databricks.sdk.service.iamv2; + +import com.databricks.sdk.support.Generated; +import com.databricks.sdk.support.ToStringer; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +/** The details of a User resource. */ +@Generated +public class User { + /** The accountId parent of the user in Databricks. */ + @JsonProperty("account_id") + private String accountId; + + /** The activity status of a user in a Databricks account. */ + @JsonProperty("account_user_status") + private State accountUserStatus; + + /** ExternalId of the user in the customer's IdP. */ + @JsonProperty("external_id") + private String externalId; + + /** Internal userId of the user in Databricks. */ + @JsonProperty("internal_id") + private Long internalId; + + /** */ + @JsonProperty("name") + private UserName name; + + /** Username/email of the user. */ + @JsonProperty("username") + private String username; + + public User setAccountId(String accountId) { + this.accountId = accountId; + return this; + } + + public String getAccountId() { + return accountId; + } + + public User setAccountUserStatus(State accountUserStatus) { + this.accountUserStatus = accountUserStatus; + return this; + } + + public State getAccountUserStatus() { + return accountUserStatus; + } + + public User setExternalId(String externalId) { + this.externalId = externalId; + return this; + } + + public String getExternalId() { + return externalId; + } + + public User setInternalId(Long internalId) { + this.internalId = internalId; + return this; + } + + public Long getInternalId() { + return internalId; + } + + public User setName(UserName name) { + this.name = name; + return this; + } + + public UserName getName() { + return name; + } + + public User 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; + User that = (User) o; + return Objects.equals(accountId, that.accountId) + && Objects.equals(accountUserStatus, that.accountUserStatus) + && Objects.equals(externalId, that.externalId) + && Objects.equals(internalId, that.internalId) + && Objects.equals(name, that.name) + && Objects.equals(username, that.username); + } + + @Override + public int hashCode() { + return Objects.hash(accountId, accountUserStatus, externalId, internalId, name, username); + } + + @Override + public String toString() { + return new ToStringer(User.class) + .add("accountId", accountId) + .add("accountUserStatus", accountUserStatus) + .add("externalId", externalId) + .add("internalId", internalId) + .add("name", name) + .add("username", username) + .toString(); + } +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iamv2/UserName.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iamv2/UserName.java new file mode 100755 index 000000000..5a69df404 --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iamv2/UserName.java @@ -0,0 +1,58 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. + +package com.databricks.sdk.service.iamv2; + +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 UserName { + /** */ + @JsonProperty("family_name") + private String familyName; + + /** */ + @JsonProperty("given_name") + private String givenName; + + public UserName setFamilyName(String familyName) { + this.familyName = familyName; + return this; + } + + public String getFamilyName() { + return familyName; + } + + public UserName setGivenName(String givenName) { + this.givenName = givenName; + return this; + } + + public String getGivenName() { + return givenName; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + UserName that = (UserName) o; + return Objects.equals(familyName, that.familyName) && Objects.equals(givenName, that.givenName); + } + + @Override + public int hashCode() { + return Objects.hash(familyName, givenName); + } + + @Override + public String toString() { + return new ToStringer(UserName.class) + .add("familyName", familyName) + .add("givenName", givenName) + .toString(); + } +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iamv2/WorkspaceAccessDetail.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iamv2/WorkspaceAccessDetail.java new file mode 100755 index 000000000..98309d8d1 --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iamv2/WorkspaceAccessDetail.java @@ -0,0 +1,139 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. + +package com.databricks.sdk.service.iamv2; + +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; + +/** The details of a principal's access to a workspace. */ +@Generated +public class WorkspaceAccessDetail { + /** */ + @JsonProperty("access_type") + private WorkspaceAccessDetailAccessType accessType; + + /** The account ID parent of the workspace where the principal has access. */ + @JsonProperty("account_id") + private String accountId; + + /** The permissions granted to the principal in the workspace. */ + @JsonProperty("permissions") + private Collection permissions; + + /** The internal ID of the principal (user/sp/group) in Databricks. */ + @JsonProperty("principal_id") + private Long principalId; + + /** */ + @JsonProperty("principal_type") + private PrincipalType principalType; + + /** + * The activity status of the principal in the workspace. Not applicable for groups at the moment. + */ + @JsonProperty("status") + private State status; + + /** The workspace ID where the principal has access. */ + @JsonProperty("workspace_id") + private Long workspaceId; + + public WorkspaceAccessDetail setAccessType(WorkspaceAccessDetailAccessType accessType) { + this.accessType = accessType; + return this; + } + + public WorkspaceAccessDetailAccessType getAccessType() { + return accessType; + } + + public WorkspaceAccessDetail setAccountId(String accountId) { + this.accountId = accountId; + return this; + } + + public String getAccountId() { + return accountId; + } + + public WorkspaceAccessDetail setPermissions(Collection permissions) { + this.permissions = permissions; + return this; + } + + public Collection getPermissions() { + return permissions; + } + + public WorkspaceAccessDetail setPrincipalId(Long principalId) { + this.principalId = principalId; + return this; + } + + public Long getPrincipalId() { + return principalId; + } + + public WorkspaceAccessDetail setPrincipalType(PrincipalType principalType) { + this.principalType = principalType; + return this; + } + + public PrincipalType getPrincipalType() { + return principalType; + } + + public WorkspaceAccessDetail setStatus(State status) { + this.status = status; + return this; + } + + public State getStatus() { + return status; + } + + public WorkspaceAccessDetail setWorkspaceId(Long workspaceId) { + this.workspaceId = workspaceId; + return this; + } + + public Long getWorkspaceId() { + return workspaceId; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + WorkspaceAccessDetail that = (WorkspaceAccessDetail) o; + return Objects.equals(accessType, that.accessType) + && Objects.equals(accountId, that.accountId) + && Objects.equals(permissions, that.permissions) + && Objects.equals(principalId, that.principalId) + && Objects.equals(principalType, that.principalType) + && Objects.equals(status, that.status) + && Objects.equals(workspaceId, that.workspaceId); + } + + @Override + public int hashCode() { + return Objects.hash( + accessType, accountId, permissions, principalId, principalType, status, workspaceId); + } + + @Override + public String toString() { + return new ToStringer(WorkspaceAccessDetail.class) + .add("accessType", accessType) + .add("accountId", accountId) + .add("permissions", permissions) + .add("principalId", principalId) + .add("principalType", principalType) + .add("status", status) + .add("workspaceId", workspaceId) + .toString(); + } +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iamv2/WorkspaceAccessDetailAccessType.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iamv2/WorkspaceAccessDetailAccessType.java new file mode 100755 index 000000000..9c46dae1a --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iamv2/WorkspaceAccessDetailAccessType.java @@ -0,0 +1,12 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. + +package com.databricks.sdk.service.iamv2; + +import com.databricks.sdk.support.Generated; + +/** The type of access the principal has to the workspace. */ +@Generated +public enum WorkspaceAccessDetailAccessType { + DIRECT, + INDIRECT, +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iamv2/WorkspaceAccessDetailView.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iamv2/WorkspaceAccessDetailView.java new file mode 100755 index 000000000..8495b5a8f --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iamv2/WorkspaceAccessDetailView.java @@ -0,0 +1,12 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. + +package com.databricks.sdk.service.iamv2; + +import com.databricks.sdk.support.Generated; + +/** Controls what fields are returned in the GetWorkspaceAccessDetail response. */ +@Generated +public enum WorkspaceAccessDetailView { + BASIC, + FULL, +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iamv2/WorkspaceIamV2API.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iamv2/WorkspaceIamV2API.java new file mode 100755 index 000000000..a9c53bcdf --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iamv2/WorkspaceIamV2API.java @@ -0,0 +1,77 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. +package com.databricks.sdk.service.iamv2; + +import com.databricks.sdk.core.ApiClient; +import com.databricks.sdk.support.Generated; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * These APIs are used to manage identities and the workspace access of these identities in + * . + */ +@Generated +public class WorkspaceIamV2API { + private static final Logger LOG = LoggerFactory.getLogger(WorkspaceIamV2API.class); + + private final WorkspaceIamV2Service impl; + + /** Regular-use constructor */ + public WorkspaceIamV2API(ApiClient apiClient) { + impl = new WorkspaceIamV2Impl(apiClient); + } + + /** Constructor for mocks */ + public WorkspaceIamV2API(WorkspaceIamV2Service mock) { + impl = mock; + } + + public WorkspaceAccessDetail getWorkspaceAccessDetailLocal(long principalId) { + return getWorkspaceAccessDetailLocal( + new GetWorkspaceAccessDetailLocalRequest().setPrincipalId(principalId)); + } + + /** + * Returns the access details for a principal in the current workspace. Allows for checking access + * details for any provisioned principal (user, service principal, or group) in the current + * workspace. * Provisioned principal here refers to one that has been synced into Databricks from + * the customer's IdP or added explicitly to Databricks via SCIM/UI. Allows for passing in a + * "view" parameter to control what fields are returned (BASIC by default or FULL). + */ + public WorkspaceAccessDetail getWorkspaceAccessDetailLocal( + GetWorkspaceAccessDetailLocalRequest request) { + return impl.getWorkspaceAccessDetailLocal(request); + } + + /** + * Resolves a group with the given external ID from the customer's IdP. If the group does not + * exist, it will be created in the account. If the customer is not onboarded onto Automatic + * Identity Management (AIM), this will return an error. + */ + public ResolveGroupResponse resolveGroupProxy(ResolveGroupProxyRequest request) { + return impl.resolveGroupProxy(request); + } + + /** + * Resolves an SP with the given external ID from the customer's IdP. If the SP does not exist, it + * will be created. If the customer is not onboarded onto Automatic Identity Management (AIM), + * this will return an error. + */ + public ResolveServicePrincipalResponse resolveServicePrincipalProxy( + ResolveServicePrincipalProxyRequest request) { + return impl.resolveServicePrincipalProxy(request); + } + + /** + * Resolves a user with the given external ID from the customer's IdP. If the user does not exist, + * it will be created. If the customer is not onboarded onto Automatic Identity Management (AIM), + * this will return an error. + */ + public ResolveUserResponse resolveUserProxy(ResolveUserProxyRequest request) { + return impl.resolveUserProxy(request); + } + + public WorkspaceIamV2Service impl() { + return impl; + } +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iamv2/WorkspaceIamV2Impl.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iamv2/WorkspaceIamV2Impl.java new file mode 100755 index 000000000..91f88bc33 --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iamv2/WorkspaceIamV2Impl.java @@ -0,0 +1,76 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. +package com.databricks.sdk.service.iamv2; + +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 WorkspaceIamV2 */ +@Generated +class WorkspaceIamV2Impl implements WorkspaceIamV2Service { + private final ApiClient apiClient; + + public WorkspaceIamV2Impl(ApiClient apiClient) { + this.apiClient = apiClient; + } + + @Override + public WorkspaceAccessDetail getWorkspaceAccessDetailLocal( + GetWorkspaceAccessDetailLocalRequest request) { + String path = + String.format("/api/2.0/identity/workspaceAccessDetails/%s", request.getPrincipalId()); + try { + Request req = new Request("GET", path); + ApiClient.setQuery(req, request); + req.withHeader("Accept", "application/json"); + return apiClient.execute(req, WorkspaceAccessDetail.class); + } catch (IOException e) { + throw new DatabricksException("IO error: " + e.getMessage(), e); + } + } + + @Override + public ResolveGroupResponse resolveGroupProxy(ResolveGroupProxyRequest request) { + String path = "/api/2.0/identity/groups/resolveByExternalId"; + 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, ResolveGroupResponse.class); + } catch (IOException e) { + throw new DatabricksException("IO error: " + e.getMessage(), e); + } + } + + @Override + public ResolveServicePrincipalResponse resolveServicePrincipalProxy( + ResolveServicePrincipalProxyRequest request) { + String path = "/api/2.0/identity/servicePrincipals/resolveByExternalId"; + 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, ResolveServicePrincipalResponse.class); + } catch (IOException e) { + throw new DatabricksException("IO error: " + e.getMessage(), e); + } + } + + @Override + public ResolveUserResponse resolveUserProxy(ResolveUserProxyRequest request) { + String path = "/api/2.0/identity/users/resolveByExternalId"; + 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, ResolveUserResponse.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/iamv2/WorkspaceIamV2Service.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iamv2/WorkspaceIamV2Service.java new file mode 100755 index 000000000..f20471423 --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iamv2/WorkspaceIamV2Service.java @@ -0,0 +1,47 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. +package com.databricks.sdk.service.iamv2; + +import com.databricks.sdk.support.Generated; + +/** + * These APIs are used to manage identities and the workspace access of these identities in + * . + * + *

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

Evolving: this interface is under development. Method signatures may change. + */ +@Generated +public interface WorkspaceIamV2Service { + /** + * Returns the access details for a principal in the current workspace. Allows for checking access + * details for any provisioned principal (user, service principal, or group) in the current + * workspace. * Provisioned principal here refers to one that has been synced into Databricks from + * the customer's IdP or added explicitly to Databricks via SCIM/UI. Allows for passing in a + * "view" parameter to control what fields are returned (BASIC by default or FULL). + */ + WorkspaceAccessDetail getWorkspaceAccessDetailLocal( + GetWorkspaceAccessDetailLocalRequest getWorkspaceAccessDetailLocalRequest); + + /** + * Resolves a group with the given external ID from the customer's IdP. If the group does not + * exist, it will be created in the account. If the customer is not onboarded onto Automatic + * Identity Management (AIM), this will return an error. + */ + ResolveGroupResponse resolveGroupProxy(ResolveGroupProxyRequest resolveGroupProxyRequest); + + /** + * Resolves an SP with the given external ID from the customer's IdP. If the SP does not exist, it + * will be created. If the customer is not onboarded onto Automatic Identity Management (AIM), + * this will return an error. + */ + ResolveServicePrincipalResponse resolveServicePrincipalProxy( + ResolveServicePrincipalProxyRequest resolveServicePrincipalProxyRequest); + + /** + * Resolves a user with the given external ID from the customer's IdP. If the user does not exist, + * it will be created. If the customer is not onboarded onto Automatic Identity Management (AIM), + * this will return an error. + */ + ResolveUserResponse resolveUserProxy(ResolveUserProxyRequest resolveUserProxyRequest); +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iamv2/WorkspacePermission.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iamv2/WorkspacePermission.java new file mode 100755 index 000000000..8369fdfbb --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/iamv2/WorkspacePermission.java @@ -0,0 +1,12 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. + +package com.databricks.sdk.service.iamv2; + +import com.databricks.sdk.support.Generated; + +/** The type of permission a principal has to a workspace (admin/user). */ +@Generated +public enum WorkspacePermission { + ADMIN_PERMISSION, + USER_PERMISSION, +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/RunTask.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/RunTask.java index 268a3c4fd..46418668b 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/RunTask.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/RunTask.java @@ -84,10 +84,6 @@ public class RunTask { @JsonProperty("description") private String description; - /** Deprecated, field was never used in production. */ - @JsonProperty("disabled") - private Boolean disabled; - /** * The actual performance target used by the serverless run during execution. This can differ from * the client-set performance target on the request depending on whether the performance mode is @@ -419,15 +415,6 @@ public String getDescription() { return description; } - public RunTask setDisabled(Boolean disabled) { - this.disabled = disabled; - return this; - } - - public Boolean getDisabled() { - return disabled; - } - public RunTask setEffectivePerformanceTarget(PerformanceTarget effectivePerformanceTarget) { this.effectivePerformanceTarget = effectivePerformanceTarget; return this; @@ -759,7 +746,6 @@ public boolean equals(Object o) { && Objects.equals(dbtTask, that.dbtTask) && Objects.equals(dependsOn, that.dependsOn) && Objects.equals(description, that.description) - && Objects.equals(disabled, that.disabled) && Objects.equals(effectivePerformanceTarget, that.effectivePerformanceTarget) && Objects.equals(emailNotifications, that.emailNotifications) && Objects.equals(endTime, that.endTime) @@ -811,7 +797,6 @@ public int hashCode() { dbtTask, dependsOn, description, - disabled, effectivePerformanceTarget, emailNotifications, endTime, @@ -863,7 +848,6 @@ public String toString() { .add("dbtTask", dbtTask) .add("dependsOn", dependsOn) .add("description", description) - .add("disabled", disabled) .add("effectivePerformanceTarget", effectivePerformanceTarget) .add("emailNotifications", emailNotifications) .add("endTime", endTime) diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/Task.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/Task.java index 21d0c3daf..a4e7904e1 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/Task.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/Task.java @@ -62,6 +62,13 @@ public class Task { @JsonProperty("disable_auto_optimization") private Boolean disableAutoOptimization; + /** + * An optional flag to disable the task. If set to true, the task will not run even if it is part + * of a job. + */ + @JsonProperty("disabled") + private Boolean disabled; + /** * An optional set of email addresses that is notified when runs of this task begin or complete as * well as when this task is deleted. The default behavior is to not send any emails. @@ -320,6 +327,15 @@ public Boolean getDisableAutoOptimization() { return disableAutoOptimization; } + public Task setDisabled(Boolean disabled) { + this.disabled = disabled; + return this; + } + + public Boolean getDisabled() { + return disabled; + } + public Task setEmailNotifications(TaskEmailNotifications emailNotifications) { this.emailNotifications = emailNotifications; return this; @@ -568,6 +584,7 @@ public boolean equals(Object o) { && Objects.equals(dependsOn, that.dependsOn) && Objects.equals(description, that.description) && Objects.equals(disableAutoOptimization, that.disableAutoOptimization) + && Objects.equals(disabled, that.disabled) && Objects.equals(emailNotifications, that.emailNotifications) && Objects.equals(environmentKey, that.environmentKey) && Objects.equals(existingClusterId, that.existingClusterId) @@ -608,6 +625,7 @@ public int hashCode() { dependsOn, description, disableAutoOptimization, + disabled, emailNotifications, environmentKey, existingClusterId, @@ -648,6 +666,7 @@ public String toString() { .add("dependsOn", dependsOn) .add("description", description) .add("disableAutoOptimization", disableAutoOptimization) + .add("disabled", disabled) .add("emailNotifications", emailNotifications) .add("environmentKey", environmentKey) .add("existingClusterId", existingClusterId) diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/oauth2/FederationPolicy.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/oauth2/FederationPolicy.java index 842c5bea1..6bcf8c410 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/oauth2/FederationPolicy.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/oauth2/FederationPolicy.java @@ -33,13 +33,13 @@ public class FederationPolicy { @JsonProperty("oidc_policy") private OidcFederationPolicy oidcPolicy; - /** The ID of the federation policy. */ + /** The ID of the federation policy. Output only. */ @JsonProperty("policy_id") private String policyId; /** - * The service principal ID that this federation policy applies to. Only set for service principal - * federation policies. + * The service principal ID that this federation policy applies to. Output only. Only set for + * service principal federation policies. */ @JsonProperty("service_principal_id") private Long servicePrincipalId; diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/pipelines/IngestionSourceType.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/pipelines/IngestionSourceType.java index b1262d1f7..6ea6892db 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/pipelines/IngestionSourceType.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/pipelines/IngestionSourceType.java @@ -9,6 +9,7 @@ public enum IngestionSourceType { BIGQUERY, CONFLUENCE, DYNAMICS365, + FOREIGN_CATALOG, GA4_RAW_DATA, MANAGED_POSTGRESQL, META_MARKETING, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/sharing/TableInternalAttributes.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/sharing/TableInternalAttributes.java index b16c3d85a..3f225c8c7 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/sharing/TableInternalAttributes.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/sharing/TableInternalAttributes.java @@ -10,6 +10,10 @@ /** Internal information for D2D sharing that should not be disclosed to external users. */ @Generated public class TableInternalAttributes { + /** Managed Delta Metadata location for foreign iceberg tables. */ + @JsonProperty("auxiliary_managed_location") + private String auxiliaryManagedLocation; + /** * Will be populated in the reconciliation response for VIEW and FOREIGN_TABLE, with the value of * the parent UC entity's storage_location, following the same logic as getManagedEntityPath in @@ -33,6 +37,15 @@ public class TableInternalAttributes { @JsonProperty("view_definition") private String viewDefinition; + public TableInternalAttributes setAuxiliaryManagedLocation(String auxiliaryManagedLocation) { + this.auxiliaryManagedLocation = auxiliaryManagedLocation; + return this; + } + + public String getAuxiliaryManagedLocation() { + return auxiliaryManagedLocation; + } + public TableInternalAttributes setParentStorageLocation(String parentStorageLocation) { this.parentStorageLocation = parentStorageLocation; return this; @@ -74,7 +87,8 @@ public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; TableInternalAttributes that = (TableInternalAttributes) o; - return Objects.equals(parentStorageLocation, that.parentStorageLocation) + return Objects.equals(auxiliaryManagedLocation, that.auxiliaryManagedLocation) + && Objects.equals(parentStorageLocation, that.parentStorageLocation) && Objects.equals(storageLocation, that.storageLocation) && Objects.equals(typeValue, that.typeValue) && Objects.equals(viewDefinition, that.viewDefinition); @@ -82,12 +96,18 @@ public boolean equals(Object o) { @Override public int hashCode() { - return Objects.hash(parentStorageLocation, storageLocation, typeValue, viewDefinition); + return Objects.hash( + auxiliaryManagedLocation, + parentStorageLocation, + storageLocation, + typeValue, + viewDefinition); } @Override public String toString() { return new ToStringer(TableInternalAttributes.class) + .add("auxiliaryManagedLocation", auxiliaryManagedLocation) .add("parentStorageLocation", parentStorageLocation) .add("storageLocation", storageLocation) .add("typeValue", typeValue) diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/sharing/TableInternalAttributesSharedTableType.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/sharing/TableInternalAttributesSharedTableType.java index 5edaf9c6c..07f042522 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/sharing/TableInternalAttributesSharedTableType.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/sharing/TableInternalAttributesSharedTableType.java @@ -9,6 +9,7 @@ public enum TableInternalAttributesSharedTableType { DELTA_ICEBERG_TABLE, DIRECTORY_BASED_TABLE, FILE_BASED_TABLE, + FOREIGN_ICEBERG_TABLE, FOREIGN_TABLE, MATERIALIZED_VIEW, STREAMING_TABLE, diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/sql/AlertV2Evaluation.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/sql/AlertV2Evaluation.java index ad55cc8ea..5031da9d8 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/sql/AlertV2Evaluation.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/sql/AlertV2Evaluation.java @@ -13,7 +13,10 @@ public class AlertV2Evaluation { @JsonProperty("comparison_operator") private ComparisonOperator comparisonOperator; - /** Alert state if result is empty. */ + /** + * Alert state if result is empty. Please avoid setting this field to be `UNKNOWN` because + * `UNKNOWN` state is planned to be deprecated. + */ @JsonProperty("empty_result_state") private AlertEvaluationState emptyResultState; diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/sql/ListAlertsV2Response.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/sql/ListAlertsV2Response.java index d9f0f142b..6819ecdeb 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/sql/ListAlertsV2Response.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/sql/ListAlertsV2Response.java @@ -10,14 +10,27 @@ @Generated public class ListAlertsV2Response { + /** */ + @JsonProperty("alerts") + private Collection alerts; + /** */ @JsonProperty("next_page_token") private String nextPageToken; - /** */ + /** Deprecated. Use `alerts` instead. */ @JsonProperty("results") private Collection results; + public ListAlertsV2Response setAlerts(Collection alerts) { + this.alerts = alerts; + return this; + } + + public Collection getAlerts() { + return alerts; + } + public ListAlertsV2Response setNextPageToken(String nextPageToken) { this.nextPageToken = nextPageToken; return this; @@ -41,18 +54,20 @@ public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; ListAlertsV2Response that = (ListAlertsV2Response) o; - return Objects.equals(nextPageToken, that.nextPageToken) + return Objects.equals(alerts, that.alerts) + && Objects.equals(nextPageToken, that.nextPageToken) && Objects.equals(results, that.results); } @Override public int hashCode() { - return Objects.hash(nextPageToken, results); + return Objects.hash(alerts, nextPageToken, results); } @Override public String toString() { return new ToStringer(ListAlertsV2Response.class) + .add("alerts", alerts) .add("nextPageToken", nextPageToken) .add("results", results) .toString(); diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/tags/TagPoliciesAPI.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/tags/TagPoliciesAPI.java index 689dfa1ac..b266bc6ab 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/tags/TagPoliciesAPI.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/tags/TagPoliciesAPI.java @@ -7,7 +7,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -/** The Tag Policy API allows you to manage tag policies in Databricks. */ +/** The Tag Policy API allows you to manage policies for governed tags in Databricks. */ @Generated public class TagPoliciesAPI { private static final Logger LOG = LoggerFactory.getLogger(TagPoliciesAPI.class); @@ -24,7 +24,7 @@ public TagPoliciesAPI(TagPoliciesService mock) { impl = mock; } - /** Creates a new tag policy. */ + /** Creates a new tag policy, making the associated tag key governed. */ public TagPolicy createTagPolicy(CreateTagPolicyRequest request) { return impl.createTagPolicy(request); } @@ -33,7 +33,7 @@ public void deleteTagPolicy(String tagKey) { deleteTagPolicy(new DeleteTagPolicyRequest().setTagKey(tagKey)); } - /** Deletes a tag policy by its key. */ + /** Deletes a tag policy by its associated governed tag's key, leaving that tag key ungoverned. */ public void deleteTagPolicy(DeleteTagPolicyRequest request) { impl.deleteTagPolicy(request); } @@ -42,12 +42,12 @@ public TagPolicy getTagPolicy(String tagKey) { return getTagPolicy(new GetTagPolicyRequest().setTagKey(tagKey)); } - /** Gets a single tag policy by its key. */ + /** Gets a single tag policy by its associated governed tag's key. */ public TagPolicy getTagPolicy(GetTagPolicyRequest request) { return impl.getTagPolicy(request); } - /** Lists all tag policies in the account. */ + /** Lists the tag policies for all governed tags in the account. */ public Iterable listTagPolicies(ListTagPoliciesRequest request) { return new Paginator<>( request, @@ -62,7 +62,7 @@ public Iterable listTagPolicies(ListTagPoliciesRequest request) { }); } - /** Updates an existing tag policy. */ + /** Updates an existing tag policy for a single governed tag. */ public TagPolicy updateTagPolicy(UpdateTagPolicyRequest request) { return impl.updateTagPolicy(request); } diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/tags/TagPoliciesService.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/tags/TagPoliciesService.java index 0076236f7..0e9bb5fc1 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/tags/TagPoliciesService.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/tags/TagPoliciesService.java @@ -4,7 +4,7 @@ import com.databricks.sdk.support.Generated; /** - * The Tag Policy API allows you to manage tag policies in Databricks. + * The Tag Policy API allows you to manage policies for governed tags in Databricks. * *

This is the high-level interface, that contains generated methods. * @@ -12,18 +12,18 @@ */ @Generated public interface TagPoliciesService { - /** Creates a new tag policy. */ + /** Creates a new tag policy, making the associated tag key governed. */ TagPolicy createTagPolicy(CreateTagPolicyRequest createTagPolicyRequest); - /** Deletes a tag policy by its key. */ + /** Deletes a tag policy by its associated governed tag's key, leaving that tag key ungoverned. */ void deleteTagPolicy(DeleteTagPolicyRequest deleteTagPolicyRequest); - /** Gets a single tag policy by its key. */ + /** Gets a single tag policy by its associated governed tag's key. */ TagPolicy getTagPolicy(GetTagPolicyRequest getTagPolicyRequest); - /** Lists all tag policies in the account. */ + /** Lists the tag policies for all governed tags in the account. */ ListTagPoliciesResponse listTagPolicies(ListTagPoliciesRequest listTagPoliciesRequest); - /** Updates an existing tag policy. */ + /** Updates an existing tag policy for a single governed tag. */ TagPolicy updateTagPolicy(UpdateTagPolicyRequest updateTagPolicyRequest); }