code: func ProviderHasResource(provider Interface, typeName string) bool {
  	resp := provider.GetSchema()
  	if resp.Diagnostics.HasErrors() {
  		return false
  	}
  
  	_, exists := resp.ResourceTypes[typeName]
  	return exists
  }
docs: // ProviderHasResource is a helper that requests schema from the given provider
  // and checks if it has a resource type of the given name.
  //
  // This function is more expensive than it may first appear since it must
  // retrieve the entire schema from the underlying provider, and so it should
  // be used sparingly and especially not in tight loops.
  //
  // Since retrieving the provider may fail (e.g. if the provider is accessed
  // over an RPC channel that has operational problems), this function will
  // return false if the schema cannot be retrieved, under the assumption that
  // a subsequent call to do anything with the resource type would fail
  // anyway.