Skip to content

Commit f82b528

Browse files
api-clients-generation-pipeline[bot]ci.datadog-api-spec
andauthored
[error-tracking] Add Linear issue to API endpoints response schemas (#1708)
Co-authored-by: ci.datadog-api-spec <packages@datadoghq.com>
1 parent 009e262 commit f82b528

7 files changed

Lines changed: 440 additions & 0 deletions

.generator/schemas/v2/openapi.yaml

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44193,6 +44193,8 @@ components:
4419344193
description: Key of the case.
4419444194
example: "ET-123"
4419544195
type: string
44196+
linear_issue:
44197+
$ref: "#/components/schemas/IssueCaseLinearIssue"
4419644198
modified_at:
4419744199
description: Timestamp of when the case was last modified.
4419844200
example: "2025-01-01T00:00:00Z"
@@ -44230,6 +44232,10 @@ components:
4423044232
IssueCaseJiraIssue:
4423144233
description: Jira issue of the case.
4423244234
properties:
44235+
error_message:
44236+
description: Error message set when the Jira issue creation fails.
44237+
example: ""
44238+
type: string
4423344239
result:
4423444240
$ref: "#/components/schemas/IssueCaseJiraIssueResult"
4423544241
status:
@@ -44240,6 +44246,10 @@ components:
4424044246
IssueCaseJiraIssueResult:
4424144247
description: Contains the identifiers and URL for a successfully created Jira issue.
4424244248
properties:
44249+
account_id:
44250+
description: Jira account identifier.
44251+
example: "abcd1234-5678-90ab-cdef-1234567890ab"
44252+
type: string
4424344253
issue_id:
4424444254
description: Jira issue identifier.
4424544255
example: "1904866"
@@ -44252,11 +44262,53 @@ components:
4425244262
description: Jira issue URL.
4425344263
example: "https://your-jira-instance.atlassian.net/browse/ET-123"
4425444264
type: string
44265+
project_id:
44266+
description: Jira project identifier.
44267+
example: "10001"
44268+
type: string
4425544269
project_key:
4425644270
description: Jira project key.
4425744271
example: "ET"
4425844272
type: string
4425944273
type: object
44274+
IssueCaseLinearIssue:
44275+
description: Linear issue of the case.
44276+
properties:
44277+
error_message:
44278+
description: Error message set when the Linear issue creation fails.
44279+
example: ""
44280+
type: string
44281+
result:
44282+
$ref: "#/components/schemas/IssueCaseLinearIssueResult"
44283+
status:
44284+
description: Creation status of the Linear issue.
44285+
example: "COMPLETED"
44286+
type: string
44287+
type: object
44288+
IssueCaseLinearIssueResult:
44289+
description: Contains the identifiers and URL for a successfully created Linear issue.
44290+
properties:
44291+
account_id:
44292+
description: Linear account identifier.
44293+
example: "abcd1234-5678-90ab-cdef-1234567890ab"
44294+
type: string
44295+
issue_id:
44296+
description: Linear issue identifier.
44297+
example: "a1b2c3d4-5678-90ab-cdef-1234567890ab"
44298+
type: string
44299+
issue_key:
44300+
description: Linear issue key.
44301+
example: "ENG-123"
44302+
type: string
44303+
issue_url:
44304+
description: Linear issue URL.
44305+
example: "https://linear.app/your-workspace/issue/ENG-123"
44306+
type: string
44307+
team_id:
44308+
description: Linear team identifier.
44309+
example: "f1e2d3c4-5678-90ab-cdef-1234567890ab"
44310+
type: string
44311+
type: object
4426044312
IssueCaseReference:
4426144313
description: The case the issue is attached to.
4426244314
properties:

src/datadogV2/model/mod.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3642,6 +3642,10 @@ pub mod model_issue_case_jira_issue;
36423642
pub use self::model_issue_case_jira_issue::IssueCaseJiraIssue;
36433643
pub mod model_issue_case_jira_issue_result;
36443644
pub use self::model_issue_case_jira_issue_result::IssueCaseJiraIssueResult;
3645+
pub mod model_issue_case_linear_issue;
3646+
pub use self::model_issue_case_linear_issue::IssueCaseLinearIssue;
3647+
pub mod model_issue_case_linear_issue_result;
3648+
pub use self::model_issue_case_linear_issue_result::IssueCaseLinearIssueResult;
36453649
pub mod model_issue_case_relationships;
36463650
pub use self::model_issue_case_relationships::IssueCaseRelationships;
36473651
pub mod model_issue_included;

src/datadogV2/model/model_issue_case_attributes.rs

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,9 @@ pub struct IssueCaseAttributes {
3838
/// Key of the case.
3939
#[serde(rename = "key")]
4040
pub key: Option<String>,
41+
/// Linear issue of the case.
42+
#[serde(rename = "linear_issue")]
43+
pub linear_issue: Option<crate::datadogV2::model::IssueCaseLinearIssue>,
4144
/// Timestamp of when the case was last modified.
4245
#[serde(rename = "modified_at")]
4346
pub modified_at: Option<chrono::DateTime<chrono::Utc>>,
@@ -74,6 +77,7 @@ impl IssueCaseAttributes {
7477
insights: None,
7578
jira_issue: None,
7679
key: None,
80+
linear_issue: None,
7781
modified_at: None,
7882
priority: None,
7983
status: None,
@@ -138,6 +142,12 @@ impl IssueCaseAttributes {
138142
self
139143
}
140144

145+
#[allow(deprecated)]
146+
pub fn linear_issue(mut self, value: crate::datadogV2::model::IssueCaseLinearIssue) -> Self {
147+
self.linear_issue = Some(value);
148+
self
149+
}
150+
141151
#[allow(deprecated)]
142152
pub fn modified_at(mut self, value: chrono::DateTime<chrono::Utc>) -> Self {
143153
self.modified_at = Some(value);
@@ -209,6 +219,7 @@ impl<'de> Deserialize<'de> for IssueCaseAttributes {
209219
let mut insights: Option<Vec<crate::datadogV2::model::IssueCaseInsight>> = None;
210220
let mut jira_issue: Option<crate::datadogV2::model::IssueCaseJiraIssue> = None;
211221
let mut key: Option<String> = None;
222+
let mut linear_issue: Option<crate::datadogV2::model::IssueCaseLinearIssue> = None;
212223
let mut modified_at: Option<chrono::DateTime<chrono::Utc>> = None;
213224
let mut priority: Option<crate::datadogV2::model::CasePriority> = None;
214225
let mut status: Option<crate::datadogV2::model::CaseStatus> = None;
@@ -279,6 +290,13 @@ impl<'de> Deserialize<'de> for IssueCaseAttributes {
279290
}
280291
key = Some(serde_json::from_value(v).map_err(M::Error::custom)?);
281292
}
293+
"linear_issue" => {
294+
if v.is_null() {
295+
continue;
296+
}
297+
linear_issue =
298+
Some(serde_json::from_value(v).map_err(M::Error::custom)?);
299+
}
282300
"modified_at" => {
283301
if v.is_null() {
284302
continue;
@@ -349,6 +367,7 @@ impl<'de> Deserialize<'de> for IssueCaseAttributes {
349367
insights,
350368
jira_issue,
351369
key,
370+
linear_issue,
352371
modified_at,
353372
priority,
354373
status,

src/datadogV2/model/model_issue_case_jira_issue.rs

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,9 @@ use std::fmt::{self, Formatter};
1111
#[skip_serializing_none]
1212
#[derive(Clone, Debug, PartialEq, Serialize)]
1313
pub struct IssueCaseJiraIssue {
14+
/// Error message set when the Jira issue creation fails.
15+
#[serde(rename = "error_message")]
16+
pub error_message: Option<String>,
1417
/// Contains the identifiers and URL for a successfully created Jira issue.
1518
#[serde(rename = "result")]
1619
pub result: Option<crate::datadogV2::model::IssueCaseJiraIssueResult>,
@@ -27,13 +30,19 @@ pub struct IssueCaseJiraIssue {
2730
impl IssueCaseJiraIssue {
2831
pub fn new() -> IssueCaseJiraIssue {
2932
IssueCaseJiraIssue {
33+
error_message: None,
3034
result: None,
3135
status: None,
3236
additional_properties: std::collections::BTreeMap::new(),
3337
_unparsed: false,
3438
}
3539
}
3640

41+
pub fn error_message(mut self, value: String) -> Self {
42+
self.error_message = Some(value);
43+
self
44+
}
45+
3746
pub fn result(mut self, value: crate::datadogV2::model::IssueCaseJiraIssueResult) -> Self {
3847
self.result = Some(value);
3948
self
@@ -76,6 +85,7 @@ impl<'de> Deserialize<'de> for IssueCaseJiraIssue {
7685
where
7786
M: MapAccess<'a>,
7887
{
88+
let mut error_message: Option<String> = None;
7989
let mut result: Option<crate::datadogV2::model::IssueCaseJiraIssueResult> = None;
8090
let mut status: Option<String> = None;
8191
let mut additional_properties: std::collections::BTreeMap<
@@ -86,6 +96,13 @@ impl<'de> Deserialize<'de> for IssueCaseJiraIssue {
8696

8797
while let Some((k, v)) = map.next_entry::<String, serde_json::Value>()? {
8898
match k.as_str() {
99+
"error_message" => {
100+
if v.is_null() {
101+
continue;
102+
}
103+
error_message =
104+
Some(serde_json::from_value(v).map_err(M::Error::custom)?);
105+
}
89106
"result" => {
90107
if v.is_null() {
91108
continue;
@@ -107,6 +124,7 @@ impl<'de> Deserialize<'de> for IssueCaseJiraIssue {
107124
}
108125

109126
let content = IssueCaseJiraIssue {
127+
error_message,
110128
result,
111129
status,
112130
additional_properties,

src/datadogV2/model/model_issue_case_jira_issue_result.rs

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,9 @@ use std::fmt::{self, Formatter};
1111
#[skip_serializing_none]
1212
#[derive(Clone, Debug, PartialEq, Serialize)]
1313
pub struct IssueCaseJiraIssueResult {
14+
/// Jira account identifier.
15+
#[serde(rename = "account_id")]
16+
pub account_id: Option<String>,
1417
/// Jira issue identifier.
1518
#[serde(rename = "issue_id")]
1619
pub issue_id: Option<String>,
@@ -20,6 +23,9 @@ pub struct IssueCaseJiraIssueResult {
2023
/// Jira issue URL.
2124
#[serde(rename = "issue_url")]
2225
pub issue_url: Option<String>,
26+
/// Jira project identifier.
27+
#[serde(rename = "project_id")]
28+
pub project_id: Option<String>,
2329
/// Jira project key.
2430
#[serde(rename = "project_key")]
2531
pub project_key: Option<String>,
@@ -33,15 +39,22 @@ pub struct IssueCaseJiraIssueResult {
3339
impl IssueCaseJiraIssueResult {
3440
pub fn new() -> IssueCaseJiraIssueResult {
3541
IssueCaseJiraIssueResult {
42+
account_id: None,
3643
issue_id: None,
3744
issue_key: None,
3845
issue_url: None,
46+
project_id: None,
3947
project_key: None,
4048
additional_properties: std::collections::BTreeMap::new(),
4149
_unparsed: false,
4250
}
4351
}
4452

53+
pub fn account_id(mut self, value: String) -> Self {
54+
self.account_id = Some(value);
55+
self
56+
}
57+
4558
pub fn issue_id(mut self, value: String) -> Self {
4659
self.issue_id = Some(value);
4760
self
@@ -57,6 +70,11 @@ impl IssueCaseJiraIssueResult {
5770
self
5871
}
5972

73+
pub fn project_id(mut self, value: String) -> Self {
74+
self.project_id = Some(value);
75+
self
76+
}
77+
6078
pub fn project_key(mut self, value: String) -> Self {
6179
self.project_key = Some(value);
6280
self
@@ -94,9 +112,11 @@ impl<'de> Deserialize<'de> for IssueCaseJiraIssueResult {
94112
where
95113
M: MapAccess<'a>,
96114
{
115+
let mut account_id: Option<String> = None;
97116
let mut issue_id: Option<String> = None;
98117
let mut issue_key: Option<String> = None;
99118
let mut issue_url: Option<String> = None;
119+
let mut project_id: Option<String> = None;
100120
let mut project_key: Option<String> = None;
101121
let mut additional_properties: std::collections::BTreeMap<
102122
String,
@@ -106,6 +126,12 @@ impl<'de> Deserialize<'de> for IssueCaseJiraIssueResult {
106126

107127
while let Some((k, v)) = map.next_entry::<String, serde_json::Value>()? {
108128
match k.as_str() {
129+
"account_id" => {
130+
if v.is_null() {
131+
continue;
132+
}
133+
account_id = Some(serde_json::from_value(v).map_err(M::Error::custom)?);
134+
}
109135
"issue_id" => {
110136
if v.is_null() {
111137
continue;
@@ -124,6 +150,12 @@ impl<'de> Deserialize<'de> for IssueCaseJiraIssueResult {
124150
}
125151
issue_url = Some(serde_json::from_value(v).map_err(M::Error::custom)?);
126152
}
153+
"project_id" => {
154+
if v.is_null() {
155+
continue;
156+
}
157+
project_id = Some(serde_json::from_value(v).map_err(M::Error::custom)?);
158+
}
127159
"project_key" => {
128160
if v.is_null() {
129161
continue;
@@ -140,9 +172,11 @@ impl<'de> Deserialize<'de> for IssueCaseJiraIssueResult {
140172
}
141173

142174
let content = IssueCaseJiraIssueResult {
175+
account_id,
143176
issue_id,
144177
issue_key,
145178
issue_url,
179+
project_id,
146180
project_key,
147181
additional_properties,
148182
_unparsed,

0 commit comments

Comments
 (0)