code: func (p Property) Schema(name, parent string) string {
  
  	// Open the schema template and setup a counter function that will
  	// available in the template to be used to detect when trailing commas
  	// are required in the JSON when looping through maps
  	tmpl, err := template.New("schema-property.template").Funcs(template.FuncMap{
  		"counter":           counter,
  		"convertToJSONType": convertTypeToJSON,
  	}).ParseFiles("generate/templates/schema-property.template")
  
  	var buf bytes.Buffer
  	parentpaths := strings.Split(parent, ".")
  
  	templateData := struct {
  		Name     string
  		Parent   string
  		Property Property
  	}{
  		Name:     name,
  		Parent:   parentpaths[0],
  		Property: p,
  	}
  
  	// Execute the template, writing it to the buffer
  	err = tmpl.Execute(&buf, templateData)
  	if err != nil {
  		fmt.Printf("Error: Failed to generate property %s\n%s\n", name, err)
  		os.Exit(1)
  	}
  
  	return buf.String()
  
  }
docs: // Schema returns a JSON Schema for the resource (as a string)