code: func SchemaForCtyElementType(ty cty.Type) *configschema.Block {
  	atys := ty.AttributeTypes()
  	ret := &configschema.Block{
  		Attributes: make(map[string]*configschema.Attribute, len(atys)),
  	}
  	for name, aty := range atys {
  		ret.Attributes[name] = &configschema.Attribute{
  			Type:     aty,
  			Optional: true,
  		}
  	}
  	return ret
  }
docs: // SchemaForCtyElementType converts a cty object type into an
  // approximately-equivalent configschema.Block representing the element of
  // a list or set. If the given type is not an object type then this
  // function will panic.