func KindProperties(ctx context.Context, kind string) (map[string][]string, error) {
	// TODO(djd): Support range queries.
	kindKey := NewKey(ctx, kindKind, kind, 0, nil)
	q := NewQuery(propertyKind).Ancestor(kindKey)

	propMap := map[string][]string{}
	props := []struct {
		Repr []string `datastore:"property_representation"`
	}{}

	keys, err := q.GetAll(ctx, &props)
	if err != nil {
		return nil, err
	}
	for i, p := range props {
		propMap[keys[i].StringID()] = p.Repr
	}
	return propMap, nil
}
func KindProperties(ctx context.Context, kind string) (map[string][]string, error) {
	
	kindKey := NewKey(ctx, kindKind, kind, 0, nil)
	q := NewQuery(propertyKind).Ancestor(kindKey)

	propMap := map[string][]string{}
	props := []struct {
		Repr []string `datastore:"property_representation"`
	}{}

	keys, err := q.GetAll(ctx, &props)
	if err != nil {
		return nil, err
	}
	for i, p := range props {
		propMap[keys[i].StringID()] = p.Repr
	}
	return propMap, nil
}
func KindProperties ( ctx context . Context , kind string ) ( map [ string ] [ ] string , error ) { // TODO(djd): Support range queries. kindKey := NewKey ( ctx , kindKind , kind , 0 , nil ) q := NewQuery ( propertyKind ) . Ancestor ( kindKey ) propMap := map [ string ] [ ] string { } props := [ ] struct { Repr [ ] string `datastore:"property_representation"` } { } keys , err := q . GetAll ( ctx , & props ) if err != nil { return nil , err } for i , p := range props { propMap [ keys [ i ] . StringID ( ) ] = p . Repr } return propMap , nil }
// KindProperties returns all the indexed properties for the given kind.
// The properties are returned as a map of property names to a slice of the
// representation types. The representation types for the supported Go property
// types are:
//   "INT64":     signed integers and time.Time
//   "DOUBLE":    float32 and float64
//   "BOOLEAN":   bool
//   "STRING":    string, []byte and ByteString
//   "POINT":     appengine.GeoPoint
//   "REFERENCE": *Key
//   "USER":      (not used in the Go runtime)
KindProperties returns all the indexed properties for the given kind . The properties are returned as a map of property names to a slice of the representation types . The representation types for the supported Go property types are : INT64 : signed integers and time . Time DOUBLE : float32 and float64 BOOLEAN : bool STRING : string [] byte and ByteString POINT : appengine . GeoPoint REFERENCE : * Key USER : ( not used in the Go runtime )