generated from pulumi/pulumi-tf-provider-boilerplate
/
getQuerySpecification.go
232 lines (205 loc) · 10.9 KB
/
getQuerySpecification.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT.
// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! ***
package honeycomb
import (
"context"
"reflect"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
// ## # Data Source: GetQuerySpecification
//
// Generates a [Query Specificaiton](https://docs.honeycomb.io/api/query-specification/) in JSON format.
//
// This is a data source which can be used to construct a JSON representation of a Honeycomb [Query Specification](https://docs.honeycomb.io/api/query-specification/). The `json` attribute contains a serialized JSON representation which can be passed to the `queryJson` field of the `Query` resource for use in boards and triggers.
//
// ## Example Usage
//
// ```go
// package main
//
// import (
// "github.com/pulumi/pulumi-honeycomb/sdk/go/honeycomb"
// "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
// )
//
// func main() {
// pulumi.Run(func(ctx *pulumi.Context) error {
// example, err := honeycomb.GetQuerySpecification(ctx, &GetQuerySpecificationArgs{
// Calculations: []GetQuerySpecificationCalculation{
// GetQuerySpecificationCalculation{
// Op: "AVG",
// Column: pulumi.StringRef("duration_ms"),
// },
// },
// Filters: []GetQuerySpecificationFilter{
// GetQuerySpecificationFilter{
// Column: "trace.parent_id",
// Op: "does-not-exist",
// },
// GetQuerySpecificationFilter{
// Column: "app.tenant",
// Op: "=",
// Value: pulumi.StringRef("ThatSpecialTenant"),
// },
// },
// FilterCombination: pulumi.StringRef("AND"),
// Breakdowns: []string{
// "app.tenant",
// },
// TimeRange: pulumi.IntRef(28800),
// }, nil)
// if err != nil {
// return err
// }
// ctx.Export("jsonQuery", example.Json)
// return nil
// })
// }
// ```
func GetQuerySpecification(ctx *pulumi.Context, args *GetQuerySpecificationArgs, opts ...pulumi.InvokeOption) (*GetQuerySpecificationResult, error) {
opts = pkgInvokeDefaultOpts(opts)
var rv GetQuerySpecificationResult
err := ctx.Invoke("honeycomb:index/getQuerySpecification:GetQuerySpecification", args, &rv, opts...)
if err != nil {
return nil, err
}
return &rv, nil
}
// A collection of arguments for invoking GetQuerySpecification.
type GetQuerySpecificationArgs struct {
// A list of fields to group by.
Breakdowns []string `pulumi:"breakdowns"`
// Zero or more configuration blocks (described below) with the calculations that should be displayed. If no calculations are specified, `COUNT` will be used.
Calculations []GetQuerySpecificationCalculation `pulumi:"calculations"`
// The absolute end time of the query in Unix Time (= seconds since epoch).
EndTime *int `pulumi:"endTime"`
// How to combine multiple filters, either `AND` (default) or `OR`.
FilterCombination *string `pulumi:"filterCombination"`
// Zero or more configuration blocks (described below) with the filters that should be applied.
Filters []GetQuerySpecificationFilter `pulumi:"filters"`
// The time resolution of the query’s graph, in seconds. Valid values must be in between the query’s time range /10 at maximum, and /1000 at minimum.
Granularity *int `pulumi:"granularity"`
// Zero or more filters used to restrict returned groups in the query result.
Havings []GetQuerySpecificationHaving `pulumi:"havings"`
// The maximum number of query results, must be between 1 and 1000.
Limit *int `pulumi:"limit"`
// Zero or more configuration blocks (described below) describing how to order the query results. Each term must appear in either `calculation` or `breakdowns`.
Orders []GetQuerySpecificationOrder `pulumi:"orders"`
// The absolute start time of the query in Unix Time (= seconds since epoch).
StartTime *int `pulumi:"startTime"`
// The time range of the query in seconds, defaults to two hours.
TimeRange *int `pulumi:"timeRange"`
}
// A collection of values returned by GetQuerySpecification.
type GetQuerySpecificationResult struct {
Breakdowns []string `pulumi:"breakdowns"`
Calculations []GetQuerySpecificationCalculation `pulumi:"calculations"`
EndTime *int `pulumi:"endTime"`
FilterCombination *string `pulumi:"filterCombination"`
Filters []GetQuerySpecificationFilter `pulumi:"filters"`
Granularity *int `pulumi:"granularity"`
Havings []GetQuerySpecificationHaving `pulumi:"havings"`
// The provider-assigned unique ID for this managed resource.
Id string `pulumi:"id"`
// JSON representation of the query according to the [Query Specification](https://docs.honeycomb.io/api/query-specification/#fields-on-a-query-specification), can be used as input for other resources.
Json string `pulumi:"json"`
Limit *int `pulumi:"limit"`
Orders []GetQuerySpecificationOrder `pulumi:"orders"`
StartTime *int `pulumi:"startTime"`
TimeRange *int `pulumi:"timeRange"`
}
func GetQuerySpecificationOutput(ctx *pulumi.Context, args GetQuerySpecificationOutputArgs, opts ...pulumi.InvokeOption) GetQuerySpecificationResultOutput {
return pulumi.ToOutputWithContext(context.Background(), args).
ApplyT(func(v interface{}) (GetQuerySpecificationResult, error) {
args := v.(GetQuerySpecificationArgs)
r, err := GetQuerySpecification(ctx, &args, opts...)
var s GetQuerySpecificationResult
if r != nil {
s = *r
}
return s, err
}).(GetQuerySpecificationResultOutput)
}
// A collection of arguments for invoking GetQuerySpecification.
type GetQuerySpecificationOutputArgs struct {
// A list of fields to group by.
Breakdowns pulumi.StringArrayInput `pulumi:"breakdowns"`
// Zero or more configuration blocks (described below) with the calculations that should be displayed. If no calculations are specified, `COUNT` will be used.
Calculations GetQuerySpecificationCalculationArrayInput `pulumi:"calculations"`
// The absolute end time of the query in Unix Time (= seconds since epoch).
EndTime pulumi.IntPtrInput `pulumi:"endTime"`
// How to combine multiple filters, either `AND` (default) or `OR`.
FilterCombination pulumi.StringPtrInput `pulumi:"filterCombination"`
// Zero or more configuration blocks (described below) with the filters that should be applied.
Filters GetQuerySpecificationFilterArrayInput `pulumi:"filters"`
// The time resolution of the query’s graph, in seconds. Valid values must be in between the query’s time range /10 at maximum, and /1000 at minimum.
Granularity pulumi.IntPtrInput `pulumi:"granularity"`
// Zero or more filters used to restrict returned groups in the query result.
Havings GetQuerySpecificationHavingArrayInput `pulumi:"havings"`
// The maximum number of query results, must be between 1 and 1000.
Limit pulumi.IntPtrInput `pulumi:"limit"`
// Zero or more configuration blocks (described below) describing how to order the query results. Each term must appear in either `calculation` or `breakdowns`.
Orders GetQuerySpecificationOrderArrayInput `pulumi:"orders"`
// The absolute start time of the query in Unix Time (= seconds since epoch).
StartTime pulumi.IntPtrInput `pulumi:"startTime"`
// The time range of the query in seconds, defaults to two hours.
TimeRange pulumi.IntPtrInput `pulumi:"timeRange"`
}
func (GetQuerySpecificationOutputArgs) ElementType() reflect.Type {
return reflect.TypeOf((*GetQuerySpecificationArgs)(nil)).Elem()
}
// A collection of values returned by GetQuerySpecification.
type GetQuerySpecificationResultOutput struct{ *pulumi.OutputState }
func (GetQuerySpecificationResultOutput) ElementType() reflect.Type {
return reflect.TypeOf((*GetQuerySpecificationResult)(nil)).Elem()
}
func (o GetQuerySpecificationResultOutput) ToGetQuerySpecificationResultOutput() GetQuerySpecificationResultOutput {
return o
}
func (o GetQuerySpecificationResultOutput) ToGetQuerySpecificationResultOutputWithContext(ctx context.Context) GetQuerySpecificationResultOutput {
return o
}
func (o GetQuerySpecificationResultOutput) Breakdowns() pulumi.StringArrayOutput {
return o.ApplyT(func(v GetQuerySpecificationResult) []string { return v.Breakdowns }).(pulumi.StringArrayOutput)
}
func (o GetQuerySpecificationResultOutput) Calculations() GetQuerySpecificationCalculationArrayOutput {
return o.ApplyT(func(v GetQuerySpecificationResult) []GetQuerySpecificationCalculation { return v.Calculations }).(GetQuerySpecificationCalculationArrayOutput)
}
func (o GetQuerySpecificationResultOutput) EndTime() pulumi.IntPtrOutput {
return o.ApplyT(func(v GetQuerySpecificationResult) *int { return v.EndTime }).(pulumi.IntPtrOutput)
}
func (o GetQuerySpecificationResultOutput) FilterCombination() pulumi.StringPtrOutput {
return o.ApplyT(func(v GetQuerySpecificationResult) *string { return v.FilterCombination }).(pulumi.StringPtrOutput)
}
func (o GetQuerySpecificationResultOutput) Filters() GetQuerySpecificationFilterArrayOutput {
return o.ApplyT(func(v GetQuerySpecificationResult) []GetQuerySpecificationFilter { return v.Filters }).(GetQuerySpecificationFilterArrayOutput)
}
func (o GetQuerySpecificationResultOutput) Granularity() pulumi.IntPtrOutput {
return o.ApplyT(func(v GetQuerySpecificationResult) *int { return v.Granularity }).(pulumi.IntPtrOutput)
}
func (o GetQuerySpecificationResultOutput) Havings() GetQuerySpecificationHavingArrayOutput {
return o.ApplyT(func(v GetQuerySpecificationResult) []GetQuerySpecificationHaving { return v.Havings }).(GetQuerySpecificationHavingArrayOutput)
}
// The provider-assigned unique ID for this managed resource.
func (o GetQuerySpecificationResultOutput) Id() pulumi.StringOutput {
return o.ApplyT(func(v GetQuerySpecificationResult) string { return v.Id }).(pulumi.StringOutput)
}
// JSON representation of the query according to the [Query Specification](https://docs.honeycomb.io/api/query-specification/#fields-on-a-query-specification), can be used as input for other resources.
func (o GetQuerySpecificationResultOutput) Json() pulumi.StringOutput {
return o.ApplyT(func(v GetQuerySpecificationResult) string { return v.Json }).(pulumi.StringOutput)
}
func (o GetQuerySpecificationResultOutput) Limit() pulumi.IntPtrOutput {
return o.ApplyT(func(v GetQuerySpecificationResult) *int { return v.Limit }).(pulumi.IntPtrOutput)
}
func (o GetQuerySpecificationResultOutput) Orders() GetQuerySpecificationOrderArrayOutput {
return o.ApplyT(func(v GetQuerySpecificationResult) []GetQuerySpecificationOrder { return v.Orders }).(GetQuerySpecificationOrderArrayOutput)
}
func (o GetQuerySpecificationResultOutput) StartTime() pulumi.IntPtrOutput {
return o.ApplyT(func(v GetQuerySpecificationResult) *int { return v.StartTime }).(pulumi.IntPtrOutput)
}
func (o GetQuerySpecificationResultOutput) TimeRange() pulumi.IntPtrOutput {
return o.ApplyT(func(v GetQuerySpecificationResult) *int { return v.TimeRange }).(pulumi.IntPtrOutput)
}
func init() {
pulumi.RegisterOutputType(GetQuerySpecificationResultOutput{})
}