Creates a new credential. + *
Creates a new credential. The type of credential to be created is determined by the + * **purpose** field, which should be either **SERVICE** or **STORAGE**. + * + *
The caller must be a metastore admin or have the metastore privilege + * **CREATE_STORAGE_CREDENTIAL** for storage credentials, or **CREATE_SERVICE_CREDENTIAL** for + * service credentials. */ public CredentialInfo createCredential(CreateCredentialRequest request) { return impl.createCredential(request); @@ -48,12 +57,18 @@ public void deleteCredential(String nameArg) { /** * Delete a credential. * - *
Deletes a credential from the metastore. The caller must be an owner of the credential. + *
Deletes a service or storage credential from the metastore. The caller must be an owner of + * the credential. */ public void deleteCredential(DeleteCredentialRequest request) { impl.deleteCredential(request); } + public TemporaryCredentials generateTemporaryServiceCredential(String credentialName) { + return generateTemporaryServiceCredential( + new GenerateTemporaryServiceCredentialRequest().setCredentialName(credentialName)); + } + /** * Generate a temporary service credential. * @@ -73,8 +88,8 @@ public CredentialInfo getCredential(String nameArg) { /** * Get a credential. * - *
Gets a credential from the metastore. The caller must be a metastore admin, the owner of the - * credential, or have any permission on the credential. + *
Gets a service or storage credential from the metastore. The caller must be a metastore + * admin, the owner of the credential, or have any permission on the credential. */ public CredentialInfo getCredential(GetCredentialRequest request) { return impl.getCredential(request); @@ -110,7 +125,7 @@ public CredentialInfo updateCredential(String nameArg) { /** * Update a credential. * - *
Updates a credential on the metastore. + *
Updates a service or storage credential on the metastore. * *
The caller must be the owner of the credential or a metastore admin or have the `MANAGE` * permission. If the caller is a metastore admin, only the __owner__ field can be changed. @@ -124,9 +139,18 @@ public CredentialInfo updateCredential(UpdateCredentialRequest request) { * *
Validates a credential. * - *
Either the __credential_name__ or the cloud-specific credential must be provided. + *
For service credentials (purpose is **SERVICE**), either the __credential_name__ or the + * cloud-specific credential must be provided. + * + *
For storage credentials (purpose is **STORAGE**), at least one of __external_location_name__ + * and __url__ need to be provided. If only one of them is provided, it will be used for + * validation. And if both are provided, the __url__ will be used for validation, and + * __external_location_name__ will be ignored when checking overlapping urls. Either the + * __credential_name__ or the cloud-specific credential must be provided. * - *
The caller must be a metastore admin or the credential owner. + *
The caller must be a metastore admin or the credential owner or have the required permission + * on the metastore and the credential (e.g., **CREATE_EXTERNAL_LOCATION** when purpose is + * **STORAGE**). */ public ValidateCredentialResponse validateCredential(ValidateCredentialRequest request) { return impl.validateCredential(request); diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/CredentialsService.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/CredentialsService.java index 2317a707..40c72204 100755 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/CredentialsService.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/CredentialsService.java @@ -21,14 +21,20 @@ public interface CredentialsService { /** * Create a credential. * - *
Creates a new credential. + *
Creates a new credential. The type of credential to be created is determined by the + * **purpose** field, which should be either **SERVICE** or **STORAGE**. + * + *
The caller must be a metastore admin or have the metastore privilege + * **CREATE_STORAGE_CREDENTIAL** for storage credentials, or **CREATE_SERVICE_CREDENTIAL** for + * service credentials. */ CredentialInfo createCredential(CreateCredentialRequest createCredentialRequest); /** * Delete a credential. * - *
Deletes a credential from the metastore. The caller must be an owner of the credential. + *
Deletes a service or storage credential from the metastore. The caller must be an owner of + * the credential. */ void deleteCredential(DeleteCredentialRequest deleteCredentialRequest); @@ -45,8 +51,8 @@ TemporaryCredentials generateTemporaryServiceCredential( /** * Get a credential. * - *
Gets a credential from the metastore. The caller must be a metastore admin, the owner of the - * credential, or have any permission on the credential. + *
Gets a service or storage credential from the metastore. The caller must be a metastore + * admin, the owner of the credential, or have any permission on the credential. */ CredentialInfo getCredential(GetCredentialRequest getCredentialRequest); @@ -64,7 +70,7 @@ TemporaryCredentials generateTemporaryServiceCredential( /** * Update a credential. * - *
Updates a credential on the metastore. + *
Updates a service or storage credential on the metastore. * *
The caller must be the owner of the credential or a metastore admin or have the `MANAGE` * permission. If the caller is a metastore admin, only the __owner__ field can be changed. @@ -76,9 +82,18 @@ TemporaryCredentials generateTemporaryServiceCredential( * *
Validates a credential. * - *
Either the __credential_name__ or the cloud-specific credential must be provided. + *
For service credentials (purpose is **SERVICE**), either the __credential_name__ or the + * cloud-specific credential must be provided. + * + *
For storage credentials (purpose is **STORAGE**), at least one of __external_location_name__ + * and __url__ need to be provided. If only one of them is provided, it will be used for + * validation. And if both are provided, the __url__ will be used for validation, and + * __external_location_name__ will be ignored when checking overlapping urls. Either the + * __credential_name__ or the cloud-specific credential must be provided. * - *
The caller must be a metastore admin or the credential owner. + *
The caller must be a metastore admin or the credential owner or have the required permission
+ * on the metastore and the credential (e.g., **CREATE_EXTERNAL_LOCATION** when purpose is
+ * **STORAGE**).
*/
ValidateCredentialResponse validateCredential(
ValidateCredentialRequest validateCredentialRequest);
diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/DeleteCredentialRequest.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/DeleteCredentialRequest.java
index a3549cb5..2a771f6b 100755
--- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/DeleteCredentialRequest.java
+++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/DeleteCredentialRequest.java
@@ -11,7 +11,10 @@
/** Delete a credential */
@Generated
public class DeleteCredentialRequest {
- /** Force deletion even if there are dependent services. */
+ /**
+ * Force an update even if there are dependent services (when purpose is **SERVICE**) or dependent
+ * external locations and external tables (when purpose is **STORAGE**).
+ */
@JsonIgnore
@QueryParam("force")
private Boolean force;
diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/GcpServiceAccountKey.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/GcpServiceAccountKey.java
new file mode 100755
index 00000000..85ebb49b
--- /dev/null
+++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/GcpServiceAccountKey.java
@@ -0,0 +1,75 @@
+// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT.
+
+package com.databricks.sdk.service.catalog;
+
+import com.databricks.sdk.support.Generated;
+import com.databricks.sdk.support.ToStringer;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import java.util.Objects;
+
+/** GCP long-lived credential. GCP Service Account. */
+@Generated
+public class GcpServiceAccountKey {
+ /** The email of the service account. */
+ @JsonProperty("email")
+ private String email;
+
+ /** The service account's RSA private key. */
+ @JsonProperty("private_key")
+ private String privateKey;
+
+ /** The ID of the service account's private key. */
+ @JsonProperty("private_key_id")
+ private String privateKeyId;
+
+ public GcpServiceAccountKey setEmail(String email) {
+ this.email = email;
+ return this;
+ }
+
+ public String getEmail() {
+ return email;
+ }
+
+ public GcpServiceAccountKey setPrivateKey(String privateKey) {
+ this.privateKey = privateKey;
+ return this;
+ }
+
+ public String getPrivateKey() {
+ return privateKey;
+ }
+
+ public GcpServiceAccountKey setPrivateKeyId(String privateKeyId) {
+ this.privateKeyId = privateKeyId;
+ return this;
+ }
+
+ public String getPrivateKeyId() {
+ return privateKeyId;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+ GcpServiceAccountKey that = (GcpServiceAccountKey) o;
+ return Objects.equals(email, that.email)
+ && Objects.equals(privateKey, that.privateKey)
+ && Objects.equals(privateKeyId, that.privateKeyId);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(email, privateKey, privateKeyId);
+ }
+
+ @Override
+ public String toString() {
+ return new ToStringer(GcpServiceAccountKey.class)
+ .add("email", email)
+ .add("privateKey", privateKey)
+ .add("privateKeyId", privateKeyId)
+ .toString();
+ }
+}
diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/UpdateCredentialRequest.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/UpdateCredentialRequest.java
index fdaf1643..b2aad099 100755
--- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/UpdateCredentialRequest.java
+++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/UpdateCredentialRequest.java
@@ -18,11 +18,18 @@ public class UpdateCredentialRequest {
@JsonProperty("azure_managed_identity")
private AzureManagedIdentity azureManagedIdentity;
+ /** The Azure service principal configuration. */
+ @JsonProperty("azure_service_principal")
+ private AzureServicePrincipal azureServicePrincipal;
+
/** Comment associated with the credential. */
@JsonProperty("comment")
private String comment;
- /** Force update even if there are dependent services. */
+ /**
+ * Force an update even if there are dependent services (when purpose is **SERVICE**) or dependent
+ * external locations and external tables (when purpose is **STORAGE**).
+ */
@JsonProperty("force")
private Boolean force;
@@ -44,6 +51,13 @@ public class UpdateCredentialRequest {
@JsonProperty("owner")
private String owner;
+ /**
+ * Whether the credential is usable only for read operations. Only applicable when purpose is
+ * **STORAGE**.
+ */
+ @JsonProperty("read_only")
+ private Boolean readOnly;
+
/** Supply true to this argument to skip validation of the updated credential. */
@JsonProperty("skip_validation")
private Boolean skipValidation;
@@ -67,6 +81,16 @@ public AzureManagedIdentity getAzureManagedIdentity() {
return azureManagedIdentity;
}
+ public UpdateCredentialRequest setAzureServicePrincipal(
+ AzureServicePrincipal azureServicePrincipal) {
+ this.azureServicePrincipal = azureServicePrincipal;
+ return this;
+ }
+
+ public AzureServicePrincipal getAzureServicePrincipal() {
+ return azureServicePrincipal;
+ }
+
public UpdateCredentialRequest setComment(String comment) {
this.comment = comment;
return this;
@@ -121,6 +145,15 @@ public String getOwner() {
return owner;
}
+ public UpdateCredentialRequest setReadOnly(Boolean readOnly) {
+ this.readOnly = readOnly;
+ return this;
+ }
+
+ public Boolean getReadOnly() {
+ return readOnly;
+ }
+
public UpdateCredentialRequest setSkipValidation(Boolean skipValidation) {
this.skipValidation = skipValidation;
return this;
@@ -137,12 +170,14 @@ public boolean equals(Object o) {
UpdateCredentialRequest that = (UpdateCredentialRequest) o;
return Objects.equals(awsIamRole, that.awsIamRole)
&& Objects.equals(azureManagedIdentity, that.azureManagedIdentity)
+ && Objects.equals(azureServicePrincipal, that.azureServicePrincipal)
&& Objects.equals(comment, that.comment)
&& Objects.equals(force, that.force)
&& Objects.equals(isolationMode, that.isolationMode)
&& Objects.equals(nameArg, that.nameArg)
&& Objects.equals(newName, that.newName)
&& Objects.equals(owner, that.owner)
+ && Objects.equals(readOnly, that.readOnly)
&& Objects.equals(skipValidation, that.skipValidation);
}
@@ -151,12 +186,14 @@ public int hashCode() {
return Objects.hash(
awsIamRole,
azureManagedIdentity,
+ azureServicePrincipal,
comment,
force,
isolationMode,
nameArg,
newName,
owner,
+ readOnly,
skipValidation);
}
@@ -165,12 +202,14 @@ public String toString() {
return new ToStringer(UpdateCredentialRequest.class)
.add("awsIamRole", awsIamRole)
.add("azureManagedIdentity", azureManagedIdentity)
+ .add("azureServicePrincipal", azureServicePrincipal)
.add("comment", comment)
.add("force", force)
.add("isolationMode", isolationMode)
.add("nameArg", nameArg)
.add("newName", newName)
.add("owner", owner)
+ .add("readOnly", readOnly)
.add("skipValidation", skipValidation)
.toString();
}
diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ValidateCredentialRequest.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ValidateCredentialRequest.java
index 8bb5ff66..00cb5fe0 100755
--- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ValidateCredentialRequest.java
+++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ValidateCredentialRequest.java
@@ -21,10 +21,28 @@ public class ValidateCredentialRequest {
@JsonProperty("credential_name")
private String credentialName;
+ /**
+ * The name of an existing external location to validate. Only applicable for storage credentials
+ * (purpose is **STORAGE**.)
+ */
+ @JsonProperty("external_location_name")
+ private String externalLocationName;
+
/** The purpose of the credential. This should only be used when the credential is specified. */
@JsonProperty("purpose")
private CredentialPurpose purpose;
+ /**
+ * Whether the credential is only usable for read operations. Only applicable for storage
+ * credentials (purpose is **STORAGE**.)
+ */
+ @JsonProperty("read_only")
+ private Boolean readOnly;
+
+ /** The external location url to validate. Only applicable when purpose is **STORAGE**. */
+ @JsonProperty("url")
+ private String url;
+
public ValidateCredentialRequest setAwsIamRole(AwsIamRole awsIamRole) {
this.awsIamRole = awsIamRole;
return this;
@@ -53,6 +71,15 @@ public String getCredentialName() {
return credentialName;
}
+ public ValidateCredentialRequest setExternalLocationName(String externalLocationName) {
+ this.externalLocationName = externalLocationName;
+ return this;
+ }
+
+ public String getExternalLocationName() {
+ return externalLocationName;
+ }
+
public ValidateCredentialRequest setPurpose(CredentialPurpose purpose) {
this.purpose = purpose;
return this;
@@ -62,6 +89,24 @@ public CredentialPurpose getPurpose() {
return purpose;
}
+ public ValidateCredentialRequest setReadOnly(Boolean readOnly) {
+ this.readOnly = readOnly;
+ return this;
+ }
+
+ public Boolean getReadOnly() {
+ return readOnly;
+ }
+
+ public ValidateCredentialRequest setUrl(String url) {
+ this.url = url;
+ return this;
+ }
+
+ public String getUrl() {
+ return url;
+ }
+
@Override
public boolean equals(Object o) {
if (this == o) return true;
@@ -70,12 +115,22 @@ public boolean equals(Object o) {
return Objects.equals(awsIamRole, that.awsIamRole)
&& Objects.equals(azureManagedIdentity, that.azureManagedIdentity)
&& Objects.equals(credentialName, that.credentialName)
- && Objects.equals(purpose, that.purpose);
+ && Objects.equals(externalLocationName, that.externalLocationName)
+ && Objects.equals(purpose, that.purpose)
+ && Objects.equals(readOnly, that.readOnly)
+ && Objects.equals(url, that.url);
}
@Override
public int hashCode() {
- return Objects.hash(awsIamRole, azureManagedIdentity, credentialName, purpose);
+ return Objects.hash(
+ awsIamRole,
+ azureManagedIdentity,
+ credentialName,
+ externalLocationName,
+ purpose,
+ readOnly,
+ url);
}
@Override
@@ -84,7 +139,10 @@ public String toString() {
.add("awsIamRole", awsIamRole)
.add("azureManagedIdentity", azureManagedIdentity)
.add("credentialName", credentialName)
+ .add("externalLocationName", externalLocationName)
.add("purpose", purpose)
+ .add("readOnly", readOnly)
+ .add("url", url)
.toString();
}
}
diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ValidateCredentialResponse.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ValidateCredentialResponse.java
index ef23a12c..bded5204 100755
--- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ValidateCredentialResponse.java
+++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/ValidateCredentialResponse.java
@@ -10,10 +10,26 @@
@Generated
public class ValidateCredentialResponse {
+ /**
+ * Whether the tested location is a directory in cloud storage. Only applicable for when purpose
+ * is **STORAGE**.
+ */
+ @JsonProperty("isDir")
+ private Boolean isDir;
+
/** The results of the validation check. */
@JsonProperty("results")
private Collection Exactly one of `user_name`, `service_principal_name`, `group_name` should be specified. If
- * not, an error is thrown.
+ * Either `user_name` or `service_principal_name` should be specified. If not, an error is
+ * thrown.
*/
@JsonProperty("run_as")
private JobRunAs runAs;
diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/JobRunAs.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/JobRunAs.java
index adab90dc..dbe49479 100755
--- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/JobRunAs.java
+++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/JobRunAs.java
@@ -11,8 +11,8 @@
* Write-only setting. Specifies the user, service principal or group that the job/pipeline runs as.
* If not specified, the job/pipeline runs as the user who created the job/pipeline.
*
- * Exactly one of `user_name`, `service_principal_name`, `group_name` should be specified. If
- * not, an error is thrown.
+ * Either `user_name` or `service_principal_name` should be specified. If not, an error is
+ * thrown.
*/
@Generated
public class JobRunAs {
diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/JobSettings.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/JobSettings.java
index e8656657..a3826b3b 100755
--- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/JobSettings.java
+++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/jobs/JobSettings.java
@@ -131,8 +131,8 @@ public class JobSettings {
* Write-only setting. Specifies the user, service principal or group that the job/pipeline runs
* as. If not specified, the job/pipeline runs as the user who created the job/pipeline.
*
- * Exactly one of `user_name`, `service_principal_name`, `group_name` should be specified. If
- * not, an error is thrown.
+ * Either `user_name` or `service_principal_name` should be specified. If not, an error is
+ * thrown.
*/
@JsonProperty("run_as")
private JobRunAs runAs;
diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/oauth2/GetCustomAppIntegrationRequest.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/oauth2/GetCustomAppIntegrationRequest.java
index 98a8c4b8..6b0c6115 100755
--- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/oauth2/GetCustomAppIntegrationRequest.java
+++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/oauth2/GetCustomAppIntegrationRequest.java
@@ -10,7 +10,7 @@
/** Get OAuth Custom App Integration */
@Generated
public class GetCustomAppIntegrationRequest {
- /** */
+ /** The OAuth app integration ID. */
@JsonIgnore private String integrationId;
public GetCustomAppIntegrationRequest setIntegrationId(String integrationId) {
diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settings/DeleteTokenManagementRequest.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settings/DeleteTokenManagementRequest.java
index bd065c40..98dcf2ab 100755
--- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settings/DeleteTokenManagementRequest.java
+++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settings/DeleteTokenManagementRequest.java
@@ -10,7 +10,7 @@
/** Delete a token */
@Generated
public class DeleteTokenManagementRequest {
- /** The ID of the token to get. */
+ /** The ID of the token to revoke. */
@JsonIgnore private String tokenId;
public DeleteTokenManagementRequest setTokenId(String tokenId) {
diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settings/UpdateNotificationDestinationRequest.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settings/UpdateNotificationDestinationRequest.java
index 98e872aa..7554ec30 100755
--- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settings/UpdateNotificationDestinationRequest.java
+++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/settings/UpdateNotificationDestinationRequest.java
@@ -21,7 +21,7 @@ public class UpdateNotificationDestinationRequest {
@JsonProperty("display_name")
private String displayName;
- /** */
+ /** UUID identifying notification destination. */
@JsonIgnore private String id;
public UpdateNotificationDestinationRequest setConfig(Config config) {
diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/sharing/SharedDataObjectDataObjectType.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/sharing/SharedDataObjectDataObjectType.java
index 69d3ba9b..e6388116 100755
--- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/sharing/SharedDataObjectDataObjectType.java
+++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/sharing/SharedDataObjectDataObjectType.java
@@ -7,6 +7,8 @@
/** The type of the data object. */
@Generated
public enum SharedDataObjectDataObjectType {
+ FEATURE_SPEC,
+ FUNCTION,
MATERIALIZED_VIEW,
MODEL,
NOTEBOOK_FILE,
diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/workspace/DeleteRepoRequest.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/workspace/DeleteRepoRequest.java
index 72e27bbe..ceeaf005 100755
--- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/workspace/DeleteRepoRequest.java
+++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/workspace/DeleteRepoRequest.java
@@ -10,7 +10,7 @@
/** Delete a repo */
@Generated
public class DeleteRepoRequest {
- /** ID of the Git folder (repo) object in the workspace. */
+ /** The ID for the corresponding repo to delete. */
@JsonIgnore private Long repoId;
public DeleteRepoRequest setRepoId(Long repoId) {
diff --git a/examples/docs/pom.xml b/examples/docs/pom.xml
index 89e86caf..35926f71 100644
--- a/examples/docs/pom.xml
+++ b/examples/docs/pom.xml
@@ -24,7 +24,7 @@