@@ -138,37 +138,129 @@ func (r *PolicyService) Get(ctx context.Context, policyID string, query PolicyGe
138
138
return
139
139
}
140
140
141
- type Mechanism map [string ][]MechanismItem
141
+ // List of IDs that will be used when dispatching a notification. IDs for email
142
+ // type will be the email address.
143
+ type Mechanism struct {
144
+ Email []MechanismEmail `json:"email"`
145
+ Pagerduty []MechanismPagerduty `json:"pagerduty"`
146
+ Webhooks []MechanismWebhook `json:"webhooks"`
147
+ JSON mechanismJSON `json:"-"`
148
+ }
149
+
150
+ // mechanismJSON contains the JSON metadata for the struct [Mechanism]
151
+ type mechanismJSON struct {
152
+ Email apijson.Field
153
+ Pagerduty apijson.Field
154
+ Webhooks apijson.Field
155
+ raw string
156
+ ExtraFields map [string ]apijson.Field
157
+ }
142
158
143
- type MechanismItem struct {
144
- // UUID
145
- ID string `json:"id"`
146
- JSON mechanismItemJSON `json:"-"`
159
+ func (r * Mechanism ) UnmarshalJSON (data []byte ) (err error ) {
160
+ return apijson .UnmarshalRoot (data , r )
147
161
}
148
162
149
- // mechanismItemJSON contains the JSON metadata for the struct [MechanismItem]
150
- type mechanismItemJSON struct {
163
+ func (r mechanismJSON ) RawJSON () string {
164
+ return r .raw
165
+ }
166
+
167
+ type MechanismEmail struct {
168
+ // The email address
169
+ ID string `json:"id"`
170
+ JSON mechanismEmailJSON `json:"-"`
171
+ }
172
+
173
+ // mechanismEmailJSON contains the JSON metadata for the struct [MechanismEmail]
174
+ type mechanismEmailJSON struct {
151
175
ID apijson.Field
152
176
raw string
153
177
ExtraFields map [string ]apijson.Field
154
178
}
155
179
156
- func (r * MechanismItem ) UnmarshalJSON (data []byte ) (err error ) {
180
+ func (r * MechanismEmail ) UnmarshalJSON (data []byte ) (err error ) {
157
181
return apijson .UnmarshalRoot (data , r )
158
182
}
159
183
160
- func (r mechanismItemJSON ) RawJSON () string {
184
+ func (r mechanismEmailJSON ) RawJSON () string {
161
185
return r .raw
162
186
}
163
187
164
- type MechanismParam map [string ][]MechanismItemParam
188
+ type MechanismPagerduty struct {
189
+ // UUID
190
+ ID string `json:"id"`
191
+ JSON mechanismPagerdutyJSON `json:"-"`
192
+ }
193
+
194
+ // mechanismPagerdutyJSON contains the JSON metadata for the struct
195
+ // [MechanismPagerduty]
196
+ type mechanismPagerdutyJSON struct {
197
+ ID apijson.Field
198
+ raw string
199
+ ExtraFields map [string ]apijson.Field
200
+ }
201
+
202
+ func (r * MechanismPagerduty ) UnmarshalJSON (data []byte ) (err error ) {
203
+ return apijson .UnmarshalRoot (data , r )
204
+ }
165
205
166
- type MechanismItemParam struct {
206
+ func (r mechanismPagerdutyJSON ) RawJSON () string {
207
+ return r .raw
208
+ }
209
+
210
+ type MechanismWebhook struct {
167
211
// UUID
212
+ ID string `json:"id"`
213
+ JSON mechanismWebhookJSON `json:"-"`
214
+ }
215
+
216
+ // mechanismWebhookJSON contains the JSON metadata for the struct
217
+ // [MechanismWebhook]
218
+ type mechanismWebhookJSON struct {
219
+ ID apijson.Field
220
+ raw string
221
+ ExtraFields map [string ]apijson.Field
222
+ }
223
+
224
+ func (r * MechanismWebhook ) UnmarshalJSON (data []byte ) (err error ) {
225
+ return apijson .UnmarshalRoot (data , r )
226
+ }
227
+
228
+ func (r mechanismWebhookJSON ) RawJSON () string {
229
+ return r .raw
230
+ }
231
+
232
+ // List of IDs that will be used when dispatching a notification. IDs for email
233
+ // type will be the email address.
234
+ type MechanismParam struct {
235
+ Email param.Field [[]MechanismEmailParam ] `json:"email"`
236
+ Pagerduty param.Field [[]MechanismPagerdutyParam ] `json:"pagerduty"`
237
+ Webhooks param.Field [[]MechanismWebhookParam ] `json:"webhooks"`
238
+ }
239
+
240
+ func (r MechanismParam ) MarshalJSON () (data []byte , err error ) {
241
+ return apijson .MarshalRoot (r )
242
+ }
243
+
244
+ type MechanismEmailParam struct {
245
+ // The email address
168
246
ID param.Field [string ] `json:"id"`
169
247
}
170
248
171
- func (r MechanismItemParam ) MarshalJSON () (data []byte , err error ) {
249
+ func (r MechanismEmailParam ) MarshalJSON () (data []byte , err error ) {
250
+ return apijson .MarshalRoot (r )
251
+ }
252
+
253
+ type MechanismPagerdutyParam struct {
254
+ }
255
+
256
+ func (r MechanismPagerdutyParam ) MarshalJSON () (data []byte , err error ) {
257
+ return apijson .MarshalRoot (r )
258
+ }
259
+
260
+ type MechanismWebhookParam struct {
261
+ }
262
+
263
+ func (r MechanismWebhookParam ) MarshalJSON () (data []byte , err error ) {
172
264
return apijson .MarshalRoot (r )
173
265
}
174
266
0 commit comments