Skip to content

Commit e519317

Browse files
author
ci.datadog-api-spec
committed
Regenerate client from commit 0b9d42f of spec repo
1 parent a2cf563 commit e519317

8 files changed

Lines changed: 477 additions & 41 deletions

File tree

.generator/schemas/v2/openapi.yaml

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60292,6 +60292,7 @@ components:
6029260292
- $ref: "#/components/schemas/SendSlackMessageAction"
6029360293
- $ref: "#/components/schemas/SendTeamsMessageAction"
6029460294
- $ref: "#/components/schemas/TriggerWorkflowAutomationAction"
60295+
- $ref: "#/components/schemas/RoutingRuleEscalationPolicyAction"
6029560296
RoutingRuleAttributes:
6029660297
description: Defines the configurable attributes of a routing rule, such as actions, query, time restriction, and urgency.
6029760298
properties:
@@ -60309,6 +60310,37 @@ components:
6030960310
urgency:
6031060311
$ref: "#/components/schemas/Urgency"
6031160312
type: object
60313+
RoutingRuleEscalationPolicyAction:
60314+
description: "Routes the page to an escalation policy, optionally restricted to business hours."
60315+
properties:
60316+
ack_timeout_minutes:
60317+
description: "The number of minutes before an acknowledged page is re-triggered."
60318+
example: 30
60319+
format: int64
60320+
type: integer
60321+
policy_id:
60322+
description: "The ID of the escalation policy to route to."
60323+
example: "00000000-0000-0000-0000-000000000000"
60324+
type: string
60325+
support_hours:
60326+
$ref: "#/components/schemas/TimeRestrictions"
60327+
type:
60328+
$ref: "#/components/schemas/RoutingRuleEscalationPolicyActionType"
60329+
urgency:
60330+
$ref: "#/components/schemas/Urgency"
60331+
required:
60332+
- type
60333+
- policy_id
60334+
type: object
60335+
RoutingRuleEscalationPolicyActionType:
60336+
default: escalation_policy
60337+
description: "Indicates that the action routes to an escalation policy."
60338+
enum:
60339+
- escalation_policy
60340+
example: escalation_policy
60341+
type: string
60342+
x-enum-varnames:
60343+
- ESCALATION_POLICY
6031260344
RoutingRuleRelationships:
6031360345
description: Specifies relationships for a routing rule, linking to associated policy resources.
6031460346
properties:

examples/v2/on-call/SetOnCallTeamRoutingRules.java

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
import com.datadog.api.client.v2.api.OnCallApi;
66
import com.datadog.api.client.v2.api.OnCallApi.SetOnCallTeamRoutingRulesOptionalParameters;
77
import com.datadog.api.client.v2.model.RoutingRuleAction;
8-
import com.datadog.api.client.v2.model.SendSlackMessageAction;
9-
import com.datadog.api.client.v2.model.SendSlackMessageActionType;
8+
import com.datadog.api.client.v2.model.RoutingRuleEscalationPolicyAction;
9+
import com.datadog.api.client.v2.model.RoutingRuleEscalationPolicyActionType;
1010
import com.datadog.api.client.v2.model.TeamRoutingRules;
1111
import com.datadog.api.client.v2.model.TeamRoutingRulesRequest;
1212
import com.datadog.api.client.v2.model.TeamRoutingRulesRequestData;
@@ -43,12 +43,13 @@ public static void main(String[] args) {
4343
.actions(
4444
Collections.singletonList(
4545
new RoutingRuleAction(
46-
new SendSlackMessageAction()
47-
.channel("channel")
46+
new RoutingRuleEscalationPolicyAction()
4847
.type(
49-
SendSlackMessageActionType
50-
.SEND_SLACK_MESSAGE)
51-
.workspace("workspace"))))
48+
RoutingRuleEscalationPolicyActionType
49+
.ESCALATION_POLICY)
50+
.policyId(ESCALATION_POLICY_DATA_ID)
51+
.urgency(Urgency.LOW)
52+
.ackTimeoutMinutes(30L))))
5253
.query("tags.service:test")
5354
.timeRestriction(
5455
new TimeRestrictions()

src/main/java/com/datadog/api/client/v2/model/RoutingRuleAction.java

Lines changed: 75 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -213,6 +213,52 @@ public RoutingRuleAction deserialize(JsonParser jp, DeserializationContext ctxt)
213213
Level.FINER, "Input data does not match schema 'TriggerWorkflowAutomationAction'", e);
214214
}
215215

216+
// deserialize RoutingRuleEscalationPolicyAction
217+
try {
218+
boolean attemptParsing = true;
219+
// ensure that we respect type coercion as set on the client ObjectMapper
220+
if (RoutingRuleEscalationPolicyAction.class.equals(Integer.class)
221+
|| RoutingRuleEscalationPolicyAction.class.equals(Long.class)
222+
|| RoutingRuleEscalationPolicyAction.class.equals(Float.class)
223+
|| RoutingRuleEscalationPolicyAction.class.equals(Double.class)
224+
|| RoutingRuleEscalationPolicyAction.class.equals(Boolean.class)
225+
|| RoutingRuleEscalationPolicyAction.class.equals(String.class)) {
226+
attemptParsing = typeCoercion;
227+
if (!attemptParsing) {
228+
attemptParsing |=
229+
((RoutingRuleEscalationPolicyAction.class.equals(Integer.class)
230+
|| RoutingRuleEscalationPolicyAction.class.equals(Long.class))
231+
&& token == JsonToken.VALUE_NUMBER_INT);
232+
attemptParsing |=
233+
((RoutingRuleEscalationPolicyAction.class.equals(Float.class)
234+
|| RoutingRuleEscalationPolicyAction.class.equals(Double.class))
235+
&& (token == JsonToken.VALUE_NUMBER_FLOAT
236+
|| token == JsonToken.VALUE_NUMBER_INT));
237+
attemptParsing |=
238+
(RoutingRuleEscalationPolicyAction.class.equals(Boolean.class)
239+
&& (token == JsonToken.VALUE_FALSE || token == JsonToken.VALUE_TRUE));
240+
attemptParsing |=
241+
(RoutingRuleEscalationPolicyAction.class.equals(String.class)
242+
&& token == JsonToken.VALUE_STRING);
243+
}
244+
}
245+
if (attemptParsing) {
246+
tmp = tree.traverse(jp.getCodec()).readValueAs(RoutingRuleEscalationPolicyAction.class);
247+
// TODO: there is no validation against JSON schema constraints
248+
// (min, max, enum, pattern...), this does not perform a strict JSON
249+
// validation, which means the 'match' count may be higher than it should be.
250+
if (!((RoutingRuleEscalationPolicyAction) tmp).unparsed) {
251+
deserialized = tmp;
252+
match++;
253+
}
254+
log.log(Level.FINER, "Input data matches schema 'RoutingRuleEscalationPolicyAction'");
255+
}
256+
} catch (Exception e) {
257+
// deserialization failed, continue
258+
log.log(
259+
Level.FINER, "Input data does not match schema 'RoutingRuleEscalationPolicyAction'", e);
260+
}
261+
216262
RoutingRuleAction ret = new RoutingRuleAction();
217263
if (match == 1) {
218264
ret.setActualInstance(deserialized);
@@ -256,11 +302,19 @@ public RoutingRuleAction(TriggerWorkflowAutomationAction o) {
256302
setActualInstance(o);
257303
}
258304

305+
public RoutingRuleAction(RoutingRuleEscalationPolicyAction o) {
306+
super("oneOf", Boolean.FALSE);
307+
setActualInstance(o);
308+
}
309+
259310
static {
260311
schemas.put("SendSlackMessageAction", new GenericType<SendSlackMessageAction>() {});
261312
schemas.put("SendTeamsMessageAction", new GenericType<SendTeamsMessageAction>() {});
262313
schemas.put(
263314
"TriggerWorkflowAutomationAction", new GenericType<TriggerWorkflowAutomationAction>() {});
315+
schemas.put(
316+
"RoutingRuleEscalationPolicyAction",
317+
new GenericType<RoutingRuleEscalationPolicyAction>() {});
264318
JSON.registerDescendants(RoutingRuleAction.class, Collections.unmodifiableMap(schemas));
265319
}
266320

@@ -272,7 +326,7 @@ public Map<String, GenericType> getSchemas() {
272326
/**
273327
* Set the instance that matches the oneOf child schema, check the instance parameter is valid
274328
* against the oneOf child schemas: SendSlackMessageAction, SendTeamsMessageAction,
275-
* TriggerWorkflowAutomationAction
329+
* TriggerWorkflowAutomationAction, RoutingRuleEscalationPolicyAction
276330
*
277331
* <p>It could be an instance of the 'oneOf' schemas. The oneOf child schemas may themselves be a
278332
* composed schema (allOf, anyOf, oneOf).
@@ -292,22 +346,27 @@ public void setActualInstance(Object instance) {
292346
super.setActualInstance(instance);
293347
return;
294348
}
349+
if (JSON.isInstanceOf(
350+
RoutingRuleEscalationPolicyAction.class, instance, new HashSet<Class<?>>())) {
351+
super.setActualInstance(instance);
352+
return;
353+
}
295354

296355
if (JSON.isInstanceOf(UnparsedObject.class, instance, new HashSet<Class<?>>())) {
297356
super.setActualInstance(instance);
298357
return;
299358
}
300359
throw new RuntimeException(
301360
"Invalid instance type. Must be SendSlackMessageAction, SendTeamsMessageAction,"
302-
+ " TriggerWorkflowAutomationAction");
361+
+ " TriggerWorkflowAutomationAction, RoutingRuleEscalationPolicyAction");
303362
}
304363

305364
/**
306365
* Get the actual instance, which can be the following: SendSlackMessageAction,
307-
* SendTeamsMessageAction, TriggerWorkflowAutomationAction
366+
* SendTeamsMessageAction, TriggerWorkflowAutomationAction, RoutingRuleEscalationPolicyAction
308367
*
309368
* @return The actual instance (SendSlackMessageAction, SendTeamsMessageAction,
310-
* TriggerWorkflowAutomationAction)
369+
* TriggerWorkflowAutomationAction, RoutingRuleEscalationPolicyAction)
311370
*/
312371
@Override
313372
public Object getActualInstance() {
@@ -347,4 +406,16 @@ public TriggerWorkflowAutomationAction getTriggerWorkflowAutomationAction()
347406
throws ClassCastException {
348407
return (TriggerWorkflowAutomationAction) super.getActualInstance();
349408
}
409+
410+
/**
411+
* Get the actual instance of `RoutingRuleEscalationPolicyAction`. If the actual instance is not
412+
* `RoutingRuleEscalationPolicyAction`, the ClassCastException will be thrown.
413+
*
414+
* @return The actual instance of `RoutingRuleEscalationPolicyAction`
415+
* @throws ClassCastException if the instance is not `RoutingRuleEscalationPolicyAction`
416+
*/
417+
public RoutingRuleEscalationPolicyAction getRoutingRuleEscalationPolicyAction()
418+
throws ClassCastException {
419+
return (RoutingRuleEscalationPolicyAction) super.getActualInstance();
420+
}
350421
}

0 commit comments

Comments
 (0)