code: func (a *CompositeAggregationDateHistogramValuesSource) Source() (interface{}, error) {
  	source := make(map[string]interface{})
  	name := make(map[string]interface{})
  	source[a.name] = name
  	values := make(map[string]interface{})
  	name["date_histogram"] = values
  
  	// field
  	if a.field != "" {
  		values["field"] = a.field
  	}
  
  	// script
  	if a.script != nil {
  		src, err := a.script.Source()
  		if err != nil {
  			return nil, err
  		}
  		values["script"] = src
  	}
  
  	// missing
  	if a.missing != nil {
  		values["missing"] = a.missing
  	}
  
  	// missing_bucket
  	if a.missingBucket != nil {
  		values["missing_bucket"] = *a.missingBucket
  	}
  
  	// value_type
  	if a.valueType != "" {
  		values["value_type"] = a.valueType
  	}
  
  	// order
  	if a.order != "" {
  		values["order"] = a.order
  	}
  
  	if a.format != "" {
  		values["format"] = a.format
  	}
  
  	// DateHistogram-related properties
  	values["interval"] = a.interval
  
  	// timeZone
  	if a.timeZone != "" {
  		values["time_zone"] = a.timeZone
  	}
  
  	return source, nil
  }
docs: // Source returns the serializable JSON for this values source.