diff --git a/plugin/grpc_provider.go b/plugin/grpc_provider.go index 7287ac836b..3f29e0f108 100644 --- a/plugin/grpc_provider.go +++ b/plugin/grpc_provider.go @@ -331,6 +331,7 @@ func (p *GRPCProvider) ReadResource(r providers.ReadResourceRequest) (resp provi log.Printf("[TRACE] GRPCProvider: ReadResource") resSchema := p.getResourceSchema(r.TypeName) + metaSchema := p.getProviderMetaSchema() mp, err := msgpack.Marshal(r.PriorState, resSchema.Block.ImpliedType()) if err != nil { @@ -344,6 +345,15 @@ func (p *GRPCProvider) ReadResource(r providers.ReadResourceRequest) (resp provi Private: r.Private, } + if metaSchema.Block != nil { + metaMP, err := msgpack.Marshal(r.ProviderMeta, metaSchema.Block.ImpliedType()) + if err != nil { + resp.Diagnostics = resp.Diagnostics.Append(err) + return resp + } + protoReq.ProviderMeta = &proto.DynamicValue{Msgpack: metaMP} + } + protoResp, err := p.client.ReadResource(p.ctx, protoReq) if err != nil { resp.Diagnostics = resp.Diagnostics.Append(err)