@@ -32,15 +32,23 @@ const (
3232type appResource struct {
3333 apps_tf.App
3434 NoCompute types.Bool `tfsdk:"no_compute"`
35+ tfschema.Namespace
3536}
3637
3738func (a appResource ) ApplySchemaCustomizations (s map [string ]tfschema.AttributeBuilder ) map [string ]tfschema.AttributeBuilder {
3839 s ["no_compute" ] = s ["no_compute" ].SetOptional ()
40+ s ["provider_config" ] = s ["provider_config" ].SetOptional ()
3941 s ["compute_size" ] = s ["compute_size" ].SetComputed ()
4042 s = apps_tf.App {}.ApplySchemaCustomizations (s )
4143 return s
4244}
4345
46+ func (a appResource ) GetComplexFieldTypes (ctx context.Context ) map [string ]reflect.Type {
47+ attrs := a .App .GetComplexFieldTypes (ctx )
48+ attrs ["provider_config" ] = reflect .TypeOf (tfschema.ProviderConfig {})
49+ return attrs
50+ }
51+
4452func ResourceApp () resource.Resource {
4553 return & resourceApp {}
4654}
@@ -94,17 +102,25 @@ func (a *resourceApp) Configure(ctx context.Context, req resource.ConfigureReque
94102
95103func (a * resourceApp ) Create (ctx context.Context , req resource.CreateRequest , resp * resource.CreateResponse ) {
96104 ctx = pluginfwcontext .SetUserAgentInResourceContext (ctx , resourceName )
97- w , diags := a .client .GetWorkspaceClient ()
105+
106+ var app appResource
107+ resp .Diagnostics .Append (req .Plan .Get (ctx , & app )... )
108+ if resp .Diagnostics .HasError () {
109+ return
110+ }
111+
112+ workspaceID , diags := tfschema .GetWorkspaceIDResource (ctx , app .ProviderConfig )
98113 resp .Diagnostics .Append (diags ... )
99114 if resp .Diagnostics .HasError () {
100115 return
101116 }
102117
103- var app appResource
104- resp .Diagnostics .Append (req . Plan . Get ( ctx , & app ) ... )
118+ w , diags := a . client . GetWorkspaceClientForUnifiedProviderWithDiagnostics ( ctx , workspaceID )
119+ resp .Diagnostics .Append (diags ... )
105120 if resp .Diagnostics .HasError () {
106121 return
107122 }
123+
108124 var appGoSdk apps.App
109125 resp .Diagnostics .Append (converters .TfSdkToGoSdkStruct (ctx , app , & appGoSdk )... )
110126 if resp .Diagnostics .HasError () {
@@ -133,6 +149,7 @@ func (a *resourceApp) Create(ctx context.Context, req resource.CreateRequest, re
133149 return
134150 }
135151 newApp .NoCompute = app .NoCompute
152+ newApp .ProviderConfig = app .ProviderConfig
136153 resp .Diagnostics .Append (resp .State .Set (ctx , newApp )... )
137154 if resp .Diagnostics .HasError () {
138155 return
@@ -150,6 +167,7 @@ func (a *resourceApp) Create(ctx context.Context, req resource.CreateRequest, re
150167 if resp .Diagnostics .HasError () {
151168 return
152169 }
170+ newApp .ProviderConfig = app .ProviderConfig
153171 resp .Diagnostics .Append (resp .State .Set (ctx , newApp )... )
154172 if resp .Diagnostics .HasError () {
155173 return
@@ -195,14 +213,21 @@ func (a *resourceApp) waitForApp(ctx context.Context, w *databricks.WorkspaceCli
195213
196214func (a * resourceApp ) Read (ctx context.Context , req resource.ReadRequest , resp * resource.ReadResponse ) {
197215 ctx = pluginfwcontext .SetUserAgentInResourceContext (ctx , resourceName )
198- w , diags := a .client .GetWorkspaceClient ()
216+
217+ var app appResource
218+ resp .Diagnostics .Append (req .State .Get (ctx , & app )... )
219+ if resp .Diagnostics .HasError () {
220+ return
221+ }
222+
223+ workspaceID , diags := tfschema .GetWorkspaceIDResource (ctx , app .ProviderConfig )
199224 resp .Diagnostics .Append (diags ... )
200225 if resp .Diagnostics .HasError () {
201226 return
202227 }
203228
204- var app appResource
205- resp .Diagnostics .Append (req . State . Get ( ctx , & app ) ... )
229+ w , diags := a . client . GetWorkspaceClientForUnifiedProviderWithDiagnostics ( ctx , workspaceID )
230+ resp .Diagnostics .Append (diags ... )
206231 if resp .Diagnostics .HasError () {
207232 return
208233 }
@@ -219,6 +244,7 @@ func (a *resourceApp) Read(ctx context.Context, req resource.ReadRequest, resp *
219244 return
220245 }
221246 newApp .NoCompute = app .NoCompute
247+ newApp .ProviderConfig = app .ProviderConfig
222248 resp .Diagnostics .Append (resp .State .Set (ctx , newApp )... )
223249 if resp .Diagnostics .HasError () {
224250 return
@@ -227,14 +253,21 @@ func (a *resourceApp) Read(ctx context.Context, req resource.ReadRequest, resp *
227253
228254func (a * resourceApp ) Update (ctx context.Context , req resource.UpdateRequest , resp * resource.UpdateResponse ) {
229255 ctx = pluginfwcontext .SetUserAgentInResourceContext (ctx , resourceName )
230- w , diags := a .client .GetWorkspaceClient ()
256+
257+ var app appResource
258+ resp .Diagnostics .Append (req .Plan .Get (ctx , & app )... )
259+ if resp .Diagnostics .HasError () {
260+ return
261+ }
262+
263+ workspaceID , diags := tfschema .GetWorkspaceIDResource (ctx , app .ProviderConfig )
231264 resp .Diagnostics .Append (diags ... )
232265 if resp .Diagnostics .HasError () {
233266 return
234267 }
235268
236- var app appResource
237- resp .Diagnostics .Append (req . Plan . Get ( ctx , & app ) ... )
269+ w , diags := a . client . GetWorkspaceClientForUnifiedProviderWithDiagnostics ( ctx , workspaceID )
270+ resp .Diagnostics .Append (diags ... )
238271 if resp .Diagnostics .HasError () {
239272 return
240273 }
@@ -259,6 +292,7 @@ func (a *resourceApp) Update(ctx context.Context, req resource.UpdateRequest, re
259292 }
260293 // Modifying no_compute after creation has no effect.
261294 newApp .NoCompute = app .NoCompute
295+ newApp .ProviderConfig = app .ProviderConfig
262296 resp .Diagnostics .Append (resp .State .Set (ctx , newApp )... )
263297 if resp .Diagnostics .HasError () {
264298 return
@@ -267,14 +301,21 @@ func (a *resourceApp) Update(ctx context.Context, req resource.UpdateRequest, re
267301
268302func (a * resourceApp ) Delete (ctx context.Context , req resource.DeleteRequest , resp * resource.DeleteResponse ) {
269303 ctx = pluginfwcontext .SetUserAgentInResourceContext (ctx , resourceName )
270- w , diags := a .client .GetWorkspaceClient ()
304+
305+ var app appResource
306+ resp .Diagnostics .Append (req .State .Get (ctx , & app )... )
307+ if resp .Diagnostics .HasError () {
308+ return
309+ }
310+
311+ workspaceID , diags := tfschema .GetWorkspaceIDResource (ctx , app .ProviderConfig )
271312 resp .Diagnostics .Append (diags ... )
272313 if resp .Diagnostics .HasError () {
273314 return
274315 }
275316
276- var app appResource
277- resp .Diagnostics .Append (req . State . Get ( ctx , & app ) ... )
317+ w , diags := a . client . GetWorkspaceClientForUnifiedProviderWithDiagnostics ( ctx , workspaceID )
318+ resp .Diagnostics .Append (diags ... )
278319 if resp .Diagnostics .HasError () {
279320 return
280321 }
0 commit comments