diff --git a/.codegen/_openapi_sha b/.codegen/_openapi_sha index d8ba11803..c7cb7b324 100644 --- a/.codegen/_openapi_sha +++ b/.codegen/_openapi_sha @@ -1 +1 @@ -e62e36c7dd18a5b4988253c58fb0b245f7764939 \ No newline at end of file +02596aaa1588f0a22727f219c734c2cb867ef717 \ No newline at end of file diff --git a/.gitattributes b/.gitattributes index f398a99c4..cfc7c0d98 100644 --- a/.gitattributes +++ b/.gitattributes @@ -206,6 +206,7 @@ databricks-sdk-java/src/main/java/com/databricks/sdk/service/billing/ActionConfi databricks-sdk-java/src/main/java/com/databricks/sdk/service/billing/ActionConfigurationType.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/billing/AlertConfiguration.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/billing/AlertConfigurationQuantityType.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/billing/AlertConfigurationScopeType.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/billing/AlertConfigurationTimePeriod.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/billing/AlertConfigurationTriggerType.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/billing/BillableUsageAPI.java linguist-generated=true @@ -221,6 +222,7 @@ databricks-sdk-java/src/main/java/com/databricks/sdk/service/billing/BudgetPolic databricks-sdk-java/src/main/java/com/databricks/sdk/service/billing/BudgetPolicyAPI.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/billing/BudgetPolicyImpl.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/billing/BudgetPolicyService.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/billing/BudgetResourceType.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/billing/BudgetsAPI.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/billing/BudgetsImpl.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/billing/BudgetsService.java linguist-generated=true @@ -260,6 +262,7 @@ databricks-sdk-java/src/main/java/com/databricks/sdk/service/billing/LogDelivery databricks-sdk-java/src/main/java/com/databricks/sdk/service/billing/LogDeliveryStatus.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/billing/LogType.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/billing/OutputFormat.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/billing/PrincipalOverride.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/billing/SortSpec.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/billing/SortSpecField.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/billing/UpdateBudgetConfigurationBudget.java linguist-generated=true @@ -570,6 +573,7 @@ databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/GetStorageC databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/GetTableRequest.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/GetWorkspaceBindingRequest.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/GetWorkspaceBindingsResponse.java linguist-generated=true +databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/GrantOptions.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/GrantsAPI.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/GrantsImpl.java linguist-generated=true databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/GrantsService.java linguist-generated=true diff --git a/NEXT_CHANGELOG.md b/NEXT_CHANGELOG.md index e53599700..08819e585 100644 --- a/NEXT_CHANGELOG.md +++ b/NEXT_CHANGELOG.md @@ -17,3 +17,11 @@ ### Internal Changes ### API Changes +* Add `principalOverrides` and `scopeType` fields for `com.databricks.sdk.service.billing.AlertConfiguration`. +* Add `resourceType` field for `com.databricks.sdk.service.billing.BudgetConfiguration`. +* Add `resourceType` field for `com.databricks.sdk.service.billing.CreateBudgetConfigurationBudget`. +* Add `principalOverrides` and `scopeType` fields for `com.databricks.sdk.service.billing.CreateBudgetConfigurationBudgetAlertConfigurations`. +* Add `resourceType` field for `com.databricks.sdk.service.billing.UpdateBudgetConfigurationBudget`. +* Add `grant` field for `com.databricks.sdk.service.catalog.PolicyInfo`. +* Add `BLOCK_USAGE` enum value for `com.databricks.sdk.service.billing.ActionConfigurationType`. +* Add `POLICY_TYPE_GRANT` enum value for `com.databricks.sdk.service.catalog.PolicyType`. \ No newline at end of file diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/billing/ActionConfigurationType.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/billing/ActionConfigurationType.java index addd26e54..c172016c8 100644 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/billing/ActionConfigurationType.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/billing/ActionConfigurationType.java @@ -7,5 +7,6 @@ /** Type of action that a budget alert executes when its threshold is crossed. */ @Generated public enum ActionConfigurationType { + BLOCK_USAGE, EMAIL_NOTIFICATION, } diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/billing/AlertConfiguration.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/billing/AlertConfiguration.java index 918ec6d08..a6e4bad06 100644 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/billing/AlertConfiguration.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/billing/AlertConfiguration.java @@ -21,6 +21,13 @@ public class AlertConfiguration { @JsonProperty("alert_configuration_id") private String alertConfigurationId; + /** + * Per-principal threshold overrides for this alert. Only applies to per-user alerts (`scope_type` + * = `ALERT_CONFIGURATION_SCOPE_TYPE_PER_USER`); ignored for shared alerts. + */ + @JsonProperty("principal_overrides") + private Collection principalOverrides; + /** * The threshold for the budget alert to determine if it is in a triggered state. The number is * evaluated based on `quantity_type`. @@ -35,6 +42,13 @@ public class AlertConfiguration { @JsonProperty("quantity_type") private AlertConfigurationQuantityType quantityType; + /** + * How the alert threshold is evaluated. Determines whether spend is tracked in aggregate or per + * individual user. + */ + @JsonProperty("scope_type") + private AlertConfigurationScopeType scopeType; + /** The time window of usage data for the budget. */ @JsonProperty("time_period") private AlertConfigurationTimePeriod timePeriod; @@ -62,6 +76,16 @@ public String getAlertConfigurationId() { return alertConfigurationId; } + public AlertConfiguration setPrincipalOverrides( + Collection principalOverrides) { + this.principalOverrides = principalOverrides; + return this; + } + + public Collection getPrincipalOverrides() { + return principalOverrides; + } + public AlertConfiguration setQuantityThreshold(String quantityThreshold) { this.quantityThreshold = quantityThreshold; return this; @@ -80,6 +104,15 @@ public AlertConfigurationQuantityType getQuantityType() { return quantityType; } + public AlertConfiguration setScopeType(AlertConfigurationScopeType scopeType) { + this.scopeType = scopeType; + return this; + } + + public AlertConfigurationScopeType getScopeType() { + return scopeType; + } + public AlertConfiguration setTimePeriod(AlertConfigurationTimePeriod timePeriod) { this.timePeriod = timePeriod; return this; @@ -105,8 +138,10 @@ public boolean equals(Object o) { AlertConfiguration that = (AlertConfiguration) o; return Objects.equals(actionConfigurations, that.actionConfigurations) && Objects.equals(alertConfigurationId, that.alertConfigurationId) + && Objects.equals(principalOverrides, that.principalOverrides) && Objects.equals(quantityThreshold, that.quantityThreshold) && Objects.equals(quantityType, that.quantityType) + && Objects.equals(scopeType, that.scopeType) && Objects.equals(timePeriod, that.timePeriod) && Objects.equals(triggerType, that.triggerType); } @@ -116,8 +151,10 @@ public int hashCode() { return Objects.hash( actionConfigurations, alertConfigurationId, + principalOverrides, quantityThreshold, quantityType, + scopeType, timePeriod, triggerType); } @@ -127,8 +164,10 @@ public String toString() { return new ToStringer(AlertConfiguration.class) .add("actionConfigurations", actionConfigurations) .add("alertConfigurationId", alertConfigurationId) + .add("principalOverrides", principalOverrides) .add("quantityThreshold", quantityThreshold) .add("quantityType", quantityType) + .add("scopeType", scopeType) .add("timePeriod", timePeriod) .add("triggerType", triggerType) .toString(); diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/billing/AlertConfigurationScopeType.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/billing/AlertConfigurationScopeType.java new file mode 100644 index 000000000..aa894e5ec --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/billing/AlertConfigurationScopeType.java @@ -0,0 +1,12 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. + +package com.databricks.sdk.service.billing; + +import com.databricks.sdk.support.Generated; + +/** Evaluation scope for an alert configuration. */ +@Generated +public enum AlertConfigurationScopeType { + ALERT_CONFIGURATION_SCOPE_TYPE_PER_USER, + ALERT_CONFIGURATION_SCOPE_TYPE_SHARED, +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/billing/BudgetConfiguration.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/billing/BudgetConfiguration.java index ca11d4e52..68c284597 100644 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/billing/BudgetConfiguration.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/billing/BudgetConfiguration.java @@ -41,6 +41,13 @@ public class BudgetConfiguration { @JsonProperty("filter") private BudgetConfigurationFilter filter; + /** + * The resource scope for this budget. Determines whether the budget tracks all resources or a + * specific resource. + */ + @JsonProperty("resource_type") + private BudgetResourceType resourceType; + /** Update time of this budget configuration. */ @JsonProperty("update_time") private Long updateTime; @@ -100,6 +107,15 @@ public BudgetConfigurationFilter getFilter() { return filter; } + public BudgetConfiguration setResourceType(BudgetResourceType resourceType) { + this.resourceType = resourceType; + return this; + } + + public BudgetResourceType getResourceType() { + return resourceType; + } + public BudgetConfiguration setUpdateTime(Long updateTime) { this.updateTime = updateTime; return this; @@ -120,6 +136,7 @@ public boolean equals(Object o) { && Objects.equals(createTime, that.createTime) && Objects.equals(displayName, that.displayName) && Objects.equals(filter, that.filter) + && Objects.equals(resourceType, that.resourceType) && Objects.equals(updateTime, that.updateTime); } @@ -132,6 +149,7 @@ public int hashCode() { createTime, displayName, filter, + resourceType, updateTime); } @@ -144,6 +162,7 @@ public String toString() { .add("createTime", createTime) .add("displayName", displayName) .add("filter", filter) + .add("resourceType", resourceType) .add("updateTime", updateTime) .toString(); } diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/billing/BudgetResourceType.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/billing/BudgetResourceType.java new file mode 100644 index 000000000..aefb80900 --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/billing/BudgetResourceType.java @@ -0,0 +1,15 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. + +package com.databricks.sdk.service.billing; + +import com.databricks.sdk.support.Generated; + +/** + * Resource scope for a budget configuration. Determines whether the budget tracks all resources or + * a specific resource. + */ +@Generated +public enum BudgetResourceType { + BUDGET_RESOURCE_TYPE_ALL_RESOURCES, + BUDGET_RESOURCE_TYPE_UNITY_AI_GATEWAY, +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/billing/CreateBudgetConfigurationBudget.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/billing/CreateBudgetConfigurationBudget.java index ef5163ca8..c33b7e7de 100644 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/billing/CreateBudgetConfigurationBudget.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/billing/CreateBudgetConfigurationBudget.java @@ -33,6 +33,13 @@ public class CreateBudgetConfigurationBudget { @JsonProperty("filter") private BudgetConfigurationFilter filter; + /** + * The resource scope for this budget. Determines whether the budget tracks all resources or a + * specific resource. + */ + @JsonProperty("resource_type") + private BudgetResourceType resourceType; + public CreateBudgetConfigurationBudget setAccountId(String accountId) { this.accountId = accountId; return this; @@ -70,6 +77,15 @@ public BudgetConfigurationFilter getFilter() { return filter; } + public CreateBudgetConfigurationBudget setResourceType(BudgetResourceType resourceType) { + this.resourceType = resourceType; + return this; + } + + public BudgetResourceType getResourceType() { + return resourceType; + } + @Override public boolean equals(Object o) { if (this == o) return true; @@ -78,12 +94,13 @@ public boolean equals(Object o) { return Objects.equals(accountId, that.accountId) && Objects.equals(alertConfigurations, that.alertConfigurations) && Objects.equals(displayName, that.displayName) - && Objects.equals(filter, that.filter); + && Objects.equals(filter, that.filter) + && Objects.equals(resourceType, that.resourceType); } @Override public int hashCode() { - return Objects.hash(accountId, alertConfigurations, displayName, filter); + return Objects.hash(accountId, alertConfigurations, displayName, filter, resourceType); } @Override @@ -93,6 +110,7 @@ public String toString() { .add("alertConfigurations", alertConfigurations) .add("displayName", displayName) .add("filter", filter) + .add("resourceType", resourceType) .toString(); } } diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/billing/CreateBudgetConfigurationBudgetAlertConfigurations.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/billing/CreateBudgetConfigurationBudgetAlertConfigurations.java index 4adf795ea..3aaa44532 100644 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/billing/CreateBudgetConfigurationBudgetAlertConfigurations.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/billing/CreateBudgetConfigurationBudgetAlertConfigurations.java @@ -17,6 +17,13 @@ public class CreateBudgetConfigurationBudgetAlertConfigurations { @JsonProperty("action_configurations") private Collection actionConfigurations; + /** + * Per-principal threshold overrides for this alert. Only applies to per-user alerts (`scope_type` + * = `ALERT_CONFIGURATION_SCOPE_TYPE_PER_USER`); ignored for shared alerts. + */ + @JsonProperty("principal_overrides") + private Collection principalOverrides; + /** * The threshold for the budget alert to determine if it is in a triggered state. The number is * evaluated based on `quantity_type`. @@ -31,6 +38,13 @@ public class CreateBudgetConfigurationBudgetAlertConfigurations { @JsonProperty("quantity_type") private AlertConfigurationQuantityType quantityType; + /** + * How the alert threshold is evaluated. Determines whether spend is tracked in aggregate or per + * individual user. + */ + @JsonProperty("scope_type") + private AlertConfigurationScopeType scopeType; + /** The time window of usage data for the budget. */ @JsonProperty("time_period") private AlertConfigurationTimePeriod timePeriod; @@ -49,6 +63,16 @@ public Collection getAction return actionConfigurations; } + public CreateBudgetConfigurationBudgetAlertConfigurations setPrincipalOverrides( + Collection principalOverrides) { + this.principalOverrides = principalOverrides; + return this; + } + + public Collection getPrincipalOverrides() { + return principalOverrides; + } + public CreateBudgetConfigurationBudgetAlertConfigurations setQuantityThreshold( String quantityThreshold) { this.quantityThreshold = quantityThreshold; @@ -69,6 +93,16 @@ public AlertConfigurationQuantityType getQuantityType() { return quantityType; } + public CreateBudgetConfigurationBudgetAlertConfigurations setScopeType( + AlertConfigurationScopeType scopeType) { + this.scopeType = scopeType; + return this; + } + + public AlertConfigurationScopeType getScopeType() { + return scopeType; + } + public CreateBudgetConfigurationBudgetAlertConfigurations setTimePeriod( AlertConfigurationTimePeriod timePeriod) { this.timePeriod = timePeriod; @@ -96,8 +130,10 @@ public boolean equals(Object o) { CreateBudgetConfigurationBudgetAlertConfigurations that = (CreateBudgetConfigurationBudgetAlertConfigurations) o; return Objects.equals(actionConfigurations, that.actionConfigurations) + && Objects.equals(principalOverrides, that.principalOverrides) && Objects.equals(quantityThreshold, that.quantityThreshold) && Objects.equals(quantityType, that.quantityType) + && Objects.equals(scopeType, that.scopeType) && Objects.equals(timePeriod, that.timePeriod) && Objects.equals(triggerType, that.triggerType); } @@ -105,15 +141,23 @@ public boolean equals(Object o) { @Override public int hashCode() { return Objects.hash( - actionConfigurations, quantityThreshold, quantityType, timePeriod, triggerType); + actionConfigurations, + principalOverrides, + quantityThreshold, + quantityType, + scopeType, + timePeriod, + triggerType); } @Override public String toString() { return new ToStringer(CreateBudgetConfigurationBudgetAlertConfigurations.class) .add("actionConfigurations", actionConfigurations) + .add("principalOverrides", principalOverrides) .add("quantityThreshold", quantityThreshold) .add("quantityType", quantityType) + .add("scopeType", scopeType) .add("timePeriod", timePeriod) .add("triggerType", triggerType) .toString(); diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/billing/PrincipalOverride.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/billing/PrincipalOverride.java new file mode 100644 index 000000000..a6c577cfa --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/billing/PrincipalOverride.java @@ -0,0 +1,63 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. + +package com.databricks.sdk.service.billing; + +import com.databricks.sdk.support.Generated; +import com.databricks.sdk.support.ToStringer; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +/** + * Per-principal threshold override on a PER_USER alert: bumps the alert's quantity_threshold for + * one principal_id. + */ +@Generated +public class PrincipalOverride { + /** Dollar amount that overrides the parent alert's quantity_threshold for this principal. */ + @JsonProperty("override_threshold") + private String overrideThreshold; + + /** Account-level principal id (user, group, or service principal). */ + @JsonProperty("principal_id") + private Long principalId; + + public PrincipalOverride setOverrideThreshold(String overrideThreshold) { + this.overrideThreshold = overrideThreshold; + return this; + } + + public String getOverrideThreshold() { + return overrideThreshold; + } + + public PrincipalOverride setPrincipalId(Long principalId) { + this.principalId = principalId; + return this; + } + + public Long getPrincipalId() { + return principalId; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + PrincipalOverride that = (PrincipalOverride) o; + return Objects.equals(overrideThreshold, that.overrideThreshold) + && Objects.equals(principalId, that.principalId); + } + + @Override + public int hashCode() { + return Objects.hash(overrideThreshold, principalId); + } + + @Override + public String toString() { + return new ToStringer(PrincipalOverride.class) + .add("overrideThreshold", overrideThreshold) + .add("principalId", principalId) + .toString(); + } +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/billing/UpdateBudgetConfigurationBudget.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/billing/UpdateBudgetConfigurationBudget.java index d8a2f8411..f82dedfa3 100644 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/billing/UpdateBudgetConfigurationBudget.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/billing/UpdateBudgetConfigurationBudget.java @@ -37,6 +37,13 @@ public class UpdateBudgetConfigurationBudget { @JsonProperty("filter") private BudgetConfigurationFilter filter; + /** + * The resource scope for this budget. Determines whether the budget tracks all resources or a + * specific resource. + */ + @JsonProperty("resource_type") + private BudgetResourceType resourceType; + public UpdateBudgetConfigurationBudget setAccountId(String accountId) { this.accountId = accountId; return this; @@ -83,6 +90,15 @@ public BudgetConfigurationFilter getFilter() { return filter; } + public UpdateBudgetConfigurationBudget setResourceType(BudgetResourceType resourceType) { + this.resourceType = resourceType; + return this; + } + + public BudgetResourceType getResourceType() { + return resourceType; + } + @Override public boolean equals(Object o) { if (this == o) return true; @@ -92,12 +108,14 @@ public boolean equals(Object o) { && Objects.equals(alertConfigurations, that.alertConfigurations) && Objects.equals(budgetConfigurationId, that.budgetConfigurationId) && Objects.equals(displayName, that.displayName) - && Objects.equals(filter, that.filter); + && Objects.equals(filter, that.filter) + && Objects.equals(resourceType, that.resourceType); } @Override public int hashCode() { - return Objects.hash(accountId, alertConfigurations, budgetConfigurationId, displayName, filter); + return Objects.hash( + accountId, alertConfigurations, budgetConfigurationId, displayName, filter, resourceType); } @Override @@ -108,6 +126,7 @@ public String toString() { .add("budgetConfigurationId", budgetConfigurationId) .add("displayName", displayName) .add("filter", filter) + .add("resourceType", resourceType) .toString(); } } diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/GrantOptions.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/GrantOptions.java new file mode 100644 index 000000000..f541a9d2d --- /dev/null +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/GrantOptions.java @@ -0,0 +1,46 @@ +// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT. + +package com.databricks.sdk.service.catalog; + +import com.databricks.sdk.support.Generated; +import com.databricks.sdk.support.ToStringer; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Collection; +import java.util.Objects; + +@Generated +public class GrantOptions { + /** + * List of privileges to grant. When any of these privileges are requested, the policy will grant + * access if the principal and condition match. Required on create and update. + */ + @JsonProperty("privileges") + private Collection privileges; + + public GrantOptions setPrivileges(Collection privileges) { + this.privileges = privileges; + return this; + } + + public Collection getPrivileges() { + return privileges; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + GrantOptions that = (GrantOptions) o; + return Objects.equals(privileges, that.privileges); + } + + @Override + public int hashCode() { + return Objects.hash(privileges); + } + + @Override + public String toString() { + return new ToStringer(GrantOptions.class).add("privileges", privileges).toString(); + } +} diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/PolicyInfo.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/PolicyInfo.java index d24d09501..fd4d3ab3a 100644 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/PolicyInfo.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/PolicyInfo.java @@ -41,6 +41,14 @@ public class PolicyInfo { @JsonProperty("for_securable_type") private SecurableType forSecurableType; + /** + * Options for grant policies. Valid only if `policy_type` is `POLICY_TYPE_GRANT`. Required on + * create and optional on update. When specified on update, the new options will replace the + * existing options as a whole. + */ + @JsonProperty("grant") + private GrantOptions grant; + /** Unique identifier of the policy. This field is output only and is generated by the system. */ @JsonProperty("id") private String id; @@ -156,6 +164,15 @@ public SecurableType getForSecurableType() { return forSecurableType; } + public PolicyInfo setGrant(GrantOptions grant) { + this.grant = grant; + return this; + } + + public GrantOptions getGrant() { + return grant; + } + public PolicyInfo setId(String id) { this.id = id; return this; @@ -266,6 +283,7 @@ public boolean equals(Object o) { && Objects.equals(createdBy, that.createdBy) && Objects.equals(exceptPrincipals, that.exceptPrincipals) && Objects.equals(forSecurableType, that.forSecurableType) + && Objects.equals(grant, that.grant) && Objects.equals(id, that.id) && Objects.equals(matchColumns, that.matchColumns) && Objects.equals(name, that.name) @@ -288,6 +306,7 @@ public int hashCode() { createdBy, exceptPrincipals, forSecurableType, + grant, id, matchColumns, name, @@ -310,6 +329,7 @@ public String toString() { .add("createdBy", createdBy) .add("exceptPrincipals", exceptPrincipals) .add("forSecurableType", forSecurableType) + .add("grant", grant) .add("id", id) .add("matchColumns", matchColumns) .add("name", name) diff --git a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/PolicyType.java b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/PolicyType.java index 87e05d3fc..0ea9057d2 100644 --- a/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/PolicyType.java +++ b/databricks-sdk-java/src/main/java/com/databricks/sdk/service/catalog/PolicyType.java @@ -7,5 +7,6 @@ @Generated public enum PolicyType { POLICY_TYPE_COLUMN_MASK, + POLICY_TYPE_GRANT, POLICY_TYPE_ROW_FILTER, }