code: func parseValidTypesFromSchema(schema map[string]interface{}, context string) []string {
  	contextSplit := strings.Split(context, ".")
  	key := contextSplit[len(contextSplit)-1]
  
  	definitions := schema["definitions"].(map[string]interface{})
  	service := definitions["service"].(map[string]interface{})
  	properties := service["properties"].(map[string]interface{})
  	property := properties[key].(map[string]interface{})
  
  	var validTypes []string
  
  	if val, ok := property["oneOf"]; ok {
  		validConditions := val.([]interface{})
  
  		for _, validCondition := range validConditions {
  			condition := validCondition.(map[string]interface{})
  			validTypes = append(validTypes, condition["type"].(string))
  		}
  	} else if val, ok := property["$ref"]; ok {
  		reference := val.(string)
  		if reference == "#/definitions/string_or_list" {
  			return []string{"string", "array"}
  		} else if reference == "#/definitions/list_of_strings" {
  			return []string{"array"}
  		} else if reference == "#/definitions/list_or_dict" {
  			return []string{"array", "object"}
  		}
  	}
  
  	return validTypes
  }
docs: // gojsonschema doesn't provide a list of valid types for a property
  // This parses the schema manually to find all valid types