Add provider configuration fetching to Configure since it will be a very common use case
This commit is contained in:
parent
322c453bdf
commit
d1b343faed
@ -12,6 +12,13 @@ import (
|
||||
// provider satisfies the tfsdk.Provider interface and usually is included
|
||||
// with all Resource and DataSource implementations.
|
||||
type provider struct {
|
||||
// client can contain the upstream provider SDK or HTTP client used to
|
||||
// communicate with the upstream service. Resource and DataSource
|
||||
// implementations can then make calls using this client.
|
||||
//
|
||||
// TODO: If appropriate, implement upstream provider SDK or HTTP client.
|
||||
// client vendorsdk.ExampleClient
|
||||
|
||||
// configured is set to true at the end of the Configure method.
|
||||
// This can be used in Resource and DataSource implementations to verify
|
||||
// that the provider was previously configured.
|
||||
@ -21,16 +28,25 @@ type provider struct {
|
||||
// provider is built and ran locally, and "test" when running acceptance
|
||||
// testing.
|
||||
version string
|
||||
}
|
||||
|
||||
// client can contain the upstream provider SDK or HTTP client used to
|
||||
// communicate with the upstream service. Resource and DataSource
|
||||
// implementations can then make calls using this client.
|
||||
//
|
||||
// TODO: If appropriate, implement upstream provider SDK or HTTP client.
|
||||
// client vendorsdk.ExampleClient
|
||||
// providerData can be used to store data from the Terraform configuration.
|
||||
type providerData struct {
|
||||
Example types.String `tfsdk:"example"`
|
||||
}
|
||||
|
||||
func (p *provider) Configure(ctx context.Context, req tfsdk.ConfigureProviderRequest, resp *tfsdk.ConfigureProviderResponse) {
|
||||
var data providerData
|
||||
diags := req.Config.Get(ctx, &data)
|
||||
resp.Diagnostics.Append(diags...)
|
||||
|
||||
if resp.Diagnostics.HasError() {
|
||||
return
|
||||
}
|
||||
|
||||
// Configuration values are now available.
|
||||
// if data.Example.Null { /* ... */ }
|
||||
|
||||
// If the upstream provider SDK or HTTP client requires configuration, such
|
||||
// as authentication or logging, this is a great opportunity to do so.
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user