Skip to content

Commit f2862ad

Browse files
Add missing parameters
1 parent 962b1b6 commit f2862ad

File tree

6 files changed

+45
-2
lines changed

6 files changed

+45
-2
lines changed

pkg/resources/grant_privileges_to_role.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ var grantPrivilegesToRoleSchema = map[string]*schema.Schema{
6565
"INTEGRATION",
6666
"FAILOVER GROUP",
6767
"REPLICATION GROUP",
68+
"EXTERNAL VOLUME",
6869
}, true),
6970
},
7071
"object_name": {
@@ -191,6 +192,7 @@ var grantPrivilegesToRoleSchema = map[string]*schema.Schema{
191192
"TASKS",
192193
"VIEWS",
193194
"MATERIALIZED VIEWS",
195+
"ICEBERG TABLES",
194196
}, true),
195197
},
196198
"in_database": {
@@ -245,6 +247,7 @@ var grantPrivilegesToRoleSchema = map[string]*schema.Schema{
245247
"TASKS",
246248
"VIEWS",
247249
"MATERIALIZED VIEWS",
250+
"ICEBERG TABLES",
248251
}, true),
249252
},
250253
"in_database": {
@@ -730,6 +733,8 @@ func configureAccountRoleGrantPrivilegeOptions(d *schema.ResourceData, privilege
730733
on.AccountObject.User = &objectID
731734
case sdk.ObjectTypeWarehouse:
732735
on.AccountObject.Warehouse = &objectID
736+
case sdk.ObjectTypeExternalVolume:
737+
on.AccountObject.ExternalVolume = &objectID
733738
default:
734739
return nil, nil, fmt.Errorf("invalid object type %s", objectType)
735740
}

pkg/sdk/grants.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ type GrantOnAccountObject struct {
5252
Integration *AccountObjectIdentifier `ddl:"identifier" sql:"INTEGRATION"`
5353
FailoverGroup *AccountObjectIdentifier `ddl:"identifier" sql:"FAILOVER GROUP"`
5454
ReplicationGroup *AccountObjectIdentifier `ddl:"identifier" sql:"REPLICATION GROUP"`
55+
ExternalVolume *AccountObjectIdentifier `ddl:"identifier" sql:"EXTERNAL VOLUME"`
5556
}
5657

5758
type GrantOnSchema struct {

pkg/sdk/grants_test.go

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,22 @@ func TestGrantPrivilegesToAccountRole(t *testing.T) {
3535
}
3636
assertOptsValidAndSQLEquals(t, opts, `GRANT ALL PRIVILEGES ON DATABASE "db1" TO ROLE "role1"`)
3737
})
38+
39+
t.Run("on account object - external volume", func(t *testing.T) {
40+
opts := &GrantPrivilegesToAccountRoleOptions{
41+
privileges: &AccountRoleGrantPrivileges{
42+
AllPrivileges: Bool(true),
43+
},
44+
on: &AccountRoleGrantOn{
45+
AccountObject: &GrantOnAccountObject{
46+
ExternalVolume: Pointer(NewAccountObjectIdentifier("ex volume")),
47+
},
48+
},
49+
accountRole: NewAccountObjectIdentifier("role1"),
50+
}
51+
assertOptsValidAndSQLEquals(t, opts, `GRANT ALL PRIVILEGES ON EXTERNAL VOLUME "ex volume" TO ROLE "role1"`)
52+
})
53+
3854
t.Run("on schema", func(t *testing.T) {
3955
opts := &GrantPrivilegesToAccountRoleOptions{
4056
privileges: &AccountRoleGrantPrivileges{

pkg/sdk/grants_validations.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,8 +72,8 @@ func (v *AccountRoleGrantOn) validate() error {
7272
}
7373

7474
func (v *GrantOnAccountObject) validate() error {
75-
if !exactlyOneValueSet(v.User, v.ResourceMonitor, v.Warehouse, v.Database, v.Integration, v.FailoverGroup, v.ReplicationGroup) {
76-
return errExactlyOneOf("GrantOnAccountObject", "User", "ResourceMonitor", "Warehouse", "Database", "Integration", "FailoverGroup", "ReplicationGroup")
75+
if !exactlyOneValueSet(v.User, v.ResourceMonitor, v.Warehouse, v.Database, v.Integration, v.FailoverGroup, v.ReplicationGroup, v.ExternalVolume) {
76+
return errExactlyOneOf("GrantOnAccountObject", "User", "ResourceMonitor", "Warehouse", "Database", "Integration", "FailoverGroup", "ReplicationGroup", "ExternalVolume")
7777
}
7878
return nil
7979
}

pkg/sdk/object_types.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,8 @@ const (
5959
ObjectTypeApplicationRole ObjectType = "APPLICATION ROLE"
6060
ObjectTypeStreamlit ObjectType = "STREAMLIT"
6161
ObjectTypeColumn ObjectType = "COLUMN"
62+
ObjectTypeIcebergTable ObjectType = "ICEBERG TABLE"
63+
ObjectTypeExternalVolume ObjectType = "EXTERNAL VOLUME"
6264
)
6365

6466
func (o ObjectType) String() string {
@@ -109,6 +111,8 @@ func objectTypeSingularToPluralMap() map[ObjectType]PluralObjectType {
109111
ObjectTypeApplicationPackage: PluralObjectTypeApplicationPackages,
110112
ObjectTypeApplicationRole: PluralObjectTypeApplicationRoles,
111113
ObjectTypeStreamlit: PluralObjectTypeStreamlits,
114+
ObjectTypeIcebergTable: PluralObjectTypeIcebergTables,
115+
ObjectTypeExternalVolume: PluralObjectTypeExternalVolumes,
112116
}
113117
}
114118

@@ -199,6 +203,8 @@ const (
199203
PluralObjectTypeApplicationPackages PluralObjectType = "APPLICATION PACKAGES"
200204
PluralObjectTypeApplicationRoles PluralObjectType = "APPLICATION ROLES"
201205
PluralObjectTypeStreamlits PluralObjectType = "STREAMLITS"
206+
PluralObjectTypeIcebergTables PluralObjectType = "ICEBERG TABLES"
207+
PluralObjectTypeExternalVolumes PluralObjectType = "EXTERNAL VOLUMES"
202208
)
203209

204210
func (p PluralObjectType) String() string {

pkg/sdk/privileges.go

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ const (
1313
GlobalPrivilegeCreateFailoverGroup GlobalPrivilege = "CREATE FAILOVER GROUP"
1414
GlobalPrivilegeCreateIntegration GlobalPrivilege = "CREATE INTEGRATION"
1515
GlobalPrivilegeCreateNetworkPolicy GlobalPrivilege = "CREATE NETWORK POLICY"
16+
GlobalPrivilegeCreateExternalVolume GlobalPrivilege = "CREATE EXTERNAL VOLUME"
1617
GlobalPrivilegeCreateReplicationGroup GlobalPrivilege = "CREATE REPLICATION GROUP"
1718
GlobalPrivilegeCreateRole GlobalPrivilege = "CREATE ROLE"
1819
GlobalPrivilegeCreateShare GlobalPrivilege = "CREATE SHARE"
@@ -71,6 +72,9 @@ const (
7172
AccountObjectPrivilegeMonitor AccountObjectPrivilege = "MONITOR"
7273
AccountObjectPrivilegeUsage AccountObjectPrivilege = "USAGE"
7374

75+
// -- For EXTERNAL VOLUME
76+
// AccountObjectPrivilegeUsage AccountObjectPrivilege = "USAGE" (duplicate)
77+
7478
// -- For FAILOVER GROUP
7579
// { FAILOVER | MODIFY | MONITOR | REPLICATE } [ , ... ]
7680
AccountObjectPrivilegeFailover AccountObjectPrivilege = "FAILOVER"
@@ -126,11 +130,13 @@ const (
126130
[ , ... ]
127131
*/
128132
SchemaPrivilegeAddSearchOptimization SchemaPrivilege = "ADD SEARCH OPTIMIZATION"
133+
SchemaPrivilegeApplyBudget SchemaPrivilege = "APPLYBUDGET"
129134
SchemaPrivilegeCreateAlert SchemaPrivilege = "CREATE ALERT"
130135
SchemaPrivilegeCreateDynamicTable SchemaPrivilege = "CREATE DYNAMIC TABLE"
131136
SchemaPrivilegeCreateExternalTable SchemaPrivilege = "CREATE EXTERNAL TABLE"
132137
SchemaPrivilegeCreateFileFormat SchemaPrivilege = "CREATE FILE FORMAT"
133138
SchemaPrivilegeCreateFunction SchemaPrivilege = "CREATE FUNCTION"
139+
SchemaPrivilegeCreateIcebergTable SchemaPrivilege = "CREATE ICEBERG TABLE"
134140
SchemaPrivilegeCreateMaterializedView SchemaPrivilege = "CREATE MATERIALIZED VIEW"
135141
SchemaPrivilegeCreatePipe SchemaPrivilege = "CREATE PIPE"
136142
SchemaPrivilegeCreateProcedure SchemaPrivilege = "CREATE PROCEDURE"
@@ -178,6 +184,15 @@ const (
178184
// USAGE [ , ... ]
179185
SchemaObjectPrivilegeUsage SchemaObjectPrivilege = "USAGE"
180186

187+
// -- For ICEBERG TABLE
188+
SchemaObjectPrivilegeApplyBudget SchemaObjectPrivilege = "APPLYBUDGET"
189+
//SchemaObjectPrivilegeDelete SchemaObjectPrivilege = "DELETE" (duplicate)
190+
//SchemaObjectPrivilegeInsert SchemaObjectPrivilege = "INSERT" (duplicate)
191+
//SchemaObjectPrivilegeReferences SchemaObjectPrivilege = "REFERENCES" (duplicate)
192+
//SchemaObjectPrivilegeSelect SchemaObjectPrivilege = "SELECT" (duplicate)
193+
//SchemaObjectPrivilegeTruncate SchemaObjectPrivilege = "Truncate" (duplicate)
194+
//SchemaObjectPrivilegeUpdate SchemaObjectPrivilege = "Update" (duplicate)
195+
181196
// -- For PIPE
182197
// { MONITOR | OPERATE } [ , ... ]
183198
SchemaObjectPrivilegeMonitor SchemaObjectPrivilege = "MONITOR"

0 commit comments

Comments
 (0)