Skip to content

Commit 64e5781

Browse files
author
ci.datadog-api-spec
committed
Regenerate client from commit 9d9a6c9 of spec repo
1 parent fec897a commit 64e5781

12 files changed

Lines changed: 758 additions & 48 deletions

.generator/schemas/v2/openapi.yaml

Lines changed: 48 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65461,6 +65461,7 @@ components:
6546165461
- $ref: "#/components/schemas/SendSlackMessageAction"
6546265462
- $ref: "#/components/schemas/SendTeamsMessageAction"
6546365463
- $ref: "#/components/schemas/TriggerWorkflowAutomationAction"
65464+
- $ref: "#/components/schemas/RoutingRuleEscalationPolicyAction"
6546465465
RoutingRuleAttributes:
6546565466
description: Defines the configurable attributes of a routing rule, such as actions, query, time restriction, and urgency.
6546665467
properties:
@@ -65478,6 +65479,52 @@ components:
6547865479
urgency:
6547965480
$ref: "#/components/schemas/Urgency"
6548065481
type: object
65482+
RoutingRuleEscalationPolicyAction:
65483+
description: "Triggers an escalation policy."
65484+
properties:
65485+
ack_timeout_minutes:
65486+
description: "The number of minutes before an acknowledged page is re-triggered."
65487+
example: 30
65488+
format: int64
65489+
type: integer
65490+
policy_id:
65491+
description: "The ID of the escalation policy to route to."
65492+
example: "00000000-0000-0000-0000-000000000000"
65493+
type: string
65494+
support_hours:
65495+
$ref: "#/components/schemas/RoutingRuleEscalationPolicyActionSupportHours"
65496+
type:
65497+
$ref: "#/components/schemas/RoutingRuleEscalationPolicyActionType"
65498+
urgency:
65499+
$ref: "#/components/schemas/Urgency"
65500+
required:
65501+
- type
65502+
- policy_id
65503+
type: object
65504+
RoutingRuleEscalationPolicyActionSupportHours:
65505+
description: "Support hours during which the escalation policy will be executed. Outside of these hours, the escalation policy will be on hold and triggered once the next support hours window starts. This is mutually exclusive with the top-level `time_restriction` field on the routing rule."
65506+
properties:
65507+
restrictions:
65508+
description: "The list of support hours time windows."
65509+
items:
65510+
$ref: "#/components/schemas/TimeRestriction"
65511+
type: array
65512+
time_zone:
65513+
description: "The time zone in which the support hours are expressed."
65514+
example: ""
65515+
type: string
65516+
required:
65517+
- time_zone
65518+
type: object
65519+
RoutingRuleEscalationPolicyActionType:
65520+
default: escalation_policy
65521+
description: "Indicates that the action pages an escalation policy. This action can be set once per routing rule item, and is mutually exclusive with the top-level `policy_id` field on the routing rule."
65522+
enum:
65523+
- escalation_policy
65524+
example: escalation_policy
65525+
type: string
65526+
x-enum-varnames:
65527+
- ESCALATION_POLICY
6548165528
RoutingRuleRelationships:
6548265529
description: Specifies relationships for a routing rule, linking to associated policy resources.
6548365530
properties:
@@ -85180,7 +85227,7 @@ components:
8518085227
type: string
8518185228
type: object
8518285229
TimeRestrictions:
85183-
description: Holds time zone information and a list of time restrictions for a routing rule.
85230+
description: Time restrictions during which the routing rule is active. Outside of these hours, the rule does not match and routing continues to subsequent rules. This is mutually exclusive with the action-level `support_hours` field.
8518485231
properties:
8518585232
restrictions:
8518685233
description: Defines the list of time-based restrictions.

examples/v2/on-call/SetOnCallTeamRoutingRules.java

Lines changed: 55 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,9 @@
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.RoutingRuleEscalationPolicyActionSupportHours;
10+
import com.datadog.api.client.v2.model.RoutingRuleEscalationPolicyActionType;
1011
import com.datadog.api.client.v2.model.TeamRoutingRules;
1112
import com.datadog.api.client.v2.model.TeamRoutingRulesRequest;
1213
import com.datadog.api.client.v2.model.TeamRoutingRulesRequestData;
@@ -43,13 +44,13 @@ public static void main(String[] args) {
4344
.actions(
4445
Collections.singletonList(
4546
new RoutingRuleAction(
46-
new SendSlackMessageAction()
47-
.channel("channel")
47+
new RoutingRuleEscalationPolicyAction()
4848
.type(
49-
SendSlackMessageActionType
50-
.SEND_SLACK_MESSAGE)
51-
.workspace("workspace"))))
52-
.query("tags.service:test")
49+
RoutingRuleEscalationPolicyActionType
50+
.ESCALATION_POLICY)
51+
.policyId(ESCALATION_POLICY_DATA_ID)
52+
.urgency(Urgency.LOW))))
53+
.query("tags.service:time_restrictions")
5354
.timeRestriction(
5455
new TimeRestrictions()
5556
.timeZone("Europe/Paris")
@@ -65,10 +66,54 @@ public static void main(String[] args) {
6566
.endTime("17:00:00")
6667
.startDay(Weekday.TUESDAY)
6768
.startTime("09:00:00")))),
69+
new TeamRoutingRulesRequestRule()
70+
.actions(
71+
Collections.singletonList(
72+
new RoutingRuleAction(
73+
new RoutingRuleEscalationPolicyAction()
74+
.type(
75+
RoutingRuleEscalationPolicyActionType
76+
.ESCALATION_POLICY)
77+
.policyId(ESCALATION_POLICY_DATA_ID)
78+
.urgency(Urgency.LOW)
79+
.ackTimeoutMinutes(30L)
80+
.supportHours(
81+
new RoutingRuleEscalationPolicyActionSupportHours()
82+
.timeZone("Europe/Paris")
83+
.restrictions(
84+
Arrays.asList(
85+
new TimeRestriction()
86+
.endDay(
87+
Weekday.WEDNESDAY)
88+
.endTime("17:00:00")
89+
.startDay(
90+
Weekday.WEDNESDAY)
91+
.startTime("09:00:00"),
92+
new TimeRestriction()
93+
.endDay(
94+
Weekday.THURSDAY)
95+
.endTime("17:00:00")
96+
.startDay(
97+
Weekday.THURSDAY)
98+
.startTime(
99+
"09:00:00")))))))
100+
.query(
101+
"tags.service:support_hours_and_acknowledgment_timeout"),
68102
new TeamRoutingRulesRequestRule()
69103
.policyId(ESCALATION_POLICY_DATA_ID)
70-
.query("")
71-
.urgency(Urgency.LOW))))
104+
.query("tags.service:legacy_policy_definition")
105+
.urgency(Urgency.LOW),
106+
new TeamRoutingRulesRequestRule()
107+
.actions(
108+
Collections.singletonList(
109+
new RoutingRuleAction(
110+
new RoutingRuleEscalationPolicyAction()
111+
.type(
112+
RoutingRuleEscalationPolicyActionType
113+
.ESCALATION_POLICY)
114+
.policyId(ESCALATION_POLICY_DATA_ID)
115+
.urgency(Urgency.LOW))))
116+
.query(""))))
72117
.id(DD_TEAM_DATA_ID)
73118
.type(TeamRoutingRulesRequestDataType.TEAM_ROUTING_RULES));
74119

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
}

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,9 @@ public RoutingRuleAttributes timeRestriction(TimeRestrictions timeRestriction) {
105105
}
106106

107107
/**
108-
* Holds time zone information and a list of time restrictions for a routing rule.
108+
* Time restrictions during which the routing rule is active. Outside of these hours, the rule
109+
* does not match and routing continues to subsequent rules. This is mutually exclusive with the
110+
* action-level <code>support_hours</code> field.
109111
*
110112
* @return timeRestriction
111113
*/

0 commit comments

Comments
 (0)