databricks-cli/bundle/deploy/terraform/tfdyn/convert_grants.go

40 lines
864 B
Go

package tfdyn
import (
"context"
"github.com/databricks/cli/bundle/internal/tf/schema"
"github.com/databricks/cli/libs/dyn"
)
func convertGrantsResource(ctx context.Context, vin dyn.Value) *schema.ResourceGrants {
grants, ok := vin.Get("grants").AsSequence()
if !ok || len(grants) == 0 {
return nil
}
resource := &schema.ResourceGrants{}
for _, permission := range grants {
principal, _ := permission.Get("principal").AsString()
v, _ := permission.Get("privileges").AsSequence()
// Turn privileges into a slice of strings.
var privileges []string
for _, privilege := range v {
str, ok := privilege.AsString()
if !ok {
continue
}
privileges = append(privileges, str)
}
resource.Grant = append(resource.Grant, schema.ResourceGrantsGrant{
Principal: principal,
Privileges: privileges,
})
}
return resource
}