2
2
// Elasticsearch B.V licenses this file to you under the Apache 2.0 License.
3
3
// See the LICENSE file in the project root for more information
4
4
5
+ using System ;
5
6
using System . Runtime . Serialization ;
6
7
7
8
namespace Nest
@@ -21,11 +22,24 @@ public interface IDateHistogramCompositeAggregationSource : ICompositeAggregatio
21
22
string Format { get ; set ; }
22
23
23
24
/// <summary>
24
- /// The interval to use when bucketing documents
25
+ /// The interval to use when bucketing documents
25
26
/// </summary>
26
27
[ DataMember ( Name = "interval" ) ]
28
+ [ Obsolete ( "Use FixedInterval or CalendarInterval" ) ]
27
29
Union < DateInterval ? , Time > Interval { get ; set ; }
28
30
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
+
29
43
/// <summary>
30
44
/// Used to indicate that bucketing should use a different time zone.
31
45
/// 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) { }
44
58
public string Format { get ; set ; }
45
59
46
60
/// <inheritdoc />
61
+ [ Obsolete ( "Use FixedInterval or CalendarInterval" ) ]
47
62
public Union < DateInterval ? , Time > Interval { get ; set ; }
48
63
64
+ /// <inheritdoc />
65
+ public Union < DateInterval ? , DateMathTime > CalendarInterval { get ; set ; }
66
+
67
+ /// <inheritdoc />
68
+ public Time FixedInterval { get ; set ; }
69
+
49
70
/// <inheritdoc />
50
71
public string TimeZone { get ; set ; }
51
72
@@ -62,16 +83,32 @@ public DateHistogramCompositeAggregationSourceDescriptor(string name) : base(nam
62
83
63
84
string IDateHistogramCompositeAggregationSource . Format { get ; set ; }
64
85
Union < DateInterval ? , Time > IDateHistogramCompositeAggregationSource . Interval { get ; set ; }
86
+ Union < DateInterval ? , DateMathTime > IDateHistogramCompositeAggregationSource . CalendarInterval { get ; set ; }
87
+ Time IDateHistogramCompositeAggregationSource . FixedInterval { get ; set ; }
65
88
string IDateHistogramCompositeAggregationSource . TimeZone { get ; set ; }
66
89
67
90
/// <inheritdoc cref="IDateHistogramCompositeAggregationSource.Interval" />
91
+ [ Obsolete ( "Use FixedInterval or CalendarInterval" ) ]
68
92
public DateHistogramCompositeAggregationSourceDescriptor < T > Interval ( DateInterval ? interval ) =>
69
93
Assign ( interval , ( a , v ) => a . Interval = v ) ;
70
94
71
95
/// <inheritdoc cref="IDateHistogramCompositeAggregationSource.Interval" />
96
+ [ Obsolete ( "Use FixedInterval or CalendarInterval" ) ]
72
97
public DateHistogramCompositeAggregationSourceDescriptor < T > Interval ( Time interval ) =>
73
98
Assign ( interval , ( a , v ) => a . Interval = v ) ;
74
99
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
+
75
112
/// <inheritdoc cref="IDateHistogramCompositeAggregationSource.TimeZone" />
76
113
public DateHistogramCompositeAggregationSourceDescriptor < T > TimeZone ( string timezone ) => Assign ( timezone , ( a , v ) => a . TimeZone = v ) ;
77
114
0 commit comments