code: func PlannedDataResourceObject(schema *configschema.Block, config cty.Value) cty.Value {
  	// Our trick here is to run the ProposedNewObject logic with an
  	// entirely-unknown prior value. Because of cty's unknown short-circuit
  	// behavior, any operation on prior returns another unknown, and so
  	// unknown values propagate into all of the parts of the resulting value
  	// that would normally be filled in by preserving the prior state.
  	prior := cty.UnknownVal(schema.ImpliedType())
  	return proposedNewObject(schema, prior, config)
  }
docs: // PlannedDataResourceObject is similar to ProposedNewObject but tailored for
  // planning data resources in particular. Specifically, it replaces the values
  // of any Computed attributes not set in the configuration with an unknown
  // value, which serves as a placeholder for a value to be filled in by the
  // provider when the data resource is finally read.
  //
  // Data resources are different because the planning of them is handled
  // entirely within Terraform Core and not subject to customization by the
  // provider. This function is, in effect, producing an equivalent result to
  // passing the ProposedNewObject result into a provider's PlanResourceChange
  // function, assuming a fixed implementation of PlanResourceChange that just
  // fills in unknown values as needed.