22// Elasticsearch B.V licenses this file to you under the Apache 2.0 License.
33// See the LICENSE file in the project root for more information
44
5+ using System ;
56using System . Runtime . Serialization ;
67
78namespace Nest
@@ -21,11 +22,24 @@ public interface IDateHistogramCompositeAggregationSource : ICompositeAggregatio
2122 string Format { get ; set ; }
2223
2324 /// <summary>
24- /// The interval to use when bucketing documents
25+ /// The interval to use when bucketing documents
2526 /// </summary>
2627 [ DataMember ( Name = "interval" ) ]
28+ [ Obsolete ( "Use FixedInterval or CalendarInterval" ) ]
2729 Union < DateInterval ? , Time > Interval { get ; set ; }
2830
31+ /// <summary>
32+ /// The calendar interval to use when bucketing documents
33+ /// </summary>
34+ [ DataMember ( Name = "calendar_interval" ) ]
35+ public Union < DateInterval ? , DateMathTime > CalendarInterval { get ; set ; }
36+
37+ /// <summary>
38+ /// The fixed interval to use when bucketing documents
39+ /// </summary>
40+ [ DataMember ( Name = "fixed_interval" ) ]
41+ public Time FixedInterval { get ; set ; }
42+
2943 /// <summary>
3044 /// Used to indicate that bucketing should use a different time zone.
3145 /// Time zones may either be specified as an ISO 8601 UTC offset (e.g. +01:00 or -08:00)
@@ -44,8 +58,15 @@ public DateHistogramCompositeAggregationSource(string name) : base(name) { }
4458 public string Format { get ; set ; }
4559
4660 /// <inheritdoc />
61+ [ Obsolete ( "Use FixedInterval or CalendarInterval" ) ]
4762 public Union < DateInterval ? , Time > Interval { get ; set ; }
4863
64+ /// <inheritdoc />
65+ public Union < DateInterval ? , DateMathTime > CalendarInterval { get ; set ; }
66+
67+ /// <inheritdoc />
68+ public Time FixedInterval { get ; set ; }
69+
4970 /// <inheritdoc />
5071 public string TimeZone { get ; set ; }
5172
@@ -62,16 +83,32 @@ public DateHistogramCompositeAggregationSourceDescriptor(string name) : base(nam
6283
6384 string IDateHistogramCompositeAggregationSource . Format { get ; set ; }
6485 Union < DateInterval ? , Time > IDateHistogramCompositeAggregationSource . Interval { get ; set ; }
86+ Union < DateInterval ? , DateMathTime > IDateHistogramCompositeAggregationSource . CalendarInterval { get ; set ; }
87+ Time IDateHistogramCompositeAggregationSource . FixedInterval { get ; set ; }
6588 string IDateHistogramCompositeAggregationSource . TimeZone { get ; set ; }
6689
6790 /// <inheritdoc cref="IDateHistogramCompositeAggregationSource.Interval" />
91+ [ Obsolete ( "Use FixedInterval or CalendarInterval" ) ]
6892 public DateHistogramCompositeAggregationSourceDescriptor < T > Interval ( DateInterval ? interval ) =>
6993 Assign ( interval , ( a , v ) => a . Interval = v ) ;
7094
7195 /// <inheritdoc cref="IDateHistogramCompositeAggregationSource.Interval" />
96+ [ Obsolete ( "Use FixedInterval or CalendarInterval" ) ]
7297 public DateHistogramCompositeAggregationSourceDescriptor < T > Interval ( Time interval ) =>
7398 Assign ( interval , ( a , v ) => a . Interval = v ) ;
7499
100+ /// <inheritdoc cref="IDateHistogramCompositeAggregationSource.CalendarInterval" />
101+ public DateHistogramCompositeAggregationSourceDescriptor < T > CalendarInterval ( DateInterval ? interval ) =>
102+ Assign ( interval , ( a , v ) => a . CalendarInterval = v ) ;
103+
104+ /// <inheritdoc cref="IDateHistogramCompositeAggregationSource.CalendarInterval" />
105+ public DateHistogramCompositeAggregationSourceDescriptor < T > CalendarInterval ( DateMathTime interval ) =>
106+ Assign ( interval , ( a , v ) => a . CalendarInterval = v ) ;
107+
108+ /// <inheritdoc cref="IDateHistogramCompositeAggregationSource.FixedInterval" />
109+ public DateHistogramCompositeAggregationSourceDescriptor < T > FixedInterval ( Time interval ) =>
110+ Assign ( interval , ( a , v ) => a . FixedInterval = v ) ;
111+
75112 /// <inheritdoc cref="IDateHistogramCompositeAggregationSource.TimeZone" />
76113 public DateHistogramCompositeAggregationSourceDescriptor < T > TimeZone ( string timezone ) => Assign ( timezone , ( a , v ) => a . TimeZone = v ) ;
77114
0 commit comments