@@ -20,8 +20,9 @@ type ClusterPolicy struct {
2020
2121// ClusterPolicyCreate is the endity used for request
2222type ClusterPolicyCreate struct {
23- Name string `json:"name"`
24- Definition string `json:"definition"`
23+ Name string `json:"name"`
24+ Definition string `json:"definition"`
25+ MaxClustersPerUser int64 `json:"max_clusters_per_user,omitempty"`
2526}
2627
2728type ClusterPolicyList struct {
@@ -93,6 +94,9 @@ func parsePolicyFromData(d *schema.ResourceData) (*ClusterPolicy, error) {
9394 if data , ok := d .GetOk ("definition" ); ok {
9495 clusterPolicy .Definition = data .(string )
9596 }
97+ if max_clusters , ok := d .GetOk ("max_clusters_per_user" ); ok {
98+ clusterPolicy .MaxClustersPerUser = int64 (max_clusters .(int ))
99+ }
96100 return clusterPolicy , nil
97101}
98102
@@ -113,11 +117,15 @@ func ResourceClusterPolicy() *schema.Resource {
113117 },
114118 "definition" : {
115119 Type : schema .TypeString ,
116- Optional : true ,
120+ Required : true ,
117121 Description : "Policy definition JSON document expressed in\n " +
118122 "Databricks Policy Definition Language." ,
119123 ValidateFunc : validation .StringIsJSON ,
120124 },
125+ "max_clusters_per_user" : {
126+ Type : schema .TypeInt ,
127+ Optional : true ,
128+ },
121129 },
122130 Create : func (ctx context.Context , d * schema.ResourceData , c * common.DatabricksClient ) error {
123131 clusterPolicy , err := parsePolicyFromData (d )
@@ -135,15 +143,11 @@ func ResourceClusterPolicy() *schema.Resource {
135143 if err != nil {
136144 return err
137145 }
138- if err = d .Set ("name" , clusterPolicy .Name ); err != nil {
139- return err
140- }
141- if err = d .Set ("definition" , clusterPolicy .Definition ); err != nil {
142- return err
143- }
144- if err = d .Set ("policy_id" , clusterPolicy .PolicyID ); err != nil {
145- return err
146- }
146+ d .Set ("name" , clusterPolicy .Name )
147+ d .Set ("definition" , clusterPolicy .Definition )
148+ d .Set ("policy_id" , clusterPolicy .PolicyID )
149+ d .SetId (clusterPolicy .PolicyID )
150+ d .Set ("max_clusters_per_user" , clusterPolicy .MaxClustersPerUser )
147151 return nil
148152 },
149153 Update : func (ctx context.Context , d * schema.ResourceData , c * common.DatabricksClient ) error {
0 commit comments