Skip to content

Commit 6becc78

Browse files
api-clients-generation-pipeline[bot]ci.datadog-api-spec
andauthored
[OMG-1253] Add BDD test coverage for CreateTeamMembership (#1439)
Co-authored-by: ci.datadog-api-spec <packages@datadoghq.com>
1 parent ab81939 commit 6becc78

6 files changed

+419
-23
lines changed

examples/v2_teams_CreateTeamMembership.rs

Lines changed: 12 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2,44 +2,39 @@
22
// response
33
use datadog_api_client::datadog;
44
use datadog_api_client::datadogV2::api_teams::TeamsAPI;
5-
use datadog_api_client::datadogV2::model::RelationshipToUserTeamTeam;
6-
use datadog_api_client::datadogV2::model::RelationshipToUserTeamTeamData;
75
use datadog_api_client::datadogV2::model::RelationshipToUserTeamUser;
86
use datadog_api_client::datadogV2::model::RelationshipToUserTeamUserData;
97
use datadog_api_client::datadogV2::model::UserTeamAttributes;
108
use datadog_api_client::datadogV2::model::UserTeamCreate;
119
use datadog_api_client::datadogV2::model::UserTeamRelationships;
1210
use datadog_api_client::datadogV2::model::UserTeamRequest;
1311
use datadog_api_client::datadogV2::model::UserTeamRole;
14-
use datadog_api_client::datadogV2::model::UserTeamTeamType;
1512
use datadog_api_client::datadogV2::model::UserTeamType;
1613
use datadog_api_client::datadogV2::model::UserTeamUserType;
1714

1815
#[tokio::main]
1916
async fn main() {
17+
// there is a valid "dd_team" in the system
18+
let dd_team_data_id = std::env::var("DD_TEAM_DATA_ID").unwrap();
19+
20+
// there is a valid "user" in the system
21+
let user_data_id = std::env::var("USER_DATA_ID").unwrap();
2022
let body = UserTeamRequest::new(
2123
UserTeamCreate::new(UserTeamType::TEAM_MEMBERSHIPS)
2224
.attributes(UserTeamAttributes::new().role(Some(UserTeamRole::ADMIN)))
2325
.relationships(
24-
UserTeamRelationships::new()
25-
.team(RelationshipToUserTeamTeam::new(
26-
RelationshipToUserTeamTeamData::new(
27-
"d7e15d9d-d346-43da-81d8-3d9e71d9a5e9".to_string(),
28-
UserTeamTeamType::TEAM,
29-
),
30-
))
31-
.user(RelationshipToUserTeamUser::new(
32-
RelationshipToUserTeamUserData::new(
33-
"b8626d7e-cedd-11eb-abf5-da7ad0900001".to_string(),
34-
UserTeamUserType::USERS,
35-
),
36-
)),
26+
UserTeamRelationships::new().user(RelationshipToUserTeamUser::new(
27+
RelationshipToUserTeamUserData::new(
28+
user_data_id.clone(),
29+
UserTeamUserType::USERS,
30+
),
31+
)),
3732
),
3833
);
3934
let configuration = datadog::Configuration::new();
4035
let api = TeamsAPI::with_config(configuration);
4136
let resp = api
42-
.create_team_membership("team_id".to_string(), body)
37+
.create_team_membership(dd_team_data_id.clone(), body)
4338
.await;
4439
if let Ok(value) = resp {
4540
println!("{:#?}", value);
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
2026-03-31T14:58:05.044Z
Lines changed: 213 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,213 @@
1+
{
2+
"http_interactions": [
3+
{
4+
"request": {
5+
"body": {
6+
"string": "{\"data\":{\"attributes\":{\"handle\":\"test-handle-22e42ce95626a92a\",\"name\":\"test-name-22e42ce95626a92a\"},\"type\":\"team\"}}",
7+
"encoding": null
8+
},
9+
"headers": {
10+
"Accept": [
11+
"application/json"
12+
],
13+
"Content-Type": [
14+
"application/json"
15+
]
16+
},
17+
"method": "post",
18+
"uri": "https://api.datadoghq.com/api/v2/team"
19+
},
20+
"response": {
21+
"body": {
22+
"string": "{\"data\":{\"id\":\"abc7c612-d3a1-4147-bcfa-f28b4af43d33\",\"type\":\"team\",\"attributes\":{\"avatar\":null,\"banner\":10,\"created_at\":\"2026-03-31T14:58:05.503733+00:00\",\"description\":null,\"handle\":\"test-handle-22e42ce95626a92a\",\"hidden_modules\":null,\"is_managed\":false,\"link_count\":0,\"modified_at\":\"2026-03-31T14:58:05.503733+00:00\",\"name\":\"test-name-22e42ce95626a92a\",\"summary\":null,\"user_count\":0,\"visible_modules\":null},\"relationships\":{\"team_links\":{\"data\":[],\"links\":{\"related\":\"/api/v2/team/abc7c612-d3a1-4147-bcfa-f28b4af43d33/links\"}},\"user_team_permissions\":{\"data\":null,\"links\":{\"related\":\"/api/v2/team/abc7c612-d3a1-4147-bcfa-f28b4af43d33/permission-settings\"}}}}}",
23+
"encoding": null
24+
},
25+
"headers": {
26+
"Content-Type": [
27+
"application/vnd.api+json"
28+
]
29+
},
30+
"status": {
31+
"code": 201,
32+
"message": "Created"
33+
}
34+
},
35+
"recorded_at": "Tue, 31 Mar 2026 14:58:05 GMT"
36+
},
37+
{
38+
"request": {
39+
"body": {
40+
"string": "{\"data\":{\"attributes\":{\"email\":\"Test-Add_a_user_to_a_team_returns_API_error_response_response-1774969085@datadoghq.com\",\"title\":\"user title\"},\"type\":\"users\"}}",
41+
"encoding": null
42+
},
43+
"headers": {
44+
"Accept": [
45+
"application/json"
46+
],
47+
"Content-Type": [
48+
"application/json"
49+
]
50+
},
51+
"method": "post",
52+
"uri": "https://api.datadoghq.com/api/v2/users"
53+
},
54+
"response": {
55+
"body": {
56+
"string": "{\"data\": {\"type\": \"users\", \"id\": \"825c5f4c-585c-494a-aade-60f1e1aa189b\", \"attributes\": {\"name\": null, \"handle\": \"test-add_a_user_to_a_team_returns_api_error_response_response-1774969085@datadoghq.com\", \"created_at\": \"2026-03-31T14:58:06.030754+00:00\", \"modified_at\": \"2026-03-31T14:58:06.030754+00:00\", \"email\": \"test-add_a_user_to_a_team_returns_api_error_response_response-1774969085@datadoghq.com\", \"icon\": \"https://secure.gravatar.com/avatar/53ba6f826ef9a49acaeec55d1bcc1c47?s=48&d=retro\", \"title\": \"user title\", \"verified\": false, \"service_account\": false, \"disabled\": false, \"allowed_login_methods\": [], \"status\": \"Pending\", \"last_login_time\": null}, \"relationships\": {\"roles\": {\"data\": []}, \"org\": {\"data\": {\"type\": \"orgs\", \"id\": \"4dee724d-00cc-11ea-a77b-570c9d03c6c5\"}}}}}",
57+
"encoding": null
58+
},
59+
"headers": {
60+
"Content-Type": [
61+
"application/json"
62+
]
63+
},
64+
"status": {
65+
"code": 201,
66+
"message": "Created"
67+
}
68+
},
69+
"recorded_at": "Tue, 31 Mar 2026 14:58:05 GMT"
70+
},
71+
{
72+
"request": {
73+
"body": {
74+
"string": "{\"data\":{\"attributes\":{\"role\":\"admin\"},\"relationships\":{\"user\":{\"data\":{\"id\":\"825c5f4c-585c-494a-aade-60f1e1aa189b\",\"type\":\"users\"}}},\"type\":\"team_memberships\"}}",
75+
"encoding": null
76+
},
77+
"headers": {
78+
"Accept": [
79+
"application/json"
80+
],
81+
"Content-Type": [
82+
"application/json"
83+
]
84+
},
85+
"method": "post",
86+
"uri": "https://api.datadoghq.com/api/v2/team/abc7c612-d3a1-4147-bcfa-f28b4af43d33/memberships"
87+
},
88+
"response": {
89+
"body": {
90+
"string": "{\"data\":{\"id\":\"TeamMembership-abc7c612-d3a1-4147-bcfa-f28b4af43d33-66215044\",\"type\":\"team_memberships\",\"attributes\":{\"provisioned_by\":null,\"provisioned_by_id\":\"a1d5ff5a-c6dd-11f0-9cb6-06640ca27ad4\",\"role\":\"admin\"},\"relationships\":{\"user\":{\"data\":{\"id\":\"825c5f4c-585c-494a-aade-60f1e1aa189b\",\"type\":\"users\"}}}},\"included\":[{\"id\":\"825c5f4c-585c-494a-aade-60f1e1aa189b\",\"type\":\"users\",\"attributes\":{\"disabled\":false,\"email\":\"test-add_a_user_to_a_team_returns_api_error_response_response-1774969085@datadoghq.com\",\"handle\":\"test-add_a_user_to_a_team_returns_api_error_response_response-1774969085@datadoghq.com\",\"icon\":\"https://secure.gravatar.com/avatar/53ba6f826ef9a49acaeec55d1bcc1c47?d=retro\\u0026s=48\",\"name\":null,\"service_account\":false,\"status\":\"Pending\"}}]}",
91+
"encoding": null
92+
},
93+
"headers": {
94+
"Content-Type": [
95+
"application/vnd.api+json"
96+
]
97+
},
98+
"status": {
99+
"code": 200,
100+
"message": "OK"
101+
}
102+
},
103+
"recorded_at": "Tue, 31 Mar 2026 14:58:05 GMT"
104+
},
105+
{
106+
"request": {
107+
"body": {
108+
"string": "{\"data\":{\"attributes\":{\"role\":\"admin\"},\"relationships\":{\"user\":{\"data\":{\"id\":\"825c5f4c-585c-494a-aade-60f1e1aa189b\",\"type\":\"users\"}}},\"type\":\"team_memberships\"}}",
109+
"encoding": null
110+
},
111+
"headers": {
112+
"Accept": [
113+
"application/json"
114+
],
115+
"Content-Type": [
116+
"application/json"
117+
]
118+
},
119+
"method": "post",
120+
"uri": "https://api.datadoghq.com/api/v2/team/abc7c612-d3a1-4147-bcfa-f28b4af43d33/memberships"
121+
},
122+
"response": {
123+
"body": {
124+
"string": "{\"errors\":[{\"status\":\"409\",\"title\":\"Conflict\",\"detail\":\"users already present on the team [825c5f4c-585c-494a-aade-60f1e1aa189b]\"}]}",
125+
"encoding": null
126+
},
127+
"headers": {
128+
"Content-Type": [
129+
"application/vnd.api+json"
130+
]
131+
},
132+
"status": {
133+
"code": 409,
134+
"message": "Conflict"
135+
}
136+
},
137+
"recorded_at": "Tue, 31 Mar 2026 14:58:05 GMT"
138+
},
139+
{
140+
"request": {
141+
"body": "",
142+
"headers": {
143+
"Accept": [
144+
"*/*"
145+
]
146+
},
147+
"method": "delete",
148+
"uri": "https://api.datadoghq.com/api/v2/team/abc7c612-d3a1-4147-bcfa-f28b4af43d33/memberships/825c5f4c-585c-494a-aade-60f1e1aa189b"
149+
},
150+
"response": {
151+
"body": {
152+
"string": "",
153+
"encoding": null
154+
},
155+
"headers": {},
156+
"status": {
157+
"code": 204,
158+
"message": "No Content"
159+
}
160+
},
161+
"recorded_at": "Tue, 31 Mar 2026 14:58:05 GMT"
162+
},
163+
{
164+
"request": {
165+
"body": "",
166+
"headers": {
167+
"Accept": [
168+
"*/*"
169+
]
170+
},
171+
"method": "delete",
172+
"uri": "https://api.datadoghq.com/api/v2/users/825c5f4c-585c-494a-aade-60f1e1aa189b"
173+
},
174+
"response": {
175+
"body": {
176+
"string": "",
177+
"encoding": null
178+
},
179+
"headers": {},
180+
"status": {
181+
"code": 204,
182+
"message": "No Content"
183+
}
184+
},
185+
"recorded_at": "Tue, 31 Mar 2026 14:58:05 GMT"
186+
},
187+
{
188+
"request": {
189+
"body": "",
190+
"headers": {
191+
"Accept": [
192+
"*/*"
193+
]
194+
},
195+
"method": "delete",
196+
"uri": "https://api.datadoghq.com/api/v2/team/abc7c612-d3a1-4147-bcfa-f28b4af43d33"
197+
},
198+
"response": {
199+
"body": {
200+
"string": "",
201+
"encoding": null
202+
},
203+
"headers": {},
204+
"status": {
205+
"code": 204,
206+
"message": "No Content"
207+
}
208+
},
209+
"recorded_at": "Tue, 31 Mar 2026 14:58:05 GMT"
210+
}
211+
],
212+
"recorded_with": "VCR 6.0.0"
213+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
2026-03-31T14:57:49.739Z

0 commit comments

Comments
 (0)