diff --git a/.generator/schemas/v2/openapi.yaml b/.generator/schemas/v2/openapi.yaml index 9bceb715496a..2a824238ce4a 100644 --- a/.generator/schemas/v2/openapi.yaml +++ b/.generator/schemas/v2/openapi.yaml @@ -41410,6 +41410,7 @@ components: type: object RelationshipToUserTeamPermissionData: description: Related user team permission data + nullable: true properties: id: description: The ID of the user team permission @@ -51804,7 +51805,11 @@ components: items: description: String identifier of the module type: string + nullable: true type: array + is_managed: + description: Whether the team is managed from an external source + type: boolean link_count: description: The number of links belonging to the team format: int32 @@ -51836,6 +51841,7 @@ components: items: description: String identifier of the module type: string + nullable: true type: array required: - handle @@ -52016,6 +52022,211 @@ components: required: - data type: object + TeamHierarchyLink: + description: Team hierarchy link + properties: + attributes: + $ref: '#/components/schemas/TeamHierarchyLinkAttributes' + id: + description: The team hierarchy link's identifier + example: b8626d7e-cedd-11eb-abf5-da7ad0900001 + type: string + relationships: + $ref: '#/components/schemas/TeamHierarchyLinkRelationships' + type: + $ref: '#/components/schemas/TeamHierarchyLinkType' + required: + - attributes + - id + - type + type: object + TeamHierarchyLinkAttributes: + description: Team hierarchy link attributes + properties: + created_at: + description: Timestamp when the team hierarchy link was created + example: '' + format: date-time + type: string + provisioned_by: + description: The provisioner of the team hierarchy link + example: system + type: string + required: + - provisioned_by + - created_at + type: object + TeamHierarchyLinkCreate: + description: Data provided when creating a team hierarchy link + properties: + relationships: + $ref: '#/components/schemas/TeamHierarchyLinkCreateRelationships' + type: + $ref: '#/components/schemas/TeamHierarchyLinkType' + required: + - relationships + - type + type: object + TeamHierarchyLinkCreateRelationships: + description: The related teams that will be connected by the team hierarchy + link + properties: + parent_team: + $ref: '#/components/schemas/TeamHierarchyLinkCreateTeamRelationship' + sub_team: + $ref: '#/components/schemas/TeamHierarchyLinkCreateTeamRelationship' + required: + - parent_team + - sub_team + type: object + TeamHierarchyLinkCreateRequest: + description: Request to create a team hierarchy link + properties: + data: + $ref: '#/components/schemas/TeamHierarchyLinkCreate' + required: + - data + type: object + TeamHierarchyLinkCreateTeam: + description: This schema defines the attributes about each team that has to + be provided when creating a team hierarchy link + properties: + id: + description: The team's identifier + example: 692e8073-12c4-4c71-8408-5090bd44c9c8 + type: string + type: + $ref: '#/components/schemas/TeamType' + required: + - id + - type + type: object + TeamHierarchyLinkCreateTeamRelationship: + description: Data about each team that will be connected by the team hierarchy + link + properties: + data: + $ref: '#/components/schemas/TeamHierarchyLinkCreateTeam' + required: + - data + type: object + TeamHierarchyLinkRelationships: + description: Team hierarchy link relationships + properties: + parent_team: + $ref: '#/components/schemas/TeamHierarchyLinkTeamRelationship' + sub_team: + $ref: '#/components/schemas/TeamHierarchyLinkTeamRelationship' + required: + - parent_team + - sub_team + type: object + TeamHierarchyLinkResponse: + description: Team hierarchy link response + properties: + data: + $ref: '#/components/schemas/TeamHierarchyLink' + included: + description: Included teams + items: + $ref: '#/components/schemas/TeamHierarchyLinkTeam' + type: array + links: + $ref: '#/components/schemas/TeamsHierarchyLinksResponseLinks' + type: object + TeamHierarchyLinkTeam: + description: Team hierarchy links connect different teams. This represents team + objects that are connected by the team hierarchy link. + properties: + attributes: + $ref: '#/components/schemas/TeamHierarchyLinkTeamAttributes' + id: + description: The team's identifier + example: 692e8073-12c4-4c71-8408-5090bd44c9c8 + type: string + type: + $ref: '#/components/schemas/TeamType' + required: + - id + - type + type: object + TeamHierarchyLinkTeamAttributes: + description: Team hierarchy links connect different teams. This represents attributes + from teams that are connected by the team hierarchy link. + properties: + avatar: + description: The team's avatar + nullable: true + type: string + banner: + description: The team's banner + format: int64 + type: integer + handle: + description: The team's handle + example: team-handle + type: string + is_managed: + description: Whether the team is managed + type: boolean + is_open_membership: + description: Whether the team has open membership + type: boolean + link_count: + description: The number of links for the team + format: int64 + type: integer + name: + description: The team's name + example: Team Name + type: string + summary: + description: The team's summary + nullable: true + type: string + user_count: + description: The number of users in the team + format: int64 + type: integer + required: + - handle + - name + type: object + TeamHierarchyLinkTeamRelationship: + description: Team hierarchy link team relationship + properties: + data: + $ref: '#/components/schemas/TeamHierarchyLinkTeam' + required: + - data + type: object + TeamHierarchyLinkType: + default: team_hierarchy_links + description: Team hierarchy link type + enum: + - team_hierarchy_links + example: team_hierarchy_links + type: string + x-enum-varnames: + - TEAM_HIERARCHY_LINKS + TeamHierarchyLinksResponse: + description: Team hierarchy links response + properties: + data: + description: Team hierarchy links response data + items: + $ref: '#/components/schemas/TeamHierarchyLink' + type: array + included: + description: Included teams + items: + $ref: '#/components/schemas/TeamHierarchyLinkTeam' + type: array + links: + $ref: '#/components/schemas/TeamsHierarchyLinksResponseLinks' + meta: + $ref: '#/components/schemas/TeamsHierarchyLinksResponseMeta' + type: object TeamIncluded: description: Included resources related to the team oneOf: @@ -52895,6 +53106,76 @@ components: - LINK_COUNT - TEAM_LINKS - USER_TEAM_PERMISSIONS + TeamsHierarchyLinksResponseLinks: + description: When querying team hierarchy links, a set of links for navigation + between different pages is included + properties: + first: + description: Link to the first page. + nullable: true + type: string + last: + description: Link to the last page. + nullable: true + type: string + next: + description: Link to the next page. + nullable: true + type: string + prev: + description: Link to the previous page. + nullable: true + type: string + self: + description: Link to the current object. + type: string + type: object + TeamsHierarchyLinksResponseMeta: + description: Metadata that is included in the response when querying the team + hierarchy links + properties: + page: + $ref: '#/components/schemas/TeamsHierarchyLinksResponseMetaPage' + type: object + TeamsHierarchyLinksResponseMetaPage: + description: Metadata related to paging information that is included in the + response when querying the team hierarchy links + properties: + first_number: + description: First page number. + format: int64 + type: integer + last_number: + description: Last page number. + format: int64 + type: integer + next_number: + description: Next page number. + format: int64 + nullable: true + type: integer + number: + description: Page number. + format: int64 + type: integer + prev_number: + description: Previous page number. + format: int64 + nullable: true + type: integer + size: + description: Page size. + format: int64 + type: integer + total: + description: Total number of results. + format: int64 + type: integer + type: + description: Pagination type. + example: number_size + type: string + type: object TeamsResponse: description: Response with multiple teams properties: @@ -81999,6 +82280,170 @@ paths: permissions: - teams_read - teams_manage + /api/v2/team-hierarchy-links: + get: + description: List all team hierarchy links that match the provided filters. + operationId: ListTeamHierarchyLinks + parameters: + - $ref: '#/components/parameters/PageNumber' + - $ref: '#/components/parameters/PageSize' + - description: Filter by parent team ID + in: query + name: filter[parent_team] + required: false + schema: + type: string + - description: Filter by sub team ID + in: query + name: filter[sub_team] + required: false + schema: + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/TeamHierarchyLinksResponse' + description: OK + '403': + $ref: '#/components/responses/ForbiddenResponse' + '429': + $ref: '#/components/responses/TooManyRequestsResponse' + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - teams_read + summary: Get team hierarchy links + tags: + - Teams + x-pagination: + limitParam: page[size] + pageParam: page[number] + resultsPath: data + x-permission: + operator: OR + permissions: + - teams_read + post: + description: Create a new team hierarchy link between a parent team and a sub + team. + operationId: AddTeamHierarchyLink + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/TeamHierarchyLinkCreateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/TeamHierarchyLinkResponse' + description: OK + '403': + $ref: '#/components/responses/ForbiddenResponse' + '409': + content: + application/json: + schema: + $ref: '#/components/schemas/APIErrorResponse' + description: Conflict + '429': + $ref: '#/components/responses/TooManyRequestsResponse' + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - teams_read + - teams_manage + summary: Create a team hierarchy link + tags: + - Teams + x-permission: + operator: AND + permissions: + - teams_read + - teams_manage + /api/v2/team-hierarchy-links/{link_id}: + delete: + description: Remove a team hierarchy link by the given link_id. + operationId: RemoveTeamHierarchyLink + parameters: + - description: The team hierarchy link's identifier + in: path + name: link_id + required: true + schema: + type: string + responses: + '204': + description: No Content + '403': + $ref: '#/components/responses/ForbiddenResponse' + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/APIErrorResponse' + description: API error response. + '429': + $ref: '#/components/responses/TooManyRequestsResponse' + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - teams_read + - teams_manage + summary: Remove a team hierarchy link + tags: + - Teams + x-permission: + operator: AND + permissions: + - teams_read + - teams_manage + get: + description: Get a single team hierarchy link for the given link_id. + operationId: GetTeamHierarchyLink + parameters: + - description: The team hierarchy link's identifier + in: path + name: link_id + required: true + schema: + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/TeamHierarchyLinkResponse' + description: OK + '403': + $ref: '#/components/responses/ForbiddenResponse' + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/APIErrorResponse' + description: API error response. + '429': + $ref: '#/components/responses/TooManyRequestsResponse' + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - teams_read + summary: Get a team hierarchy link + tags: + - Teams + x-permission: + operator: OR + permissions: + - teams_read /api/v2/team/connections: delete: description: Delete multiple team connections. @@ -82273,7 +82718,13 @@ paths: If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/).' /api/v2/team/{super_team_id}/member_teams: get: - description: Get all member teams. + deprecated: true + description: 'Get all member teams. + + + **Note**: This API is deprecated. For team hierarchy relationships (parent-child + + teams), use the team hierarchy links API: `GET /api/v2/team-hierarchy-links`.' operationId: ListMemberTeams parameters: - description: None @@ -82326,14 +82777,20 @@ paths: operator: OR permissions: - teams_read + x-sunset: '2026-06-01' x-unstable: '**Note**: This endpoint is in Preview. If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/).' post: + deprecated: true description: 'Add a member team. Adds the team given by the `id` in the body as a member team of the super - team.' + team. + + + **Note**: This API is deprecated. For creating team hierarchy links, use the + team hierarchy links API: `POST /api/v2/team-hierarchy-links`.' operationId: AddMemberTeam parameters: - description: None @@ -82373,12 +82830,18 @@ paths: operator: OR permissions: - teams_read + x-sunset: '2026-06-01' x-unstable: '**Note**: This endpoint is in Preview. If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/).' /api/v2/team/{super_team_id}/member_teams/{member_team_id}: delete: - description: Remove a super team's member team identified by `member_team_id`. + deprecated: true + description: 'Remove a super team''s member team identified by `member_team_id`. + + + **Note**: This API is deprecated. For deleting team hierarchy links, use the + team hierarchy links API: `DELETE /api/v2/team-hierarchy-links/{link_id}`.' operationId: RemoveMemberTeam parameters: - description: None @@ -82418,6 +82881,7 @@ paths: operator: OR permissions: - teams_read + x-sunset: '2026-06-01' x-unstable: '**Note**: This endpoint is in Preview. If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/).' diff --git a/cassettes/v2/Teams_3116892301/Create-a-team-hierarchy-link-returns-CREATED-response_1596980754/frozen.json b/cassettes/v2/Teams_3116892301/Create-a-team-hierarchy-link-returns-CREATED-response_1596980754/frozen.json new file mode 100644 index 000000000000..aa3ff920aebf --- /dev/null +++ b/cassettes/v2/Teams_3116892301/Create-a-team-hierarchy-link-returns-CREATED-response_1596980754/frozen.json @@ -0,0 +1 @@ +"2025-11-24T14:29:58.684Z" diff --git a/cassettes/v2/Teams_3116892301/Create-a-team-hierarchy-link-returns-CREATED-response_1596980754/recording.har b/cassettes/v2/Teams_3116892301/Create-a-team-hierarchy-link-returns-CREATED-response_1596980754/recording.har new file mode 100644 index 000000000000..538d2672f8e3 --- /dev/null +++ b/cassettes/v2/Teams_3116892301/Create-a-team-hierarchy-link-returns-CREATED-response_1596980754/recording.har @@ -0,0 +1,284 @@ +{ + "log": { + "_recordingName": "Teams/Create a team hierarchy link returns \"CREATED\" response", + "creator": { + "comment": "persister:fs", + "name": "Polly.JS", + "version": "6.0.5" + }, + "entries": [ + { + "_id": "b6efdccebeff203fe451c6d279b6f1c8", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 115, + "cookies": [], + "headers": [ + { + "_fromType": "array", + "name": "accept", + "value": "application/json" + }, + { + "_fromType": "array", + "name": "content-type", + "value": "application/json" + } + ], + "headersSize": 549, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"data\":{\"attributes\":{\"handle\":\"test-handle-34095e00d70ee50a\",\"name\":\"test-name-34095e00d70ee50a\"},\"type\":\"team\"}}" + }, + "queryString": [], + "url": "https://api.datadoghq.com/api/v2/team" + }, + "response": { + "bodySize": 660, + "content": { + "mimeType": "application/vnd.api+json", + "size": 660, + "text": "{\"data\":{\"id\":\"551c947a-0f0f-4ff0-8c41-0ceddabe3551\",\"type\":\"team\",\"attributes\":{\"avatar\":null,\"banner\":3,\"created_at\":\"2025-11-24T14:29:59.195740+00:00\",\"description\":null,\"handle\":\"test-handle-34095e00d70ee50a\",\"hidden_modules\":null,\"is_managed\":false,\"link_count\":0,\"modified_at\":\"2025-11-24T14:29:59.195740+00:00\",\"name\":\"test-name-34095e00d70ee50a\",\"summary\":null,\"user_count\":0,\"visible_modules\":null},\"relationships\":{\"team_links\":{\"data\":[],\"links\":{\"related\":\"/api/v2/team/551c947a-0f0f-4ff0-8c41-0ceddabe3551/links\"}},\"user_team_permissions\":{\"data\":null,\"links\":{\"related\":\"/api/v2/team/551c947a-0f0f-4ff0-8c41-0ceddabe3551/permission-settings\"}}}}}" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/vnd.api+json" + } + ], + "headersSize": 699, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 201, + "statusText": "Created" + }, + "startedDateTime": "2025-11-24T14:29:58.687Z", + "time": 565 + }, + { + "_id": "14ff047933ab31db16c6c7cd6b0624ea", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 119, + "cookies": [], + "headers": [ + { + "_fromType": "array", + "name": "accept", + "value": "application/json" + }, + { + "_fromType": "array", + "name": "content-type", + "value": "application/json" + } + ], + "headersSize": 549, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"data\":{\"attributes\":{\"handle\":\"test-handle-2-34095e00d70ee50a\",\"name\":\"test-name-2-34095e00d70ee50a\"},\"type\":\"team\"}}" + }, + "queryString": [], + "url": "https://api.datadoghq.com/api/v2/team" + }, + "response": { + "bodySize": 665, + "content": { + "mimeType": "application/vnd.api+json", + "size": 665, + "text": "{\"data\":{\"id\":\"e1c6ab08-0325-4df7-aea1-6bec76692d55\",\"type\":\"team\",\"attributes\":{\"avatar\":null,\"banner\":14,\"created_at\":\"2025-11-24T14:29:59.754699+00:00\",\"description\":null,\"handle\":\"test-handle-2-34095e00d70ee50a\",\"hidden_modules\":null,\"is_managed\":false,\"link_count\":0,\"modified_at\":\"2025-11-24T14:29:59.754699+00:00\",\"name\":\"test-name-2-34095e00d70ee50a\",\"summary\":null,\"user_count\":0,\"visible_modules\":null},\"relationships\":{\"team_links\":{\"data\":[],\"links\":{\"related\":\"/api/v2/team/e1c6ab08-0325-4df7-aea1-6bec76692d55/links\"}},\"user_team_permissions\":{\"data\":null,\"links\":{\"related\":\"/api/v2/team/e1c6ab08-0325-4df7-aea1-6bec76692d55/permission-settings\"}}}}}" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/vnd.api+json" + } + ], + "headersSize": 699, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 201, + "statusText": "Created" + }, + "startedDateTime": "2025-11-24T14:29:59.261Z", + "time": 572 + }, + { + "_id": "ebb0e177162bd93464de74ac3cef2e38", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 221, + "cookies": [], + "headers": [ + { + "_fromType": "array", + "name": "accept", + "value": "application/json" + }, + { + "_fromType": "array", + "name": "content-type", + "value": "application/json" + } + ], + "headersSize": 575, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"data\":{\"relationships\":{\"parent_team\":{\"data\":{\"id\":\"551c947a-0f0f-4ff0-8c41-0ceddabe3551\",\"type\":\"team\"}},\"sub_team\":{\"data\":{\"id\":\"e1c6ab08-0325-4df7-aea1-6bec76692d55\",\"type\":\"team\"}}},\"type\":\"team_hierarchy_links\"}}" + }, + "queryString": [], + "url": "https://api.datadoghq.com/api/v2/team-hierarchy-links" + }, + "response": { + "bodySize": 898, + "content": { + "mimeType": "application/vnd.api+json", + "size": 898, + "text": "{\"data\":{\"id\":\"c53bed14-1c0a-4895-b845-1c04be086ba0\",\"type\":\"team_hierarchy_links\",\"attributes\":{\"created_at\":\"2025-11-24T14:30:00.032477595Z\",\"provisioned_by\":\"\"},\"relationships\":{\"parent_team\":{\"data\":{\"id\":\"551c947a-0f0f-4ff0-8c41-0ceddabe3551\",\"type\":\"team\"}},\"sub_team\":{\"data\":{\"id\":\"e1c6ab08-0325-4df7-aea1-6bec76692d55\",\"type\":\"team\"}}}},\"included\":[{\"id\":\"551c947a-0f0f-4ff0-8c41-0ceddabe3551\",\"type\":\"team\",\"attributes\":{\"avatar\":null,\"banner\":3,\"handle\":\"test-handle-34095e00d70ee50a\",\"is_managed\":false,\"is_open_membership\":false,\"link_count\":0,\"name\":\"test-name-34095e00d70ee50a\",\"summary\":null,\"user_count\":0}},{\"id\":\"e1c6ab08-0325-4df7-aea1-6bec76692d55\",\"type\":\"team\",\"attributes\":{\"avatar\":null,\"banner\":14,\"handle\":\"test-handle-2-34095e00d70ee50a\",\"is_managed\":false,\"is_open_membership\":false,\"link_count\":0,\"name\":\"test-name-2-34095e00d70ee50a\",\"summary\":null,\"user_count\":0}}]}" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/vnd.api+json" + } + ], + "headersSize": 676, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2025-11-24T14:29:59.847Z", + "time": 201 + }, + { + "_id": "d75ce0dbfd36b7bbaf8abdb42e98c73e", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 0, + "cookies": [], + "headers": [ + { + "_fromType": "array", + "name": "accept", + "value": "*/*" + } + ], + "headersSize": 551, + "httpVersion": "HTTP/1.1", + "method": "DELETE", + "queryString": [], + "url": "https://api.datadoghq.com/api/v2/team-hierarchy-links/c53bed14-1c0a-4895-b845-1c04be086ba0" + }, + "response": { + "bodySize": 0, + "content": { + "mimeType": "text/plain", + "size": 0 + }, + "cookies": [], + "headers": [], + "headersSize": 616, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 204, + "statusText": "No Content" + }, + "startedDateTime": "2025-11-24T14:30:00.070Z", + "time": 498 + }, + { + "_id": "6d81924bf5b8653f44e5ac1455978289", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 0, + "cookies": [], + "headers": [ + { + "_fromType": "array", + "name": "accept", + "value": "*/*" + } + ], + "headersSize": 522, + "httpVersion": "HTTP/1.1", + "method": "DELETE", + "queryString": [], + "url": "https://api.datadoghq.com/api/v2/team/e1c6ab08-0325-4df7-aea1-6bec76692d55" + }, + "response": { + "bodySize": 0, + "content": { + "mimeType": "text/plain", + "size": 0 + }, + "cookies": [], + "headers": [], + "headersSize": 632, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 204, + "statusText": "No Content" + }, + "startedDateTime": "2025-11-24T14:30:00.574Z", + "time": 580 + }, + { + "_id": "bc39bebdacee3cfea04d975a22d8bd87", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 0, + "cookies": [], + "headers": [ + { + "_fromType": "array", + "name": "accept", + "value": "*/*" + } + ], + "headersSize": 522, + "httpVersion": "HTTP/1.1", + "method": "DELETE", + "queryString": [], + "url": "https://api.datadoghq.com/api/v2/team/551c947a-0f0f-4ff0-8c41-0ceddabe3551" + }, + "response": { + "bodySize": 0, + "content": { + "mimeType": "text/plain", + "size": 0 + }, + "cookies": [], + "headers": [], + "headersSize": 632, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 204, + "statusText": "No Content" + }, + "startedDateTime": "2025-11-24T14:30:01.159Z", + "time": 624 + } + ], + "pages": [], + "version": "1.2" + } +} diff --git a/cassettes/v2/Teams_3116892301/Create-a-team-hierarchy-link-returns-Conflict-response_2009282886/frozen.json b/cassettes/v2/Teams_3116892301/Create-a-team-hierarchy-link-returns-Conflict-response_2009282886/frozen.json new file mode 100644 index 000000000000..ec8a279ce064 --- /dev/null +++ b/cassettes/v2/Teams_3116892301/Create-a-team-hierarchy-link-returns-Conflict-response_2009282886/frozen.json @@ -0,0 +1 @@ +"2025-11-24T17:06:46.856Z" diff --git a/cassettes/v2/Teams_3116892301/Create-a-team-hierarchy-link-returns-Conflict-response_2009282886/recording.har b/cassettes/v2/Teams_3116892301/Create-a-team-hierarchy-link-returns-Conflict-response_2009282886/recording.har new file mode 100644 index 000000000000..422253cda6ae --- /dev/null +++ b/cassettes/v2/Teams_3116892301/Create-a-team-hierarchy-link-returns-Conflict-response_2009282886/recording.har @@ -0,0 +1,337 @@ +{ + "log": { + "_recordingName": "Teams/Create a team hierarchy link returns \"Conflict\" response", + "creator": { + "comment": "persister:fs", + "name": "Polly.JS", + "version": "6.0.5" + }, + "entries": [ + { + "_id": "adf5deff6dc2c965d6479abfd55aaf51", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 115, + "cookies": [], + "headers": [ + { + "_fromType": "array", + "name": "accept", + "value": "application/json" + }, + { + "_fromType": "array", + "name": "content-type", + "value": "application/json" + } + ], + "headersSize": 549, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"data\":{\"attributes\":{\"handle\":\"test-handle-6c891437b748aea8\",\"name\":\"test-name-6c891437b748aea8\"},\"type\":\"team\"}}" + }, + "queryString": [], + "url": "https://api.datadoghq.com/api/v2/team" + }, + "response": { + "bodySize": 660, + "content": { + "mimeType": "application/vnd.api+json", + "size": 660, + "text": "{\"data\":{\"id\":\"4a9a1845-0ba7-4a6f-a34d-6e72a4ffda87\",\"type\":\"team\",\"attributes\":{\"avatar\":null,\"banner\":0,\"created_at\":\"2025-11-24T17:06:47.453319+00:00\",\"description\":null,\"handle\":\"test-handle-6c891437b748aea8\",\"hidden_modules\":null,\"is_managed\":false,\"link_count\":0,\"modified_at\":\"2025-11-24T17:06:47.453319+00:00\",\"name\":\"test-name-6c891437b748aea8\",\"summary\":null,\"user_count\":0,\"visible_modules\":null},\"relationships\":{\"team_links\":{\"data\":[],\"links\":{\"related\":\"/api/v2/team/4a9a1845-0ba7-4a6f-a34d-6e72a4ffda87/links\"}},\"user_team_permissions\":{\"data\":null,\"links\":{\"related\":\"/api/v2/team/4a9a1845-0ba7-4a6f-a34d-6e72a4ffda87/permission-settings\"}}}}}" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/vnd.api+json" + } + ], + "headersSize": 700, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 201, + "statusText": "Created" + }, + "startedDateTime": "2025-11-24T17:06:46.860Z", + "time": 570 + }, + { + "_id": "37f9b24b2c323ffb9c5963c23ea57a89", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 119, + "cookies": [], + "headers": [ + { + "_fromType": "array", + "name": "accept", + "value": "application/json" + }, + { + "_fromType": "array", + "name": "content-type", + "value": "application/json" + } + ], + "headersSize": 549, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"data\":{\"attributes\":{\"handle\":\"test-handle-2-6c891437b748aea8\",\"name\":\"test-name-2-6c891437b748aea8\"},\"type\":\"team\"}}" + }, + "queryString": [], + "url": "https://api.datadoghq.com/api/v2/team" + }, + "response": { + "bodySize": 664, + "content": { + "mimeType": "application/vnd.api+json", + "size": 664, + "text": "{\"data\":{\"id\":\"21296c73-c9e2-4889-a33f-417d2974b2bd\",\"type\":\"team\",\"attributes\":{\"avatar\":null,\"banner\":2,\"created_at\":\"2025-11-24T17:06:48.020887+00:00\",\"description\":null,\"handle\":\"test-handle-2-6c891437b748aea8\",\"hidden_modules\":null,\"is_managed\":false,\"link_count\":0,\"modified_at\":\"2025-11-24T17:06:48.020887+00:00\",\"name\":\"test-name-2-6c891437b748aea8\",\"summary\":null,\"user_count\":0,\"visible_modules\":null},\"relationships\":{\"team_links\":{\"data\":[],\"links\":{\"related\":\"/api/v2/team/21296c73-c9e2-4889-a33f-417d2974b2bd/links\"}},\"user_team_permissions\":{\"data\":null,\"links\":{\"related\":\"/api/v2/team/21296c73-c9e2-4889-a33f-417d2974b2bd/permission-settings\"}}}}}" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/vnd.api+json" + } + ], + "headersSize": 700, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 201, + "statusText": "Created" + }, + "startedDateTime": "2025-11-24T17:06:47.438Z", + "time": 547 + }, + { + "_id": "267eba7d17100a4821689df14ad63c61", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 221, + "cookies": [], + "headers": [ + { + "_fromType": "array", + "name": "accept", + "value": "application/json" + }, + { + "_fromType": "array", + "name": "content-type", + "value": "application/json" + } + ], + "headersSize": 575, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"data\":{\"relationships\":{\"parent_team\":{\"data\":{\"id\":\"4a9a1845-0ba7-4a6f-a34d-6e72a4ffda87\",\"type\":\"team\"}},\"sub_team\":{\"data\":{\"id\":\"21296c73-c9e2-4889-a33f-417d2974b2bd\",\"type\":\"team\"}}},\"type\":\"team_hierarchy_links\"}}" + }, + "queryString": [], + "url": "https://api.datadoghq.com/api/v2/team-hierarchy-links" + }, + "response": { + "bodySize": 897, + "content": { + "mimeType": "application/vnd.api+json", + "size": 897, + "text": "{\"data\":{\"id\":\"e980108e-d535-4bdf-84ca-5e8f84a68480\",\"type\":\"team_hierarchy_links\",\"attributes\":{\"created_at\":\"2025-11-24T17:06:48.279316439Z\",\"provisioned_by\":\"\"},\"relationships\":{\"parent_team\":{\"data\":{\"id\":\"4a9a1845-0ba7-4a6f-a34d-6e72a4ffda87\",\"type\":\"team\"}},\"sub_team\":{\"data\":{\"id\":\"21296c73-c9e2-4889-a33f-417d2974b2bd\",\"type\":\"team\"}}}},\"included\":[{\"id\":\"4a9a1845-0ba7-4a6f-a34d-6e72a4ffda87\",\"type\":\"team\",\"attributes\":{\"avatar\":null,\"banner\":0,\"handle\":\"test-handle-6c891437b748aea8\",\"is_managed\":false,\"is_open_membership\":false,\"link_count\":0,\"name\":\"test-name-6c891437b748aea8\",\"summary\":null,\"user_count\":0}},{\"id\":\"21296c73-c9e2-4889-a33f-417d2974b2bd\",\"type\":\"team\",\"attributes\":{\"avatar\":null,\"banner\":2,\"handle\":\"test-handle-2-6c891437b748aea8\",\"is_managed\":false,\"is_open_membership\":false,\"link_count\":0,\"name\":\"test-name-2-6c891437b748aea8\",\"summary\":null,\"user_count\":0}}]}" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/vnd.api+json" + } + ], + "headersSize": 677, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2025-11-24T17:06:47.994Z", + "time": 210 + }, + { + "_id": "267eba7d17100a4821689df14ad63c61", + "_order": 1, + "cache": {}, + "request": { + "bodySize": 221, + "cookies": [], + "headers": [ + { + "_fromType": "array", + "name": "accept", + "value": "application/json" + }, + { + "_fromType": "array", + "name": "content-type", + "value": "application/json" + } + ], + "headersSize": 575, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"data\":{\"relationships\":{\"parent_team\":{\"data\":{\"id\":\"4a9a1845-0ba7-4a6f-a34d-6e72a4ffda87\",\"type\":\"team\"}},\"sub_team\":{\"data\":{\"id\":\"21296c73-c9e2-4889-a33f-417d2974b2bd\",\"type\":\"team\"}}},\"type\":\"team_hierarchy_links\"}}" + }, + "queryString": [], + "url": "https://api.datadoghq.com/api/v2/team-hierarchy-links" + }, + "response": { + "bodySize": 315, + "content": { + "mimeType": "application/vnd.api+json", + "size": 315, + "text": "{\"errors\":[\"Conflict: could not add team 21296c73-c9e2-4889-a33f-417d2974b2bd as a member team of team 4a9a1845-0ba7-4a6f-a34d-6e72a4ffda87 in org 321813: team hierarchy link between super team 4a9a1845-0ba7-4a6f-a34d-6e72a4ffda87 and member team 21296c73-c9e2-4889-a33f-417d2974b2bd already exists in org 321813\"]}" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/vnd.api+json" + } + ], + "headersSize": 677, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 409, + "statusText": "Conflict" + }, + "startedDateTime": "2025-11-24T17:06:48.213Z", + "time": 519 + }, + { + "_id": "43a96ba1e2d1511186d4d9cc8c497fed", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 0, + "cookies": [], + "headers": [ + { + "_fromType": "array", + "name": "accept", + "value": "*/*" + } + ], + "headersSize": 551, + "httpVersion": "HTTP/1.1", + "method": "DELETE", + "queryString": [], + "url": "https://api.datadoghq.com/api/v2/team-hierarchy-links/e980108e-d535-4bdf-84ca-5e8f84a68480" + }, + "response": { + "bodySize": 0, + "content": { + "mimeType": "text/plain", + "size": 0 + }, + "cookies": [], + "headers": [], + "headersSize": 616, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 204, + "statusText": "No Content" + }, + "startedDateTime": "2025-11-24T17:06:48.742Z", + "time": 495 + }, + { + "_id": "47b09fbf2ee13d4cd9b88682d56a87a1", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 0, + "cookies": [], + "headers": [ + { + "_fromType": "array", + "name": "accept", + "value": "*/*" + } + ], + "headersSize": 522, + "httpVersion": "HTTP/1.1", + "method": "DELETE", + "queryString": [], + "url": "https://api.datadoghq.com/api/v2/team/21296c73-c9e2-4889-a33f-417d2974b2bd" + }, + "response": { + "bodySize": 0, + "content": { + "mimeType": "text/plain", + "size": 0 + }, + "cookies": [], + "headers": [], + "headersSize": 632, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 204, + "statusText": "No Content" + }, + "startedDateTime": "2025-11-24T17:06:49.243Z", + "time": 597 + }, + { + "_id": "0b87c8a41da268e8f81761e5b6974c1e", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 0, + "cookies": [], + "headers": [ + { + "_fromType": "array", + "name": "accept", + "value": "*/*" + } + ], + "headersSize": 522, + "httpVersion": "HTTP/1.1", + "method": "DELETE", + "queryString": [], + "url": "https://api.datadoghq.com/api/v2/team/4a9a1845-0ba7-4a6f-a34d-6e72a4ffda87" + }, + "response": { + "bodySize": 0, + "content": { + "mimeType": "text/plain", + "size": 0 + }, + "cookies": [], + "headers": [], + "headersSize": 632, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 204, + "statusText": "No Content" + }, + "startedDateTime": "2025-11-24T17:06:49.844Z", + "time": 569 + } + ], + "pages": [], + "version": "1.2" + } +} diff --git a/cassettes/v2/Teams_3116892301/Create-a-team-hierarchy-link-returns-OK-response_398884198/frozen.json b/cassettes/v2/Teams_3116892301/Create-a-team-hierarchy-link-returns-OK-response_398884198/frozen.json new file mode 100644 index 000000000000..593fd5467555 --- /dev/null +++ b/cassettes/v2/Teams_3116892301/Create-a-team-hierarchy-link-returns-OK-response_398884198/frozen.json @@ -0,0 +1 @@ +"2025-11-24T16:01:16.053Z" diff --git a/cassettes/v2/Teams_3116892301/Create-a-team-hierarchy-link-returns-OK-response_398884198/recording.har b/cassettes/v2/Teams_3116892301/Create-a-team-hierarchy-link-returns-OK-response_398884198/recording.har new file mode 100644 index 000000000000..f30a91a11527 --- /dev/null +++ b/cassettes/v2/Teams_3116892301/Create-a-team-hierarchy-link-returns-OK-response_398884198/recording.har @@ -0,0 +1,284 @@ +{ + "log": { + "_recordingName": "Teams/Create a team hierarchy link returns \"OK\" response", + "creator": { + "comment": "persister:fs", + "name": "Polly.JS", + "version": "6.0.5" + }, + "entries": [ + { + "_id": "f51dc8b1f646051d30172e2e4672585c", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 115, + "cookies": [], + "headers": [ + { + "_fromType": "array", + "name": "accept", + "value": "application/json" + }, + { + "_fromType": "array", + "name": "content-type", + "value": "application/json" + } + ], + "headersSize": 549, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"data\":{\"attributes\":{\"handle\":\"test-handle-4d8084da4dfa4ed8\",\"name\":\"test-name-4d8084da4dfa4ed8\"},\"type\":\"team\"}}" + }, + "queryString": [], + "url": "https://api.datadoghq.com/api/v2/team" + }, + "response": { + "bodySize": 661, + "content": { + "mimeType": "application/vnd.api+json", + "size": 661, + "text": "{\"data\":{\"id\":\"d5b049f4-59f1-474d-ad98-5a7342a8961f\",\"type\":\"team\",\"attributes\":{\"avatar\":null,\"banner\":11,\"created_at\":\"2025-11-24T16:01:16.149673+00:00\",\"description\":null,\"handle\":\"test-handle-4d8084da4dfa4ed8\",\"hidden_modules\":null,\"is_managed\":false,\"link_count\":0,\"modified_at\":\"2025-11-24T16:01:16.149673+00:00\",\"name\":\"test-name-4d8084da4dfa4ed8\",\"summary\":null,\"user_count\":0,\"visible_modules\":null},\"relationships\":{\"team_links\":{\"data\":[],\"links\":{\"related\":\"/api/v2/team/d5b049f4-59f1-474d-ad98-5a7342a8961f/links\"}},\"user_team_permissions\":{\"data\":null,\"links\":{\"related\":\"/api/v2/team/d5b049f4-59f1-474d-ad98-5a7342a8961f/permission-settings\"}}}}}" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/vnd.api+json" + } + ], + "headersSize": 700, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 201, + "statusText": "Created" + }, + "startedDateTime": "2025-11-24T16:01:16.055Z", + "time": 156 + }, + { + "_id": "e7e795a9a0a40b1f3108a95eb0c0845a", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 119, + "cookies": [], + "headers": [ + { + "_fromType": "array", + "name": "accept", + "value": "application/json" + }, + { + "_fromType": "array", + "name": "content-type", + "value": "application/json" + } + ], + "headersSize": 548, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"data\":{\"attributes\":{\"handle\":\"test-handle-2-4d8084da4dfa4ed8\",\"name\":\"test-name-2-4d8084da4dfa4ed8\"},\"type\":\"team\"}}" + }, + "queryString": [], + "url": "https://api.datadoghq.com/api/v2/team" + }, + "response": { + "bodySize": 664, + "content": { + "mimeType": "application/vnd.api+json", + "size": 664, + "text": "{\"data\":{\"id\":\"790428f6-10bc-427d-bf36-f53ca3c197e0\",\"type\":\"team\",\"attributes\":{\"avatar\":null,\"banner\":4,\"created_at\":\"2025-11-24T16:01:16.315013+00:00\",\"description\":null,\"handle\":\"test-handle-2-4d8084da4dfa4ed8\",\"hidden_modules\":null,\"is_managed\":false,\"link_count\":0,\"modified_at\":\"2025-11-24T16:01:16.315013+00:00\",\"name\":\"test-name-2-4d8084da4dfa4ed8\",\"summary\":null,\"user_count\":0,\"visible_modules\":null},\"relationships\":{\"team_links\":{\"data\":[],\"links\":{\"related\":\"/api/v2/team/790428f6-10bc-427d-bf36-f53ca3c197e0/links\"}},\"user_team_permissions\":{\"data\":null,\"links\":{\"related\":\"/api/v2/team/790428f6-10bc-427d-bf36-f53ca3c197e0/permission-settings\"}}}}}" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/vnd.api+json" + } + ], + "headersSize": 700, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 201, + "statusText": "Created" + }, + "startedDateTime": "2025-11-24T16:01:16.215Z", + "time": 146 + }, + { + "_id": "cbc1af8bd3faae4269f63ec95d122c37", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 221, + "cookies": [], + "headers": [ + { + "_fromType": "array", + "name": "accept", + "value": "application/json" + }, + { + "_fromType": "array", + "name": "content-type", + "value": "application/json" + } + ], + "headersSize": 573, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"data\":{\"relationships\":{\"parent_team\":{\"data\":{\"id\":\"d5b049f4-59f1-474d-ad98-5a7342a8961f\",\"type\":\"team\"}},\"sub_team\":{\"data\":{\"id\":\"790428f6-10bc-427d-bf36-f53ca3c197e0\",\"type\":\"team\"}}},\"type\":\"team_hierarchy_links\"}}" + }, + "queryString": [], + "url": "https://api.datadoghq.com/api/v2/team-hierarchy-links" + }, + "response": { + "bodySize": 898, + "content": { + "mimeType": "application/vnd.api+json", + "size": 898, + "text": "{\"data\":{\"id\":\"6cf86539-2c6e-497e-8cef-0b285ff05514\",\"type\":\"team_hierarchy_links\",\"attributes\":{\"created_at\":\"2025-11-24T16:01:16.460042023Z\",\"provisioned_by\":\"\"},\"relationships\":{\"parent_team\":{\"data\":{\"id\":\"d5b049f4-59f1-474d-ad98-5a7342a8961f\",\"type\":\"team\"}},\"sub_team\":{\"data\":{\"id\":\"790428f6-10bc-427d-bf36-f53ca3c197e0\",\"type\":\"team\"}}}},\"included\":[{\"id\":\"d5b049f4-59f1-474d-ad98-5a7342a8961f\",\"type\":\"team\",\"attributes\":{\"avatar\":null,\"banner\":11,\"handle\":\"test-handle-4d8084da4dfa4ed8\",\"is_managed\":false,\"is_open_membership\":false,\"link_count\":0,\"name\":\"test-name-4d8084da4dfa4ed8\",\"summary\":null,\"user_count\":0}},{\"id\":\"790428f6-10bc-427d-bf36-f53ca3c197e0\",\"type\":\"team\",\"attributes\":{\"avatar\":null,\"banner\":4,\"handle\":\"test-handle-2-4d8084da4dfa4ed8\",\"is_managed\":false,\"is_open_membership\":false,\"link_count\":0,\"name\":\"test-name-2-4d8084da4dfa4ed8\",\"summary\":null,\"user_count\":0}}]}" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/vnd.api+json" + } + ], + "headersSize": 677, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2025-11-24T16:01:16.365Z", + "time": 107 + }, + { + "_id": "6453e6125ae83962a8a9439efd6fd387", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 0, + "cookies": [], + "headers": [ + { + "_fromType": "array", + "name": "accept", + "value": "*/*" + } + ], + "headersSize": 551, + "httpVersion": "HTTP/1.1", + "method": "DELETE", + "queryString": [], + "url": "https://api.datadoghq.com/api/v2/team-hierarchy-links/6cf86539-2c6e-497e-8cef-0b285ff05514" + }, + "response": { + "bodySize": 0, + "content": { + "mimeType": "text/plain", + "size": 0 + }, + "cookies": [], + "headers": [], + "headersSize": 616, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 204, + "statusText": "No Content" + }, + "startedDateTime": "2025-11-24T16:01:16.477Z", + "time": 111 + }, + { + "_id": "03667a1074b05151c93a8caa250c0b2d", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 0, + "cookies": [], + "headers": [ + { + "_fromType": "array", + "name": "accept", + "value": "*/*" + } + ], + "headersSize": 521, + "httpVersion": "HTTP/1.1", + "method": "DELETE", + "queryString": [], + "url": "https://api.datadoghq.com/api/v2/team/790428f6-10bc-427d-bf36-f53ca3c197e0" + }, + "response": { + "bodySize": 0, + "content": { + "mimeType": "text/plain", + "size": 0 + }, + "cookies": [], + "headers": [], + "headersSize": 632, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 204, + "statusText": "No Content" + }, + "startedDateTime": "2025-11-24T16:01:16.590Z", + "time": 191 + }, + { + "_id": "6f791bb84f5baf6e3abb6198566110c1", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 0, + "cookies": [], + "headers": [ + { + "_fromType": "array", + "name": "accept", + "value": "*/*" + } + ], + "headersSize": 522, + "httpVersion": "HTTP/1.1", + "method": "DELETE", + "queryString": [], + "url": "https://api.datadoghq.com/api/v2/team/d5b049f4-59f1-474d-ad98-5a7342a8961f" + }, + "response": { + "bodySize": 0, + "content": { + "mimeType": "text/plain", + "size": 0 + }, + "cookies": [], + "headers": [], + "headersSize": 632, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 204, + "statusText": "No Content" + }, + "startedDateTime": "2025-11-24T16:01:16.783Z", + "time": 209 + } + ], + "pages": [], + "version": "1.2" + } +} diff --git a/cassettes/v2/Teams_3116892301/Create-a-team-hierarchy-link-returns-SUCCESS-response_1402025629/frozen.json b/cassettes/v2/Teams_3116892301/Create-a-team-hierarchy-link-returns-SUCCESS-response_1402025629/frozen.json new file mode 100644 index 000000000000..413a99b97c12 --- /dev/null +++ b/cassettes/v2/Teams_3116892301/Create-a-team-hierarchy-link-returns-SUCCESS-response_1402025629/frozen.json @@ -0,0 +1 @@ +"2025-11-24T15:48:39.900Z" diff --git a/cassettes/v2/Teams_3116892301/Create-a-team-hierarchy-link-returns-SUCCESS-response_1402025629/recording.har b/cassettes/v2/Teams_3116892301/Create-a-team-hierarchy-link-returns-SUCCESS-response_1402025629/recording.har new file mode 100644 index 000000000000..f0d727a9c2da --- /dev/null +++ b/cassettes/v2/Teams_3116892301/Create-a-team-hierarchy-link-returns-SUCCESS-response_1402025629/recording.har @@ -0,0 +1,284 @@ +{ + "log": { + "_recordingName": "Teams/Create a team hierarchy link returns \"SUCCESS\" response", + "creator": { + "comment": "persister:fs", + "name": "Polly.JS", + "version": "6.0.5" + }, + "entries": [ + { + "_id": "a2753edb970cfffeb922aed09f6fdbdc", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 115, + "cookies": [], + "headers": [ + { + "_fromType": "array", + "name": "accept", + "value": "application/json" + }, + { + "_fromType": "array", + "name": "content-type", + "value": "application/json" + } + ], + "headersSize": 549, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"data\":{\"attributes\":{\"handle\":\"test-handle-a75ee0b8b483d66f\",\"name\":\"test-name-a75ee0b8b483d66f\"},\"type\":\"team\"}}" + }, + "queryString": [], + "url": "https://api.datadoghq.com/api/v2/team" + }, + "response": { + "bodySize": 660, + "content": { + "mimeType": "application/vnd.api+json", + "size": 660, + "text": "{\"data\":{\"id\":\"b85e63cd-1d9f-4b71-a47c-f5a99d4a4afd\",\"type\":\"team\",\"attributes\":{\"avatar\":null,\"banner\":3,\"created_at\":\"2025-11-24T15:48:40.359260+00:00\",\"description\":null,\"handle\":\"test-handle-a75ee0b8b483d66f\",\"hidden_modules\":null,\"is_managed\":false,\"link_count\":0,\"modified_at\":\"2025-11-24T15:48:40.359261+00:00\",\"name\":\"test-name-a75ee0b8b483d66f\",\"summary\":null,\"user_count\":0,\"visible_modules\":null},\"relationships\":{\"team_links\":{\"data\":[],\"links\":{\"related\":\"/api/v2/team/b85e63cd-1d9f-4b71-a47c-f5a99d4a4afd/links\"}},\"user_team_permissions\":{\"data\":null,\"links\":{\"related\":\"/api/v2/team/b85e63cd-1d9f-4b71-a47c-f5a99d4a4afd/permission-settings\"}}}}}" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/vnd.api+json" + } + ], + "headersSize": 700, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 201, + "statusText": "Created" + }, + "startedDateTime": "2025-11-24T15:48:39.905Z", + "time": 534 + }, + { + "_id": "f158473a07cdc0892d920faf55be902d", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 119, + "cookies": [], + "headers": [ + { + "_fromType": "array", + "name": "accept", + "value": "application/json" + }, + { + "_fromType": "array", + "name": "content-type", + "value": "application/json" + } + ], + "headersSize": 549, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"data\":{\"attributes\":{\"handle\":\"test-handle-2-a75ee0b8b483d66f\",\"name\":\"test-name-2-a75ee0b8b483d66f\"},\"type\":\"team\"}}" + }, + "queryString": [], + "url": "https://api.datadoghq.com/api/v2/team" + }, + "response": { + "bodySize": 664, + "content": { + "mimeType": "application/vnd.api+json", + "size": 664, + "text": "{\"data\":{\"id\":\"2d096572-eb6a-4579-ba38-b4247cf75e17\",\"type\":\"team\",\"attributes\":{\"avatar\":null,\"banner\":8,\"created_at\":\"2025-11-24T15:48:40.893488+00:00\",\"description\":null,\"handle\":\"test-handle-2-a75ee0b8b483d66f\",\"hidden_modules\":null,\"is_managed\":false,\"link_count\":0,\"modified_at\":\"2025-11-24T15:48:40.893488+00:00\",\"name\":\"test-name-2-a75ee0b8b483d66f\",\"summary\":null,\"user_count\":0,\"visible_modules\":null},\"relationships\":{\"team_links\":{\"data\":[],\"links\":{\"related\":\"/api/v2/team/2d096572-eb6a-4579-ba38-b4247cf75e17/links\"}},\"user_team_permissions\":{\"data\":null,\"links\":{\"related\":\"/api/v2/team/2d096572-eb6a-4579-ba38-b4247cf75e17/permission-settings\"}}}}}" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/vnd.api+json" + } + ], + "headersSize": 700, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 201, + "statusText": "Created" + }, + "startedDateTime": "2025-11-24T15:48:40.447Z", + "time": 527 + }, + { + "_id": "8ef0058d92ab3007697511d2bed31ad6", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 221, + "cookies": [], + "headers": [ + { + "_fromType": "array", + "name": "accept", + "value": "application/json" + }, + { + "_fromType": "array", + "name": "content-type", + "value": "application/json" + } + ], + "headersSize": 575, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"data\":{\"relationships\":{\"parent_team\":{\"data\":{\"id\":\"b85e63cd-1d9f-4b71-a47c-f5a99d4a4afd\",\"type\":\"team\"}},\"sub_team\":{\"data\":{\"id\":\"2d096572-eb6a-4579-ba38-b4247cf75e17\",\"type\":\"team\"}}},\"type\":\"team_hierarchy_links\"}}" + }, + "queryString": [], + "url": "https://api.datadoghq.com/api/v2/team-hierarchy-links" + }, + "response": { + "bodySize": 897, + "content": { + "mimeType": "application/vnd.api+json", + "size": 897, + "text": "{\"data\":{\"id\":\"fb94d43b-fe10-4c5f-ae7c-4ad745428651\",\"type\":\"team_hierarchy_links\",\"attributes\":{\"created_at\":\"2025-11-24T15:48:41.150923395Z\",\"provisioned_by\":\"\"},\"relationships\":{\"parent_team\":{\"data\":{\"id\":\"b85e63cd-1d9f-4b71-a47c-f5a99d4a4afd\",\"type\":\"team\"}},\"sub_team\":{\"data\":{\"id\":\"2d096572-eb6a-4579-ba38-b4247cf75e17\",\"type\":\"team\"}}}},\"included\":[{\"id\":\"b85e63cd-1d9f-4b71-a47c-f5a99d4a4afd\",\"type\":\"team\",\"attributes\":{\"avatar\":null,\"banner\":3,\"handle\":\"test-handle-a75ee0b8b483d66f\",\"is_managed\":false,\"is_open_membership\":false,\"link_count\":0,\"name\":\"test-name-a75ee0b8b483d66f\",\"summary\":null,\"user_count\":0}},{\"id\":\"2d096572-eb6a-4579-ba38-b4247cf75e17\",\"type\":\"team\",\"attributes\":{\"avatar\":null,\"banner\":8,\"handle\":\"test-handle-2-a75ee0b8b483d66f\",\"is_managed\":false,\"is_open_membership\":false,\"link_count\":0,\"name\":\"test-name-2-a75ee0b8b483d66f\",\"summary\":null,\"user_count\":0}}]}" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/vnd.api+json" + } + ], + "headersSize": 677, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2025-11-24T15:48:40.984Z", + "time": 219 + }, + { + "_id": "b586f65c5e8c5c75934c2310020328b2", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 0, + "cookies": [], + "headers": [ + { + "_fromType": "array", + "name": "accept", + "value": "*/*" + } + ], + "headersSize": 551, + "httpVersion": "HTTP/1.1", + "method": "DELETE", + "queryString": [], + "url": "https://api.datadoghq.com/api/v2/team-hierarchy-links/fb94d43b-fe10-4c5f-ae7c-4ad745428651" + }, + "response": { + "bodySize": 0, + "content": { + "mimeType": "text/plain", + "size": 0 + }, + "cookies": [], + "headers": [], + "headersSize": 616, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 204, + "statusText": "No Content" + }, + "startedDateTime": "2025-11-24T15:48:41.213Z", + "time": 525 + }, + { + "_id": "df534d51885112f972640ec13f719086", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 0, + "cookies": [], + "headers": [ + { + "_fromType": "array", + "name": "accept", + "value": "*/*" + } + ], + "headersSize": 522, + "httpVersion": "HTTP/1.1", + "method": "DELETE", + "queryString": [], + "url": "https://api.datadoghq.com/api/v2/team/2d096572-eb6a-4579-ba38-b4247cf75e17" + }, + "response": { + "bodySize": 0, + "content": { + "mimeType": "text/plain", + "size": 0 + }, + "cookies": [], + "headers": [], + "headersSize": 632, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 204, + "statusText": "No Content" + }, + "startedDateTime": "2025-11-24T15:48:41.744Z", + "time": 621 + }, + { + "_id": "10a7d2f1489b3643d02d08eeed113a13", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 0, + "cookies": [], + "headers": [ + { + "_fromType": "array", + "name": "accept", + "value": "*/*" + } + ], + "headersSize": 522, + "httpVersion": "HTTP/1.1", + "method": "DELETE", + "queryString": [], + "url": "https://api.datadoghq.com/api/v2/team/b85e63cd-1d9f-4b71-a47c-f5a99d4a4afd" + }, + "response": { + "bodySize": 0, + "content": { + "mimeType": "text/plain", + "size": 0 + }, + "cookies": [], + "headers": [], + "headersSize": 632, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 204, + "statusText": "No Content" + }, + "startedDateTime": "2025-11-24T15:48:42.370Z", + "time": 592 + } + ], + "pages": [], + "version": "1.2" + } +} diff --git a/cassettes/v2/Teams_3116892301/Get-a-team-hierarchy-link-returns-API-error-response-response_3395612101/frozen.json b/cassettes/v2/Teams_3116892301/Get-a-team-hierarchy-link-returns-API-error-response-response_3395612101/frozen.json new file mode 100644 index 000000000000..6629a1699d19 --- /dev/null +++ b/cassettes/v2/Teams_3116892301/Get-a-team-hierarchy-link-returns-API-error-response-response_3395612101/frozen.json @@ -0,0 +1 @@ +"2025-11-24T13:19:11.816Z" diff --git a/cassettes/v2/Teams_3116892301/Get-a-team-hierarchy-link-returns-API-error-response-response_3395612101/recording.har b/cassettes/v2/Teams_3116892301/Get-a-team-hierarchy-link-returns-API-error-response-response_3395612101/recording.har new file mode 100644 index 000000000000..36f63a7342e4 --- /dev/null +++ b/cassettes/v2/Teams_3116892301/Get-a-team-hierarchy-link-returns-API-error-response-response_3395612101/recording.har @@ -0,0 +1,57 @@ +{ + "log": { + "_recordingName": "Teams/Get a team hierarchy link returns \"API error response.\" response", + "creator": { + "comment": "persister:fs", + "name": "Polly.JS", + "version": "6.0.5" + }, + "entries": [ + { + "_id": "c4e82909dd3532204c8818e59e6b3249", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 0, + "cookies": [], + "headers": [ + { + "_fromType": "array", + "name": "accept", + "value": "application/json" + } + ], + "headersSize": 558, + "httpVersion": "HTTP/1.1", + "method": "GET", + "queryString": [], + "url": "https://api.datadoghq.com/api/v2/team-hierarchy-links/aaa11111-aa11-aa11-aaaa-aaaaaa111111" + }, + "response": { + "bodySize": 101, + "content": { + "mimeType": "application/vnd.api+json", + "size": 101, + "text": "{\"errors\":[\"Not Found: team hierarchy link not found (linkId=aaa11111-aa11-aa11-aaaa-aaaaaa111111)\"]}" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/vnd.api+json" + } + ], + "headersSize": 677, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 404, + "statusText": "Not Found" + }, + "startedDateTime": "2025-11-24T13:19:11.819Z", + "time": 470 + } + ], + "pages": [], + "version": "1.2" + } +} diff --git a/cassettes/v2/Teams_3116892301/Get-a-team-hierarchy-link-returns-OK-response_4031746224/frozen.json b/cassettes/v2/Teams_3116892301/Get-a-team-hierarchy-link-returns-OK-response_4031746224/frozen.json new file mode 100644 index 000000000000..8bdd2db1ad26 --- /dev/null +++ b/cassettes/v2/Teams_3116892301/Get-a-team-hierarchy-link-returns-OK-response_4031746224/frozen.json @@ -0,0 +1 @@ +"2025-11-24T17:07:09.212Z" diff --git a/cassettes/v2/Teams_3116892301/Get-a-team-hierarchy-link-returns-OK-response_4031746224/recording.har b/cassettes/v2/Teams_3116892301/Get-a-team-hierarchy-link-returns-OK-response_4031746224/recording.har new file mode 100644 index 000000000000..f26b024b10f1 --- /dev/null +++ b/cassettes/v2/Teams_3116892301/Get-a-team-hierarchy-link-returns-OK-response_4031746224/recording.har @@ -0,0 +1,327 @@ +{ + "log": { + "_recordingName": "Teams/Get a team hierarchy link returns \"OK\" response", + "creator": { + "comment": "persister:fs", + "name": "Polly.JS", + "version": "6.0.5" + }, + "entries": [ + { + "_id": "799e86d0e894767130bc91ff5c599a26", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 115, + "cookies": [], + "headers": [ + { + "_fromType": "array", + "name": "accept", + "value": "application/json" + }, + { + "_fromType": "array", + "name": "content-type", + "value": "application/json" + } + ], + "headersSize": 549, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"data\":{\"attributes\":{\"handle\":\"test-handle-ae3e76a23be3747a\",\"name\":\"test-name-ae3e76a23be3747a\"},\"type\":\"team\"}}" + }, + "queryString": [], + "url": "https://api.datadoghq.com/api/v2/team" + }, + "response": { + "bodySize": 661, + "content": { + "mimeType": "application/vnd.api+json", + "size": 661, + "text": "{\"data\":{\"id\":\"fafeac94-42b4-4469-91e8-0ae5ca3f564b\",\"type\":\"team\",\"attributes\":{\"avatar\":null,\"banner\":11,\"created_at\":\"2025-11-24T17:07:09.817794+00:00\",\"description\":null,\"handle\":\"test-handle-ae3e76a23be3747a\",\"hidden_modules\":null,\"is_managed\":false,\"link_count\":0,\"modified_at\":\"2025-11-24T17:07:09.817794+00:00\",\"name\":\"test-name-ae3e76a23be3747a\",\"summary\":null,\"user_count\":0,\"visible_modules\":null},\"relationships\":{\"team_links\":{\"data\":[],\"links\":{\"related\":\"/api/v2/team/fafeac94-42b4-4469-91e8-0ae5ca3f564b/links\"}},\"user_team_permissions\":{\"data\":null,\"links\":{\"related\":\"/api/v2/team/fafeac94-42b4-4469-91e8-0ae5ca3f564b/permission-settings\"}}}}}" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/vnd.api+json" + } + ], + "headersSize": 700, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 201, + "statusText": "Created" + }, + "startedDateTime": "2025-11-24T17:07:09.215Z", + "time": 570 + }, + { + "_id": "204f2b1ead63f2cd745028e92c8c13a0", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 119, + "cookies": [], + "headers": [ + { + "_fromType": "array", + "name": "accept", + "value": "application/json" + }, + { + "_fromType": "array", + "name": "content-type", + "value": "application/json" + } + ], + "headersSize": 549, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"data\":{\"attributes\":{\"handle\":\"test-handle-2-ae3e76a23be3747a\",\"name\":\"test-name-2-ae3e76a23be3747a\"},\"type\":\"team\"}}" + }, + "queryString": [], + "url": "https://api.datadoghq.com/api/v2/team" + }, + "response": { + "bodySize": 664, + "content": { + "mimeType": "application/vnd.api+json", + "size": 664, + "text": "{\"data\":{\"id\":\"196bcc55-bd30-4cfd-8549-b3d255a0517b\",\"type\":\"team\",\"attributes\":{\"avatar\":null,\"banner\":4,\"created_at\":\"2025-11-24T17:07:10.381761+00:00\",\"description\":null,\"handle\":\"test-handle-2-ae3e76a23be3747a\",\"hidden_modules\":null,\"is_managed\":false,\"link_count\":0,\"modified_at\":\"2025-11-24T17:07:10.381761+00:00\",\"name\":\"test-name-2-ae3e76a23be3747a\",\"summary\":null,\"user_count\":0,\"visible_modules\":null},\"relationships\":{\"team_links\":{\"data\":[],\"links\":{\"related\":\"/api/v2/team/196bcc55-bd30-4cfd-8549-b3d255a0517b/links\"}},\"user_team_permissions\":{\"data\":null,\"links\":{\"related\":\"/api/v2/team/196bcc55-bd30-4cfd-8549-b3d255a0517b/permission-settings\"}}}}}" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/vnd.api+json" + } + ], + "headersSize": 700, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 201, + "statusText": "Created" + }, + "startedDateTime": "2025-11-24T17:07:09.805Z", + "time": 550 + }, + { + "_id": "e977f4aba3b3ed38ae02cab7cdbd1751", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 221, + "cookies": [], + "headers": [ + { + "_fromType": "array", + "name": "accept", + "value": "application/json" + }, + { + "_fromType": "array", + "name": "content-type", + "value": "application/json" + } + ], + "headersSize": 575, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"data\":{\"relationships\":{\"parent_team\":{\"data\":{\"id\":\"fafeac94-42b4-4469-91e8-0ae5ca3f564b\",\"type\":\"team\"}},\"sub_team\":{\"data\":{\"id\":\"196bcc55-bd30-4cfd-8549-b3d255a0517b\",\"type\":\"team\"}}},\"type\":\"team_hierarchy_links\"}}" + }, + "queryString": [], + "url": "https://api.datadoghq.com/api/v2/team-hierarchy-links" + }, + "response": { + "bodySize": 898, + "content": { + "mimeType": "application/vnd.api+json", + "size": 898, + "text": "{\"data\":{\"id\":\"5401e712-de1b-4deb-ac35-2c6ee1943ad0\",\"type\":\"team_hierarchy_links\",\"attributes\":{\"created_at\":\"2025-11-24T17:07:10.643798843Z\",\"provisioned_by\":\"\"},\"relationships\":{\"parent_team\":{\"data\":{\"id\":\"fafeac94-42b4-4469-91e8-0ae5ca3f564b\",\"type\":\"team\"}},\"sub_team\":{\"data\":{\"id\":\"196bcc55-bd30-4cfd-8549-b3d255a0517b\",\"type\":\"team\"}}}},\"included\":[{\"id\":\"fafeac94-42b4-4469-91e8-0ae5ca3f564b\",\"type\":\"team\",\"attributes\":{\"avatar\":null,\"banner\":11,\"handle\":\"test-handle-ae3e76a23be3747a\",\"is_managed\":false,\"is_open_membership\":false,\"link_count\":0,\"name\":\"test-name-ae3e76a23be3747a\",\"summary\":null,\"user_count\":0}},{\"id\":\"196bcc55-bd30-4cfd-8549-b3d255a0517b\",\"type\":\"team\",\"attributes\":{\"avatar\":null,\"banner\":4,\"handle\":\"test-handle-2-ae3e76a23be3747a\",\"is_managed\":false,\"is_open_membership\":false,\"link_count\":0,\"name\":\"test-name-2-ae3e76a23be3747a\",\"summary\":null,\"user_count\":0}}]}" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/vnd.api+json" + } + ], + "headersSize": 677, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2025-11-24T17:07:10.363Z", + "time": 206 + }, + { + "_id": "cc894026b05c65211b8e356dfa0a73eb", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 0, + "cookies": [], + "headers": [ + { + "_fromType": "array", + "name": "accept", + "value": "application/json" + } + ], + "headersSize": 558, + "httpVersion": "HTTP/1.1", + "method": "GET", + "queryString": [], + "url": "https://api.datadoghq.com/api/v2/team-hierarchy-links/5401e712-de1b-4deb-ac35-2c6ee1943ad0" + }, + "response": { + "bodySize": 1003, + "content": { + "mimeType": "application/vnd.api+json", + "size": 1003, + "text": "{\"data\":{\"id\":\"5401e712-de1b-4deb-ac35-2c6ee1943ad0\",\"type\":\"team_hierarchy_links\",\"attributes\":{\"created_at\":\"2025-11-24T17:07:10.643799Z\",\"provisioned_by\":\"\"},\"relationships\":{\"parent_team\":{\"data\":{\"id\":\"fafeac94-42b4-4469-91e8-0ae5ca3f564b\",\"type\":\"team\"}},\"sub_team\":{\"data\":{\"id\":\"196bcc55-bd30-4cfd-8549-b3d255a0517b\",\"type\":\"team\"}}}},\"links\":{\"self\":\"https://api.datadoghq.com/api/v2/team-hierarchy-links/5401e712-de1b-4deb-ac35-2c6ee1943ad0\"},\"included\":[{\"id\":\"196bcc55-bd30-4cfd-8549-b3d255a0517b\",\"type\":\"team\",\"attributes\":{\"avatar\":null,\"banner\":4,\"handle\":\"test-handle-2-ae3e76a23be3747a\",\"is_managed\":false,\"is_open_membership\":true,\"link_count\":0,\"name\":\"test-name-2-ae3e76a23be3747a\",\"summary\":null,\"user_count\":0}},{\"id\":\"fafeac94-42b4-4469-91e8-0ae5ca3f564b\",\"type\":\"team\",\"attributes\":{\"avatar\":null,\"banner\":11,\"handle\":\"test-handle-ae3e76a23be3747a\",\"is_managed\":false,\"is_open_membership\":true,\"link_count\":0,\"name\":\"test-name-ae3e76a23be3747a\",\"summary\":null,\"user_count\":0}}]}" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/vnd.api+json" + } + ], + "headersSize": 678, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2025-11-24T17:07:10.581Z", + "time": 477 + }, + { + "_id": "8056212d8b1da7f540ee5746517e097a", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 0, + "cookies": [], + "headers": [ + { + "_fromType": "array", + "name": "accept", + "value": "*/*" + } + ], + "headersSize": 551, + "httpVersion": "HTTP/1.1", + "method": "DELETE", + "queryString": [], + "url": "https://api.datadoghq.com/api/v2/team-hierarchy-links/5401e712-de1b-4deb-ac35-2c6ee1943ad0" + }, + "response": { + "bodySize": 0, + "content": { + "mimeType": "text/plain", + "size": 0 + }, + "cookies": [], + "headers": [], + "headersSize": 616, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 204, + "statusText": "No Content" + }, + "startedDateTime": "2025-11-24T17:07:11.073Z", + "time": 507 + }, + { + "_id": "586f38aaff9d0a61809935af45195b9e", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 0, + "cookies": [], + "headers": [ + { + "_fromType": "array", + "name": "accept", + "value": "*/*" + } + ], + "headersSize": 522, + "httpVersion": "HTTP/1.1", + "method": "DELETE", + "queryString": [], + "url": "https://api.datadoghq.com/api/v2/team/196bcc55-bd30-4cfd-8549-b3d255a0517b" + }, + "response": { + "bodySize": 0, + "content": { + "mimeType": "text/plain", + "size": 0 + }, + "cookies": [], + "headers": [], + "headersSize": 632, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 204, + "statusText": "No Content" + }, + "startedDateTime": "2025-11-24T17:07:11.587Z", + "time": 569 + }, + { + "_id": "a8a73b2a08cee2eb7d4e7aaa724beafc", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 0, + "cookies": [], + "headers": [ + { + "_fromType": "array", + "name": "accept", + "value": "*/*" + } + ], + "headersSize": 522, + "httpVersion": "HTTP/1.1", + "method": "DELETE", + "queryString": [], + "url": "https://api.datadoghq.com/api/v2/team/fafeac94-42b4-4469-91e8-0ae5ca3f564b" + }, + "response": { + "bodySize": 0, + "content": { + "mimeType": "text/plain", + "size": 0 + }, + "cookies": [], + "headers": [], + "headersSize": 632, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 204, + "statusText": "No Content" + }, + "startedDateTime": "2025-11-24T17:07:12.161Z", + "time": 565 + } + ], + "pages": [], + "version": "1.2" + } +} diff --git a/cassettes/v2/Teams_3116892301/Get-team-hierarchy-links-returns-OK-response_543093888/frozen.json b/cassettes/v2/Teams_3116892301/Get-team-hierarchy-links-returns-OK-response_543093888/frozen.json new file mode 100644 index 000000000000..2353e83e8576 --- /dev/null +++ b/cassettes/v2/Teams_3116892301/Get-team-hierarchy-links-returns-OK-response_543093888/frozen.json @@ -0,0 +1 @@ +"2025-11-24T17:18:13.180Z" diff --git a/cassettes/v2/Teams_3116892301/Get-team-hierarchy-links-returns-OK-response_543093888/recording.har b/cassettes/v2/Teams_3116892301/Get-team-hierarchy-links-returns-OK-response_543093888/recording.har new file mode 100644 index 000000000000..e0635140fff8 --- /dev/null +++ b/cassettes/v2/Teams_3116892301/Get-team-hierarchy-links-returns-OK-response_543093888/recording.har @@ -0,0 +1,342 @@ +{ + "log": { + "_recordingName": "Teams/Get team hierarchy links returns \"OK\" response", + "creator": { + "comment": "persister:fs", + "name": "Polly.JS", + "version": "6.0.5" + }, + "entries": [ + { + "_id": "093aa88f7ea946d82113cff45a47e3d2", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 115, + "cookies": [], + "headers": [ + { + "_fromType": "array", + "name": "accept", + "value": "application/json" + }, + { + "_fromType": "array", + "name": "content-type", + "value": "application/json" + } + ], + "headersSize": 549, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"data\":{\"attributes\":{\"handle\":\"test-handle-ab0ee85594ae1dfd\",\"name\":\"test-name-ab0ee85594ae1dfd\"},\"type\":\"team\"}}" + }, + "queryString": [], + "url": "https://api.datadoghq.com/api/v2/team" + }, + "response": { + "bodySize": 660, + "content": { + "mimeType": "application/vnd.api+json", + "size": 660, + "text": "{\"data\":{\"id\":\"d1baf3de-7316-43b5-8582-dc887acc26ef\",\"type\":\"team\",\"attributes\":{\"avatar\":null,\"banner\":6,\"created_at\":\"2025-11-24T17:18:13.814865+00:00\",\"description\":null,\"handle\":\"test-handle-ab0ee85594ae1dfd\",\"hidden_modules\":null,\"is_managed\":false,\"link_count\":0,\"modified_at\":\"2025-11-24T17:18:13.814865+00:00\",\"name\":\"test-name-ab0ee85594ae1dfd\",\"summary\":null,\"user_count\":0,\"visible_modules\":null},\"relationships\":{\"team_links\":{\"data\":[],\"links\":{\"related\":\"/api/v2/team/d1baf3de-7316-43b5-8582-dc887acc26ef/links\"}},\"user_team_permissions\":{\"data\":null,\"links\":{\"related\":\"/api/v2/team/d1baf3de-7316-43b5-8582-dc887acc26ef/permission-settings\"}}}}}" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/vnd.api+json" + } + ], + "headersSize": 700, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 201, + "statusText": "Created" + }, + "startedDateTime": "2025-11-24T17:18:13.183Z", + "time": 589 + }, + { + "_id": "cf77824c0d3e3bdc25a932a44f937627", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 119, + "cookies": [], + "headers": [ + { + "_fromType": "array", + "name": "accept", + "value": "application/json" + }, + { + "_fromType": "array", + "name": "content-type", + "value": "application/json" + } + ], + "headersSize": 549, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"data\":{\"attributes\":{\"handle\":\"test-handle-2-ab0ee85594ae1dfd\",\"name\":\"test-name-2-ab0ee85594ae1dfd\"},\"type\":\"team\"}}" + }, + "queryString": [], + "url": "https://api.datadoghq.com/api/v2/team" + }, + "response": { + "bodySize": 665, + "content": { + "mimeType": "application/vnd.api+json", + "size": 665, + "text": "{\"data\":{\"id\":\"61b0ab36-c1e5-47fd-898a-ba9bfc860e9d\",\"type\":\"team\",\"attributes\":{\"avatar\":null,\"banner\":13,\"created_at\":\"2025-11-24T17:18:14.383042+00:00\",\"description\":null,\"handle\":\"test-handle-2-ab0ee85594ae1dfd\",\"hidden_modules\":null,\"is_managed\":false,\"link_count\":0,\"modified_at\":\"2025-11-24T17:18:14.383042+00:00\",\"name\":\"test-name-2-ab0ee85594ae1dfd\",\"summary\":null,\"user_count\":0,\"visible_modules\":null},\"relationships\":{\"team_links\":{\"data\":[],\"links\":{\"related\":\"/api/v2/team/61b0ab36-c1e5-47fd-898a-ba9bfc860e9d/links\"}},\"user_team_permissions\":{\"data\":null,\"links\":{\"related\":\"/api/v2/team/61b0ab36-c1e5-47fd-898a-ba9bfc860e9d/permission-settings\"}}}}}" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/vnd.api+json" + } + ], + "headersSize": 700, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 201, + "statusText": "Created" + }, + "startedDateTime": "2025-11-24T17:18:13.784Z", + "time": 544 + }, + { + "_id": "438095ffe9ea20dca6026521b23a66ff", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 221, + "cookies": [], + "headers": [ + { + "_fromType": "array", + "name": "accept", + "value": "application/json" + }, + { + "_fromType": "array", + "name": "content-type", + "value": "application/json" + } + ], + "headersSize": 575, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"data\":{\"relationships\":{\"parent_team\":{\"data\":{\"id\":\"d1baf3de-7316-43b5-8582-dc887acc26ef\",\"type\":\"team\"}},\"sub_team\":{\"data\":{\"id\":\"61b0ab36-c1e5-47fd-898a-ba9bfc860e9d\",\"type\":\"team\"}}},\"type\":\"team_hierarchy_links\"}}" + }, + "queryString": [], + "url": "https://api.datadoghq.com/api/v2/team-hierarchy-links" + }, + "response": { + "bodySize": 898, + "content": { + "mimeType": "application/vnd.api+json", + "size": 898, + "text": "{\"data\":{\"id\":\"61509612-5bb0-42c5-a16e-bf4920acf473\",\"type\":\"team_hierarchy_links\",\"attributes\":{\"created_at\":\"2025-11-24T17:18:14.635205462Z\",\"provisioned_by\":\"\"},\"relationships\":{\"parent_team\":{\"data\":{\"id\":\"d1baf3de-7316-43b5-8582-dc887acc26ef\",\"type\":\"team\"}},\"sub_team\":{\"data\":{\"id\":\"61b0ab36-c1e5-47fd-898a-ba9bfc860e9d\",\"type\":\"team\"}}}},\"included\":[{\"id\":\"d1baf3de-7316-43b5-8582-dc887acc26ef\",\"type\":\"team\",\"attributes\":{\"avatar\":null,\"banner\":6,\"handle\":\"test-handle-ab0ee85594ae1dfd\",\"is_managed\":false,\"is_open_membership\":false,\"link_count\":0,\"name\":\"test-name-ab0ee85594ae1dfd\",\"summary\":null,\"user_count\":0}},{\"id\":\"61b0ab36-c1e5-47fd-898a-ba9bfc860e9d\",\"type\":\"team\",\"attributes\":{\"avatar\":null,\"banner\":13,\"handle\":\"test-handle-2-ab0ee85594ae1dfd\",\"is_managed\":false,\"is_open_membership\":false,\"link_count\":0,\"name\":\"test-name-2-ab0ee85594ae1dfd\",\"summary\":null,\"user_count\":0}}]}" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/vnd.api+json" + } + ], + "headersSize": 677, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2025-11-24T17:18:14.335Z", + "time": 213 + }, + { + "_id": "30a85d94f55cf421b4cd9237fe54b4b4", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 0, + "cookies": [], + "headers": [ + { + "_fromType": "array", + "name": "accept", + "value": "application/json" + } + ], + "headersSize": 679, + "httpVersion": "HTTP/1.1", + "method": "GET", + "queryString": [ + { + "name": "filter", + "value": { + "parent_team": "d1baf3de-7316-43b5-8582-dc887acc26ef", + "sub_team": "61b0ab36-c1e5-47fd-898a-ba9bfc860e9d" + } + }, + { + "name": "page", + "value": { + "number": "0", + "size": "100" + } + } + ], + "url": "https://api.datadoghq.com/api/v2/team-hierarchy-links?filter%5Bparent_team%5D=d1baf3de-7316-43b5-8582-dc887acc26ef&filter%5Bsub_team%5D=61b0ab36-c1e5-47fd-898a-ba9bfc860e9d&page%5Bnumber%5D=0&page%5Bsize%5D=100" + }, + "response": { + "bodySize": 1721, + "content": { + "mimeType": "application/vnd.api+json", + "size": 1721, + "text": "{\"data\":[{\"id\":\"61509612-5bb0-42c5-a16e-bf4920acf473\",\"type\":\"team_hierarchy_links\",\"attributes\":{\"created_at\":\"2025-11-24T17:18:14.635205Z\",\"provisioned_by\":\"\"},\"relationships\":{\"parent_team\":{\"data\":{\"id\":\"d1baf3de-7316-43b5-8582-dc887acc26ef\",\"type\":\"team\"}},\"sub_team\":{\"data\":{\"id\":\"61b0ab36-c1e5-47fd-898a-ba9bfc860e9d\",\"type\":\"team\"}}}}],\"meta\":{\"page\":{\"type\":\"number_size\",\"number\":0,\"size\":100,\"total\":1,\"first_number\":0,\"prev_number\":null,\"next_number\":null,\"last_number\":0}},\"links\":{\"self\":\"https://api.datadoghq.com/api/v2/team-hierarchy-links?filter%5Bparent_team%5D=d1baf3de-7316-43b5-8582-dc887acc26ef\\u0026filter%5Bsub_team%5D=61b0ab36-c1e5-47fd-898a-ba9bfc860e9d\\u0026page%5Bnumber%5D=0\\u0026page%5Bsize%5D=100\",\"first\":\"https://api.datadoghq.com/api/v2/team-hierarchy-links?filter[parent_team]=d1baf3de-7316-43b5-8582-dc887acc26ef\\u0026filter[sub_team]=61b0ab36-c1e5-47fd-898a-ba9bfc860e9d\\u0026page[number]=0\\u0026page[size]=100\",\"last\":\"https://api.datadoghq.com/api/v2/team-hierarchy-links?filter[parent_team]=d1baf3de-7316-43b5-8582-dc887acc26ef\\u0026filter[sub_team]=61b0ab36-c1e5-47fd-898a-ba9bfc860e9d\\u0026page[number]=0\\u0026page[size]=100\"},\"included\":[{\"id\":\"61b0ab36-c1e5-47fd-898a-ba9bfc860e9d\",\"type\":\"team\",\"attributes\":{\"avatar\":null,\"banner\":13,\"handle\":\"test-handle-2-ab0ee85594ae1dfd\",\"is_managed\":false,\"is_open_membership\":true,\"link_count\":0,\"name\":\"test-name-2-ab0ee85594ae1dfd\",\"summary\":null,\"user_count\":0}},{\"id\":\"d1baf3de-7316-43b5-8582-dc887acc26ef\",\"type\":\"team\",\"attributes\":{\"avatar\":null,\"banner\":6,\"handle\":\"test-handle-ab0ee85594ae1dfd\",\"is_managed\":false,\"is_open_membership\":true,\"link_count\":0,\"name\":\"test-name-ab0ee85594ae1dfd\",\"summary\":null,\"user_count\":0}}]}" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/vnd.api+json" + } + ], + "headersSize": 678, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2025-11-24T17:18:14.565Z", + "time": 475 + }, + { + "_id": "6328f8cc535edc2883dca930b551cd1b", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 0, + "cookies": [], + "headers": [ + { + "_fromType": "array", + "name": "accept", + "value": "*/*" + } + ], + "headersSize": 551, + "httpVersion": "HTTP/1.1", + "method": "DELETE", + "queryString": [], + "url": "https://api.datadoghq.com/api/v2/team-hierarchy-links/61509612-5bb0-42c5-a16e-bf4920acf473" + }, + "response": { + "bodySize": 0, + "content": { + "mimeType": "text/plain", + "size": 0 + }, + "cookies": [], + "headers": [], + "headersSize": 616, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 204, + "statusText": "No Content" + }, + "startedDateTime": "2025-11-24T17:18:15.059Z", + "time": 517 + }, + { + "_id": "55c11b3fb0bd6d61e5cbf13a96303649", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 0, + "cookies": [], + "headers": [ + { + "_fromType": "array", + "name": "accept", + "value": "*/*" + } + ], + "headersSize": 522, + "httpVersion": "HTTP/1.1", + "method": "DELETE", + "queryString": [], + "url": "https://api.datadoghq.com/api/v2/team/61b0ab36-c1e5-47fd-898a-ba9bfc860e9d" + }, + "response": { + "bodySize": 0, + "content": { + "mimeType": "text/plain", + "size": 0 + }, + "cookies": [], + "headers": [], + "headersSize": 632, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 204, + "statusText": "No Content" + }, + "startedDateTime": "2025-11-24T17:18:15.581Z", + "time": 579 + }, + { + "_id": "23b646bc99d28db47fbb7c5ccbc4ee00", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 0, + "cookies": [], + "headers": [ + { + "_fromType": "array", + "name": "accept", + "value": "*/*" + } + ], + "headersSize": 522, + "httpVersion": "HTTP/1.1", + "method": "DELETE", + "queryString": [], + "url": "https://api.datadoghq.com/api/v2/team/d1baf3de-7316-43b5-8582-dc887acc26ef" + }, + "response": { + "bodySize": 0, + "content": { + "mimeType": "text/plain", + "size": 0 + }, + "cookies": [], + "headers": [], + "headersSize": 632, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 204, + "statusText": "No Content" + }, + "startedDateTime": "2025-11-24T17:18:16.166Z", + "time": 629 + } + ], + "pages": [], + "version": "1.2" + } +} diff --git a/cassettes/v2/Teams_3116892301/Remove-a-team-hierarchy-link-returns-API-error-response-response_1350392815/frozen.json b/cassettes/v2/Teams_3116892301/Remove-a-team-hierarchy-link-returns-API-error-response-response_1350392815/frozen.json new file mode 100644 index 000000000000..d55b872755c7 --- /dev/null +++ b/cassettes/v2/Teams_3116892301/Remove-a-team-hierarchy-link-returns-API-error-response-response_1350392815/frozen.json @@ -0,0 +1 @@ +"2025-11-24T13:14:20.481Z" diff --git a/cassettes/v2/Teams_3116892301/Remove-a-team-hierarchy-link-returns-API-error-response-response_1350392815/recording.har b/cassettes/v2/Teams_3116892301/Remove-a-team-hierarchy-link-returns-API-error-response-response_1350392815/recording.har new file mode 100644 index 000000000000..92427efdf9a7 --- /dev/null +++ b/cassettes/v2/Teams_3116892301/Remove-a-team-hierarchy-link-returns-API-error-response-response_1350392815/recording.har @@ -0,0 +1,57 @@ +{ + "log": { + "_recordingName": "Teams/Remove a team hierarchy link returns \"API error response.\" response", + "creator": { + "comment": "persister:fs", + "name": "Polly.JS", + "version": "6.0.5" + }, + "entries": [ + { + "_id": "360527a7cd17c12c763c534ca0bf2e10", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 0, + "cookies": [], + "headers": [ + { + "_fromType": "array", + "name": "accept", + "value": "*/*" + } + ], + "headersSize": 549, + "httpVersion": "HTTP/1.1", + "method": "DELETE", + "queryString": [], + "url": "https://api.datadoghq.com/api/v2/team-hierarchy-links/aaa11111-aa11-aa11-aaaa-aaaaaa111111" + }, + "response": { + "bodySize": 85, + "content": { + "mimeType": "application/vnd.api+json", + "size": 85, + "text": "{\"errors\":[\"Not Found: link with id aaa11111-aa11-aa11-aaaa-aaaaaa111111 not found\"]}" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/vnd.api+json" + } + ], + "headersSize": 676, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 404, + "statusText": "Not Found" + }, + "startedDateTime": "2025-11-24T13:14:20.484Z", + "time": 465 + } + ], + "pages": [], + "version": "1.2" + } +} diff --git a/cassettes/v2/Teams_3116892301/Remove-a-team-hierarchy-link-returns-No-Content-response_2718623318/frozen.json b/cassettes/v2/Teams_3116892301/Remove-a-team-hierarchy-link-returns-No-Content-response_2718623318/frozen.json new file mode 100644 index 000000000000..b4576f3f55c7 --- /dev/null +++ b/cassettes/v2/Teams_3116892301/Remove-a-team-hierarchy-link-returns-No-Content-response_2718623318/frozen.json @@ -0,0 +1 @@ +"2025-11-24T17:08:01.196Z" diff --git a/cassettes/v2/Teams_3116892301/Remove-a-team-hierarchy-link-returns-No-Content-response_2718623318/recording.har b/cassettes/v2/Teams_3116892301/Remove-a-team-hierarchy-link-returns-No-Content-response_2718623318/recording.har new file mode 100644 index 000000000000..0e59de2736a6 --- /dev/null +++ b/cassettes/v2/Teams_3116892301/Remove-a-team-hierarchy-link-returns-No-Content-response_2718623318/recording.har @@ -0,0 +1,327 @@ +{ + "log": { + "_recordingName": "Teams/Remove a team hierarchy link returns \"No Content\" response", + "creator": { + "comment": "persister:fs", + "name": "Polly.JS", + "version": "6.0.5" + }, + "entries": [ + { + "_id": "83a592d3fc057f6c22256a804b6cb3fd", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 115, + "cookies": [], + "headers": [ + { + "_fromType": "array", + "name": "accept", + "value": "application/json" + }, + { + "_fromType": "array", + "name": "content-type", + "value": "application/json" + } + ], + "headersSize": 549, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"data\":{\"attributes\":{\"handle\":\"test-handle-db31819631324305\",\"name\":\"test-name-db31819631324305\"},\"type\":\"team\"}}" + }, + "queryString": [], + "url": "https://api.datadoghq.com/api/v2/team" + }, + "response": { + "bodySize": 661, + "content": { + "mimeType": "application/vnd.api+json", + "size": 661, + "text": "{\"data\":{\"id\":\"eaf01981-6b63-41ba-b49f-30449c50e865\",\"type\":\"team\",\"attributes\":{\"avatar\":null,\"banner\":10,\"created_at\":\"2025-11-24T17:08:01.930314+00:00\",\"description\":null,\"handle\":\"test-handle-db31819631324305\",\"hidden_modules\":null,\"is_managed\":false,\"link_count\":0,\"modified_at\":\"2025-11-24T17:08:01.930314+00:00\",\"name\":\"test-name-db31819631324305\",\"summary\":null,\"user_count\":0,\"visible_modules\":null},\"relationships\":{\"team_links\":{\"data\":[],\"links\":{\"related\":\"/api/v2/team/eaf01981-6b63-41ba-b49f-30449c50e865/links\"}},\"user_team_permissions\":{\"data\":null,\"links\":{\"related\":\"/api/v2/team/eaf01981-6b63-41ba-b49f-30449c50e865/permission-settings\"}}}}}" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/vnd.api+json" + } + ], + "headersSize": 700, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 201, + "statusText": "Created" + }, + "startedDateTime": "2025-11-24T17:08:01.200Z", + "time": 697 + }, + { + "_id": "60fd20726a365270a7ac420092d128f7", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 119, + "cookies": [], + "headers": [ + { + "_fromType": "array", + "name": "accept", + "value": "application/json" + }, + { + "_fromType": "array", + "name": "content-type", + "value": "application/json" + } + ], + "headersSize": 549, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"data\":{\"attributes\":{\"handle\":\"test-handle-2-db31819631324305\",\"name\":\"test-name-2-db31819631324305\"},\"type\":\"team\"}}" + }, + "queryString": [], + "url": "https://api.datadoghq.com/api/v2/team" + }, + "response": { + "bodySize": 664, + "content": { + "mimeType": "application/vnd.api+json", + "size": 664, + "text": "{\"data\":{\"id\":\"120aeb27-ca42-4e38-a9e4-6497b8f9407c\",\"type\":\"team\",\"attributes\":{\"avatar\":null,\"banner\":6,\"created_at\":\"2025-11-24T17:08:02.174211+00:00\",\"description\":null,\"handle\":\"test-handle-2-db31819631324305\",\"hidden_modules\":null,\"is_managed\":false,\"link_count\":0,\"modified_at\":\"2025-11-24T17:08:02.174211+00:00\",\"name\":\"test-name-2-db31819631324305\",\"summary\":null,\"user_count\":0,\"visible_modules\":null},\"relationships\":{\"team_links\":{\"data\":[],\"links\":{\"related\":\"/api/v2/team/120aeb27-ca42-4e38-a9e4-6497b8f9407c/links\"}},\"user_team_permissions\":{\"data\":null,\"links\":{\"related\":\"/api/v2/team/120aeb27-ca42-4e38-a9e4-6497b8f9407c/permission-settings\"}}}}}" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/vnd.api+json" + } + ], + "headersSize": 700, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 201, + "statusText": "Created" + }, + "startedDateTime": "2025-11-24T17:08:01.909Z", + "time": 223 + }, + { + "_id": "1ed15f6e36fee51effaa3009d34464e7", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 221, + "cookies": [], + "headers": [ + { + "_fromType": "array", + "name": "accept", + "value": "application/json" + }, + { + "_fromType": "array", + "name": "content-type", + "value": "application/json" + } + ], + "headersSize": 575, + "httpVersion": "HTTP/1.1", + "method": "POST", + "postData": { + "mimeType": "application/json", + "params": [], + "text": "{\"data\":{\"relationships\":{\"parent_team\":{\"data\":{\"id\":\"eaf01981-6b63-41ba-b49f-30449c50e865\",\"type\":\"team\"}},\"sub_team\":{\"data\":{\"id\":\"120aeb27-ca42-4e38-a9e4-6497b8f9407c\",\"type\":\"team\"}}},\"type\":\"team_hierarchy_links\"}}" + }, + "queryString": [], + "url": "https://api.datadoghq.com/api/v2/team-hierarchy-links" + }, + "response": { + "bodySize": 898, + "content": { + "mimeType": "application/vnd.api+json", + "size": 898, + "text": "{\"data\":{\"id\":\"185446b8-1e88-419c-b266-3933f1411b6e\",\"type\":\"team_hierarchy_links\",\"attributes\":{\"created_at\":\"2025-11-24T17:08:02.736655421Z\",\"provisioned_by\":\"\"},\"relationships\":{\"parent_team\":{\"data\":{\"id\":\"eaf01981-6b63-41ba-b49f-30449c50e865\",\"type\":\"team\"}},\"sub_team\":{\"data\":{\"id\":\"120aeb27-ca42-4e38-a9e4-6497b8f9407c\",\"type\":\"team\"}}}},\"included\":[{\"id\":\"eaf01981-6b63-41ba-b49f-30449c50e865\",\"type\":\"team\",\"attributes\":{\"avatar\":null,\"banner\":10,\"handle\":\"test-handle-db31819631324305\",\"is_managed\":false,\"is_open_membership\":false,\"link_count\":0,\"name\":\"test-name-db31819631324305\",\"summary\":null,\"user_count\":0}},{\"id\":\"120aeb27-ca42-4e38-a9e4-6497b8f9407c\",\"type\":\"team\",\"attributes\":{\"avatar\":null,\"banner\":6,\"handle\":\"test-handle-2-db31819631324305\",\"is_managed\":false,\"is_open_membership\":false,\"link_count\":0,\"name\":\"test-name-2-db31819631324305\",\"summary\":null,\"user_count\":0}}]}" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/vnd.api+json" + } + ], + "headersSize": 677, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 200, + "statusText": "OK" + }, + "startedDateTime": "2025-11-24T17:08:02.142Z", + "time": 519 + }, + { + "_id": "954ab98a3b9c8c13b2fac9692349b4a9", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 0, + "cookies": [], + "headers": [ + { + "_fromType": "array", + "name": "accept", + "value": "*/*" + } + ], + "headersSize": 551, + "httpVersion": "HTTP/1.1", + "method": "DELETE", + "queryString": [], + "url": "https://api.datadoghq.com/api/v2/team-hierarchy-links/185446b8-1e88-419c-b266-3933f1411b6e" + }, + "response": { + "bodySize": 0, + "content": { + "mimeType": "text/plain", + "size": 0 + }, + "cookies": [], + "headers": [], + "headersSize": 616, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 204, + "statusText": "No Content" + }, + "startedDateTime": "2025-11-24T17:08:02.672Z", + "time": 501 + }, + { + "_id": "954ab98a3b9c8c13b2fac9692349b4a9", + "_order": 1, + "cache": {}, + "request": { + "bodySize": 0, + "cookies": [], + "headers": [ + { + "_fromType": "array", + "name": "accept", + "value": "*/*" + } + ], + "headersSize": 551, + "httpVersion": "HTTP/1.1", + "method": "DELETE", + "queryString": [], + "url": "https://api.datadoghq.com/api/v2/team-hierarchy-links/185446b8-1e88-419c-b266-3933f1411b6e" + }, + "response": { + "bodySize": 85, + "content": { + "mimeType": "application/vnd.api+json", + "size": 85, + "text": "{\"errors\":[\"Not Found: link with id 185446b8-1e88-419c-b266-3933f1411b6e not found\"]}" + }, + "cookies": [], + "headers": [ + { + "name": "content-type", + "value": "application/vnd.api+json" + } + ], + "headersSize": 676, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 404, + "statusText": "Not Found" + }, + "startedDateTime": "2025-11-24T17:08:03.184Z", + "time": 445 + }, + { + "_id": "eab70343b6b467c98bcc3a1ac13f5c75", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 0, + "cookies": [], + "headers": [ + { + "_fromType": "array", + "name": "accept", + "value": "*/*" + } + ], + "headersSize": 522, + "httpVersion": "HTTP/1.1", + "method": "DELETE", + "queryString": [], + "url": "https://api.datadoghq.com/api/v2/team/120aeb27-ca42-4e38-a9e4-6497b8f9407c" + }, + "response": { + "bodySize": 0, + "content": { + "mimeType": "text/plain", + "size": 0 + }, + "cookies": [], + "headers": [], + "headersSize": 632, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 204, + "statusText": "No Content" + }, + "startedDateTime": "2025-11-24T17:08:03.637Z", + "time": 594 + }, + { + "_id": "d01fd700c1e5677d403273e8d5805ab6", + "_order": 0, + "cache": {}, + "request": { + "bodySize": 0, + "cookies": [], + "headers": [ + { + "_fromType": "array", + "name": "accept", + "value": "*/*" + } + ], + "headersSize": 522, + "httpVersion": "HTTP/1.1", + "method": "DELETE", + "queryString": [], + "url": "https://api.datadoghq.com/api/v2/team/eaf01981-6b63-41ba-b49f-30449c50e865" + }, + "response": { + "bodySize": 0, + "content": { + "mimeType": "text/plain", + "size": 0 + }, + "cookies": [], + "headers": [], + "headersSize": 632, + "httpVersion": "HTTP/1.1", + "redirectURL": "", + "status": 204, + "statusText": "No Content" + }, + "startedDateTime": "2025-11-24T17:08:04.241Z", + "time": 563 + } + ], + "pages": [], + "version": "1.2" + } +} diff --git a/features/v2/given.json b/features/v2/given.json index 198c7af1b51d..64b50d8057c8 100644 --- a/features/v2/given.json +++ b/features/v2/given.json @@ -1169,6 +1169,30 @@ "tag": "Teams", "operationId": "CreateTeam" }, + { + "parameters": [ + { + "name": "body", + "value": "{\n \"data\": {\n \"attributes\": {\n \"handle\": \"test-handle-2-{{ unique_hash }}\",\n \"name\": \"test-name-2-{{ unique_hash }}\"\n },\n \"type\": \"team\"\n }\n}" + } + ], + "step": "there is a valid \"dd_team_2\" in the system", + "key": "dd_team_2", + "tag": "Teams", + "operationId": "CreateTeam" + }, + { + "parameters": [ + { + "name": "body", + "value": "{\n \"data\": {\n \"type\": \"team_hierarchy_links\",\n \"relationships\": {\n \"parent_team\": {\n \"data\": {\n \"id\": \"{{ dd_team.data.id }}\",\n \"type\": \"team\"\n }\n },\n \"sub_team\": {\n \"data\": {\n \"id\": \"{{ dd_team_2.data.id }}\",\n \"type\": \"team\"\n }\n }\n }\n }\n}" + } + ], + "step": "there is a valid \"team_hierarchy_link\" in the system", + "key": "team_hierarchy_link", + "tag": "Teams", + "operationId": "AddTeamHierarchyLink" + }, { "source": "data.data[0]", "step": "there is a valid \"team_connection\" in the system", diff --git a/features/v2/teams.feature b/features/v2/teams.feature index bf11bd0316d6..faa1ca0889d5 100644 --- a/features/v2/teams.feature +++ b/features/v2/teams.feature @@ -43,6 +43,25 @@ Feature: Teams When the request is sent Then the response status is 200 Represents a user's association to a team + @team:DataDog/aaa-omg + Scenario: Create a team hierarchy link returns "Conflict" response + Given new "AddTeamHierarchyLink" request + And there is a valid "dd_team" in the system + And there is a valid "dd_team_2" in the system + And there is a valid "team_hierarchy_link" in the system + And body with value {"data": {"relationships": {"parent_team": {"data": {"id": "{{team_hierarchy_link.data.relationships.parent_team.data.id}}", "type": "team"}}, "sub_team": {"data": {"id": "{{team_hierarchy_link.data.relationships.sub_team.data.id}}", "type": "team"}}}, "type": "team_hierarchy_links"}} + When the request is sent + Then the response status is 409 Conflict + + @team:DataDog/aaa-omg + Scenario: Create a team hierarchy link returns "OK" response + Given new "AddTeamHierarchyLink" request + And there is a valid "dd_team" in the system + And there is a valid "dd_team_2" in the system + And body with value {"data": {"relationships": {"parent_team": {"data": {"id": "{{dd_team.data.id}}", "type": "team"}}, "sub_team": {"data": {"id": "{{dd_team_2.data.id}}", "type": "team"}}}, "type": "team_hierarchy_links"}} + When the request is sent + Then the response status is 200 OK + @team:DataDog/aaa-omg Scenario: Create a team link returns "API error response." response Given new "CreateTeamLink" request @@ -96,6 +115,28 @@ Feature: Teams And the response "data.attributes.visible_modules" is equal to ["m1","m2"] And the response "data.attributes.hidden_modules" is equal to ["m3"] + @team:DataDog/aaa-omg + Scenario: Get a team hierarchy link returns "API error response." response + Given new "GetTeamHierarchyLink" request + And request contains "link_id" parameter with value "aaa11111-aa11-aa11-aaaa-aaaaaa111111" + When the request is sent + Then the response status is 404 API error response. + + @team:DataDog/aaa-omg + Scenario: Get a team hierarchy link returns "OK" response + Given new "GetTeamHierarchyLink" request + And there is a valid "dd_team" in the system + And there is a valid "dd_team_2" in the system + And there is a valid "team_hierarchy_link" in the system + And request contains "link_id" parameter from "team_hierarchy_link.data.id" + When the request is sent + Then the response status is 200 OK + And the response "data.id" is equal to "{{ team_hierarchy_link.data.id }}" + And the response "data.relationships.parent_team.data.id" is equal to "{{ dd_team.data.id }}" + And the response "data.relationships.sub_team.data.id" is equal to "{{ dd_team_2.data.id }}" + And the response "included" has item with field "id" with value "{{ dd_team.data.id }}" + And the response "included" has item with field "id" with value "{{ dd_team_2.data.id }}" + @team:DataDog/aaa-omg Scenario: Get a team link returns "API error response." response Given new "GetTeamLink" request @@ -211,6 +252,31 @@ Feature: Teams When the request is sent Then the response status is 200 OK + @team:DataDog/aaa-omg + Scenario: Get team hierarchy links returns "OK" response + Given new "ListTeamHierarchyLinks" request + And there is a valid "dd_team" in the system + And there is a valid "dd_team_2" in the system + And there is a valid "team_hierarchy_link" in the system + And request contains "filter[parent_team]" parameter from "team_hierarchy_link.data.relationships.parent_team.data.id" + And request contains "filter[sub_team]" parameter from "team_hierarchy_link.data.relationships.sub_team.data.id" + And request contains "page[number]" parameter with value 0 + And request contains "page[size]" parameter with value 100 + When the request is sent + Then the response status is 200 OK + And the response "data" has length 1 + And the response "data[0].id" is equal to "{{ team_hierarchy_link.data.id }}" + And the response "data[0].relationships.parent_team.data.id" is equal to "{{ dd_team.data.id }}" + And the response "data[0].relationships.sub_team.data.id" is equal to "{{ dd_team_2.data.id }}" + And the response "included" has item with field "id" with value "{{ dd_team.data.id }}" + And the response "included" has item with field "id" with value "{{ dd_team_2.data.id }}" + + @generated @skip @team:DataDog/aaa-omg @with-pagination + Scenario: Get team hierarchy links returns "OK" response with pagination + Given new "ListTeamHierarchyLinks" request + When the request with pagination is sent + Then the response status is 200 OK + @team:DataDog/aaa-omg Scenario: Get team memberships returns "API error response." response Given new "GetTeamMemberships" request @@ -293,6 +359,23 @@ Feature: Teams When the request is sent Then the response status is 204 No Content + @team:DataDog/aaa-omg + Scenario: Remove a team hierarchy link returns "API error response." response + Given new "RemoveTeamHierarchyLink" request + And request contains "link_id" parameter with value "aaa11111-aa11-aa11-aaaa-aaaaaa111111" + When the request is sent + Then the response status is 404 API error response. + + @team:DataDog/aaa-omg + Scenario: Remove a team hierarchy link returns "No Content" response + Given new "RemoveTeamHierarchyLink" request + And there is a valid "dd_team" in the system + And there is a valid "dd_team_2" in the system + And there is a valid "team_hierarchy_link" in the system + And request contains "link_id" parameter from "team_hierarchy_link.data.id" + When the request is sent + Then the response status is 204 No Content + @team:DataDog/aaa-omg Scenario: Remove a team link returns "API error response." response Given new "DeleteTeamLink" request diff --git a/features/v2/undo.json b/features/v2/undo.json index 3799e64e630d..86540fc397a8 100644 --- a/features/v2/undo.json +++ b/features/v2/undo.json @@ -4345,6 +4345,37 @@ "type": "unsafe" } }, + "ListTeamHierarchyLinks": { + "tag": "Teams", + "undo": { + "type": "safe" + } + }, + "AddTeamHierarchyLink": { + "tag": "Teams", + "undo": { + "operationId": "RemoveTeamHierarchyLink", + "parameters": [ + { + "name": "link_id", + "source": "data.id" + } + ], + "type": "unsafe" + } + }, + "RemoveTeamHierarchyLink": { + "tag": "Teams", + "undo": { + "type": "idempotent" + } + }, + "GetTeamHierarchyLink": { + "tag": "Teams", + "undo": { + "type": "safe" + } + }, "DeleteTeamConnections": { "tag": "Team Connections", "undo": { diff --git a/private/bdd_runner/src/support/scenarios_model_mapping.ts b/private/bdd_runner/src/support/scenarios_model_mapping.ts index a918b3e7a5c9..357898566c62 100644 --- a/private/bdd_runner/src/support/scenarios_model_mapping.ts +++ b/private/bdd_runner/src/support/scenarios_model_mapping.ts @@ -8773,6 +8773,46 @@ export const ScenariosModelMappings: { [key: string]: OperationMapping } = { }, operationResponseType: "TeamResponse", }, + "TeamsApi.V2.ListTeamHierarchyLinks": { + pageNumber: { + type: "number", + format: "int64", + }, + pageSize: { + type: "number", + format: "int64", + }, + filterParentTeam: { + type: "string", + format: "", + }, + filterSubTeam: { + type: "string", + format: "", + }, + operationResponseType: "TeamHierarchyLinksResponse", + }, + "TeamsApi.V2.AddTeamHierarchyLink": { + body: { + type: "TeamHierarchyLinkCreateRequest", + format: "", + }, + operationResponseType: "TeamHierarchyLinkResponse", + }, + "TeamsApi.V2.GetTeamHierarchyLink": { + linkId: { + type: "string", + format: "", + }, + operationResponseType: "TeamHierarchyLinkResponse", + }, + "TeamsApi.V2.RemoveTeamHierarchyLink": { + linkId: { + type: "string", + format: "", + }, + operationResponseType: "{}", + }, "TeamsApi.V2.GetTeamSync": { filterSource: { type: "TeamSyncAttributesSource", diff --git a/services/teams/src/v2/TeamsApi.ts b/services/teams/src/v2/TeamsApi.ts index 05f89c95c9e1..5dce574b179d 100644 --- a/services/teams/src/v2/TeamsApi.ts +++ b/services/teams/src/v2/TeamsApi.ts @@ -29,6 +29,10 @@ import { ListTeamsInclude } from "./models/ListTeamsInclude"; import { ListTeamsSort } from "./models/ListTeamsSort"; import { Team } from "./models/Team"; import { TeamCreateRequest } from "./models/TeamCreateRequest"; +import { TeamHierarchyLink } from "./models/TeamHierarchyLink"; +import { TeamHierarchyLinkCreateRequest } from "./models/TeamHierarchyLinkCreateRequest"; +import { TeamHierarchyLinkResponse } from "./models/TeamHierarchyLinkResponse"; +import { TeamHierarchyLinksResponse } from "./models/TeamHierarchyLinksResponse"; import { TeamLinkCreateRequest } from "./models/TeamLinkCreateRequest"; import { TeamLinkResponse } from "./models/TeamLinkResponse"; import { TeamLinksResponse } from "./models/TeamLinksResponse"; @@ -124,6 +128,57 @@ export class TeamsApiRequestFactory extends BaseAPIRequestFactory { return requestContext; } + public async addTeamHierarchyLink( + body: TeamHierarchyLinkCreateRequest, + _options?: Configuration, + ): Promise { + const _config = _options || this.configuration; + + // verify required parameter 'body' is not null or undefined + if (body === null || body === undefined) { + throw new RequiredError("body", "addTeamHierarchyLink"); + } + + // Path Params + const localVarPath = "/api/v2/team-hierarchy-links"; + + // Make Request Context + const { server, overrides } = _config.getServerAndOverrides( + "TeamsApi.v2.addTeamHierarchyLink", + TeamsApi.operationServers, + ); + const requestContext = server.makeRequestContext( + localVarPath, + HttpMethod.POST, + overrides, + ); + requestContext.setHeaderParam("Accept", "application/json"); + requestContext.setHttpConfig(_config.httpConfig); + + // Set User-Agent + if (this.userAgent) { + requestContext.setHeaderParam("User-Agent", this.userAgent); + } + + // Body Params + const contentType = getPreferredMediaType(["application/json"]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = stringify( + serialize(body, TypingInfo, "TeamHierarchyLinkCreateRequest", ""), + contentType, + ); + requestContext.setBody(serializedBody); + + // Apply auth methods + applySecurityAuthentication(_config, requestContext, [ + "apiKeyAuth", + "appKeyAuth", + "AuthZ", + ]); + + return requestContext; + } + public async createTeam( body: TeamCreateRequest, _options?: Configuration, @@ -485,6 +540,51 @@ export class TeamsApiRequestFactory extends BaseAPIRequestFactory { return requestContext; } + public async getTeamHierarchyLink( + linkId: string, + _options?: Configuration, + ): Promise { + const _config = _options || this.configuration; + + // verify required parameter 'linkId' is not null or undefined + if (linkId === null || linkId === undefined) { + throw new RequiredError("linkId", "getTeamHierarchyLink"); + } + + // Path Params + const localVarPath = "/api/v2/team-hierarchy-links/{link_id}".replace( + "{link_id}", + encodeURIComponent(String(linkId)), + ); + + // Make Request Context + const { server, overrides } = _config.getServerAndOverrides( + "TeamsApi.v2.getTeamHierarchyLink", + TeamsApi.operationServers, + ); + const requestContext = server.makeRequestContext( + localVarPath, + HttpMethod.GET, + overrides, + ); + requestContext.setHeaderParam("Accept", "application/json"); + requestContext.setHttpConfig(_config.httpConfig); + + // Set User-Agent + if (this.userAgent) { + requestContext.setHeaderParam("User-Agent", this.userAgent); + } + + // Apply auth methods + applySecurityAuthentication(_config, requestContext, [ + "apiKeyAuth", + "appKeyAuth", + "AuthZ", + ]); + + return requestContext; + } + public async getTeamLink( teamId: string, linkId: string, @@ -883,6 +983,76 @@ export class TeamsApiRequestFactory extends BaseAPIRequestFactory { return requestContext; } + public async listTeamHierarchyLinks( + pageNumber?: number, + pageSize?: number, + filterParentTeam?: string, + filterSubTeam?: string, + _options?: Configuration, + ): Promise { + const _config = _options || this.configuration; + + // Path Params + const localVarPath = "/api/v2/team-hierarchy-links"; + + // Make Request Context + const { server, overrides } = _config.getServerAndOverrides( + "TeamsApi.v2.listTeamHierarchyLinks", + TeamsApi.operationServers, + ); + const requestContext = server.makeRequestContext( + localVarPath, + HttpMethod.GET, + overrides, + ); + requestContext.setHeaderParam("Accept", "application/json"); + requestContext.setHttpConfig(_config.httpConfig); + + // Set User-Agent + if (this.userAgent) { + requestContext.setHeaderParam("User-Agent", this.userAgent); + } + + // Query Params + if (pageNumber !== undefined) { + requestContext.setQueryParam( + "page[number]", + serialize(pageNumber, TypingInfo, "number", "int64"), + "", + ); + } + if (pageSize !== undefined) { + requestContext.setQueryParam( + "page[size]", + serialize(pageSize, TypingInfo, "number", "int64"), + "", + ); + } + if (filterParentTeam !== undefined) { + requestContext.setQueryParam( + "filter[parent_team]", + serialize(filterParentTeam, TypingInfo, "string", ""), + "", + ); + } + if (filterSubTeam !== undefined) { + requestContext.setQueryParam( + "filter[sub_team]", + serialize(filterSubTeam, TypingInfo, "string", ""), + "", + ); + } + + // Apply auth methods + applySecurityAuthentication(_config, requestContext, [ + "apiKeyAuth", + "appKeyAuth", + "AuthZ", + ]); + + return requestContext; + } + public async listTeams( pageNumber?: number, pageSize?: number, @@ -1034,6 +1204,51 @@ export class TeamsApiRequestFactory extends BaseAPIRequestFactory { return requestContext; } + public async removeTeamHierarchyLink( + linkId: string, + _options?: Configuration, + ): Promise { + const _config = _options || this.configuration; + + // verify required parameter 'linkId' is not null or undefined + if (linkId === null || linkId === undefined) { + throw new RequiredError("linkId", "removeTeamHierarchyLink"); + } + + // Path Params + const localVarPath = "/api/v2/team-hierarchy-links/{link_id}".replace( + "{link_id}", + encodeURIComponent(String(linkId)), + ); + + // Make Request Context + const { server, overrides } = _config.getServerAndOverrides( + "TeamsApi.v2.removeTeamHierarchyLink", + TeamsApi.operationServers, + ); + const requestContext = server.makeRequestContext( + localVarPath, + HttpMethod.DELETE, + overrides, + ); + requestContext.setHeaderParam("Accept", "*/*"); + requestContext.setHttpConfig(_config.httpConfig); + + // Set User-Agent + if (this.userAgent) { + requestContext.setHeaderParam("User-Agent", this.userAgent); + } + + // Apply auth methods + applySecurityAuthentication(_config, requestContext, [ + "apiKeyAuth", + "appKeyAuth", + "AuthZ", + ]); + + return requestContext; + } + public async syncTeams( body: TeamSyncRequest, _options?: Configuration, @@ -1395,6 +1610,66 @@ export class TeamsApiResponseProcessor { ); } + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to addTeamHierarchyLink + * @throws ApiException if the response code was not in [200, 299] + */ + public async addTeamHierarchyLink( + response: ResponseContext, + ): Promise { + const contentType = normalizeMediaType(response.headers["content-type"]); + if (response.httpStatusCode === 200) { + const body: TeamHierarchyLinkResponse = deserialize( + parse(await response.body.text(), contentType), + TypingInfo, + "TeamHierarchyLinkResponse", + ) as TeamHierarchyLinkResponse; + return body; + } + if ( + response.httpStatusCode === 403 || + response.httpStatusCode === 409 || + response.httpStatusCode === 429 + ) { + const bodyText = parse(await response.body.text(), contentType); + let body: APIErrorResponse; + try { + body = deserialize( + bodyText, + TypingInfo, + "APIErrorResponse", + ) as APIErrorResponse; + } catch (error) { + logger.debug(`Got error deserializing error: ${error}`); + throw new ApiException( + response.httpStatusCode, + bodyText, + ); + } + throw new ApiException(response.httpStatusCode, body); + } + + // Work around for missing responses in specification, e.g. for petstore.yaml + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body: TeamHierarchyLinkResponse = deserialize( + parse(await response.body.text(), contentType), + TypingInfo, + "TeamHierarchyLinkResponse", + "", + ) as TeamHierarchyLinkResponse; + return body; + } + + const body = (await response.body.text()) || ""; + throw new ApiException( + response.httpStatusCode, + 'Unknown API Status Code!\nBody: "' + body + '"', + ); + } + /** * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects @@ -1774,6 +2049,66 @@ export class TeamsApiResponseProcessor { ); } + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to getTeamHierarchyLink + * @throws ApiException if the response code was not in [200, 299] + */ + public async getTeamHierarchyLink( + response: ResponseContext, + ): Promise { + const contentType = normalizeMediaType(response.headers["content-type"]); + if (response.httpStatusCode === 200) { + const body: TeamHierarchyLinkResponse = deserialize( + parse(await response.body.text(), contentType), + TypingInfo, + "TeamHierarchyLinkResponse", + ) as TeamHierarchyLinkResponse; + return body; + } + if ( + response.httpStatusCode === 403 || + response.httpStatusCode === 404 || + response.httpStatusCode === 429 + ) { + const bodyText = parse(await response.body.text(), contentType); + let body: APIErrorResponse; + try { + body = deserialize( + bodyText, + TypingInfo, + "APIErrorResponse", + ) as APIErrorResponse; + } catch (error) { + logger.debug(`Got error deserializing error: ${error}`); + throw new ApiException( + response.httpStatusCode, + bodyText, + ); + } + throw new ApiException(response.httpStatusCode, body); + } + + // Work around for missing responses in specification, e.g. for petstore.yaml + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body: TeamHierarchyLinkResponse = deserialize( + parse(await response.body.text(), contentType), + TypingInfo, + "TeamHierarchyLinkResponse", + "", + ) as TeamHierarchyLinkResponse; + return body; + } + + const body = (await response.body.text()) || ""; + throw new ApiException( + response.httpStatusCode, + 'Unknown API Status Code!\nBody: "' + body + '"', + ); + } + /** * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects @@ -2190,6 +2525,62 @@ export class TeamsApiResponseProcessor { ); } + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to listTeamHierarchyLinks + * @throws ApiException if the response code was not in [200, 299] + */ + public async listTeamHierarchyLinks( + response: ResponseContext, + ): Promise { + const contentType = normalizeMediaType(response.headers["content-type"]); + if (response.httpStatusCode === 200) { + const body: TeamHierarchyLinksResponse = deserialize( + parse(await response.body.text(), contentType), + TypingInfo, + "TeamHierarchyLinksResponse", + ) as TeamHierarchyLinksResponse; + return body; + } + if (response.httpStatusCode === 403 || response.httpStatusCode === 429) { + const bodyText = parse(await response.body.text(), contentType); + let body: APIErrorResponse; + try { + body = deserialize( + bodyText, + TypingInfo, + "APIErrorResponse", + ) as APIErrorResponse; + } catch (error) { + logger.debug(`Got error deserializing error: ${error}`); + throw new ApiException( + response.httpStatusCode, + bodyText, + ); + } + throw new ApiException(response.httpStatusCode, body); + } + + // Work around for missing responses in specification, e.g. for petstore.yaml + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body: TeamHierarchyLinksResponse = deserialize( + parse(await response.body.text(), contentType), + TypingInfo, + "TeamHierarchyLinksResponse", + "", + ) as TeamHierarchyLinksResponse; + return body; + } + + const body = (await response.body.text()) || ""; + throw new ApiException( + response.httpStatusCode, + 'Unknown API Status Code!\nBody: "' + body + '"', + ); + } + /** * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects @@ -2291,6 +2682,55 @@ export class TeamsApiResponseProcessor { ); } + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to removeTeamHierarchyLink + * @throws ApiException if the response code was not in [200, 299] + */ + public async removeTeamHierarchyLink( + response: ResponseContext, + ): Promise { + const contentType = normalizeMediaType(response.headers["content-type"]); + if (response.httpStatusCode === 204) { + return; + } + if ( + response.httpStatusCode === 403 || + response.httpStatusCode === 404 || + response.httpStatusCode === 429 + ) { + const bodyText = parse(await response.body.text(), contentType); + let body: APIErrorResponse; + try { + body = deserialize( + bodyText, + TypingInfo, + "APIErrorResponse", + ) as APIErrorResponse; + } catch (error) { + logger.debug(`Got error deserializing error: ${error}`); + throw new ApiException( + response.httpStatusCode, + bodyText, + ); + } + throw new ApiException(response.httpStatusCode, body); + } + + // Work around for missing responses in specification, e.g. for petstore.yaml + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + return; + } + + const body = (await response.body.text()) || ""; + throw new ApiException( + response.httpStatusCode, + 'Unknown API Status Code!\nBody: "' + body + '"', + ); + } + /** * Unwraps the actual response sent by the server from the response context and deserializes the response content * to the expected objects @@ -2591,6 +3031,13 @@ export interface TeamsApiAddMemberTeamRequest { body: AddMemberTeamRequest; } +export interface TeamsApiAddTeamHierarchyLinkRequest { + /** + * @type TeamHierarchyLinkCreateRequest + */ + body: TeamHierarchyLinkCreateRequest; +} + export interface TeamsApiCreateTeamRequest { /** * @type TeamCreateRequest @@ -2664,6 +3111,14 @@ export interface TeamsApiGetTeamRequest { teamId: string; } +export interface TeamsApiGetTeamHierarchyLinkRequest { + /** + * The team hierarchy link's identifier + * @type string + */ + linkId: string; +} + export interface TeamsApiGetTeamLinkRequest { /** * None @@ -2760,6 +3215,29 @@ export interface TeamsApiListMemberTeamsRequest { fieldsTeam?: Array; } +export interface TeamsApiListTeamHierarchyLinksRequest { + /** + * Specific page number to return. + * @type number + */ + pageNumber?: number; + /** + * Size for a given page. The maximum allowed value is 100. + * @type number + */ + pageSize?: number; + /** + * Filter by parent team ID + * @type string + */ + filterParentTeam?: string; + /** + * Filter by sub team ID + * @type string + */ + filterSubTeam?: string; +} + export interface TeamsApiListTeamsRequest { /** * Specific page number to return. @@ -2811,6 +3289,14 @@ export interface TeamsApiRemoveMemberTeamRequest { memberTeamId: string; } +export interface TeamsApiRemoveTeamHierarchyLinkRequest { + /** + * The team hierarchy link's identifier + * @type string + */ + linkId: string; +} + export interface TeamsApiSyncTeamsRequest { /** * @type TeamSyncRequest @@ -2903,6 +3389,8 @@ export class TeamsApi { /** * Add a member team. * Adds the team given by the `id` in the body as a member team of the super team. + * + * **Note**: This API is deprecated. For creating team hierarchy links, use the team hierarchy links API: `POST /api/v2/team-hierarchy-links`. * @param param The request object */ public addMemberTeam( @@ -2923,6 +3411,27 @@ export class TeamsApi { }); } + /** + * Create a new team hierarchy link between a parent team and a sub team. + * @param param The request object + */ + public addTeamHierarchyLink( + param: TeamsApiAddTeamHierarchyLinkRequest, + options?: Configuration, + ): Promise { + const requestContextPromise = this.requestFactory.addTeamHierarchyLink( + param.body, + options, + ); + return requestContextPromise.then((requestContext) => { + return this.configuration.httpApi + .send(requestContext) + .then((responseContext) => { + return this.responseProcessor.addTeamHierarchyLink(responseContext); + }); + }); + } + /** * Create a new team. * User IDs passed through the `users` relationship field are added to the team. @@ -3075,6 +3584,27 @@ export class TeamsApi { }); } + /** + * Get a single team hierarchy link for the given link_id. + * @param param The request object + */ + public getTeamHierarchyLink( + param: TeamsApiGetTeamHierarchyLinkRequest, + options?: Configuration, + ): Promise { + const requestContextPromise = this.requestFactory.getTeamHierarchyLink( + param.linkId, + options, + ); + return requestContextPromise.then((requestContext) => { + return this.configuration.httpApi + .send(requestContext) + .then((responseContext) => { + return this.responseProcessor.getTeamHierarchyLink(responseContext); + }); + }); + } + /** * Get a single link for a team. * @param param The request object @@ -3253,6 +3783,9 @@ export class TeamsApi { /** * Get all member teams. + * + * **Note**: This API is deprecated. For team hierarchy relationships (parent-child + * teams), use the team hierarchy links API: `GET /api/v2/team-hierarchy-links`. * @param param The request object */ public listMemberTeams( @@ -3316,6 +3849,71 @@ export class TeamsApi { } } + /** + * List all team hierarchy links that match the provided filters. + * @param param The request object + */ + public listTeamHierarchyLinks( + param: TeamsApiListTeamHierarchyLinksRequest = {}, + options?: Configuration, + ): Promise { + const requestContextPromise = this.requestFactory.listTeamHierarchyLinks( + param.pageNumber, + param.pageSize, + param.filterParentTeam, + param.filterSubTeam, + options, + ); + return requestContextPromise.then((requestContext) => { + return this.configuration.httpApi + .send(requestContext) + .then((responseContext) => { + return this.responseProcessor.listTeamHierarchyLinks(responseContext); + }); + }); + } + + /** + * Provide a paginated version of listTeamHierarchyLinks returning a generator with all the items. + */ + public async *listTeamHierarchyLinksWithPagination( + param: TeamsApiListTeamHierarchyLinksRequest = {}, + options?: Configuration, + ): AsyncGenerator { + let pageSize = 10; + if (param.pageSize !== undefined) { + pageSize = param.pageSize; + } + param.pageSize = pageSize; + param.pageNumber = 0; + while (true) { + const requestContext = await this.requestFactory.listTeamHierarchyLinks( + param.pageNumber, + param.pageSize, + param.filterParentTeam, + param.filterSubTeam, + options, + ); + const responseContext = + await this.configuration.httpApi.send(requestContext); + + const response = + await this.responseProcessor.listTeamHierarchyLinks(responseContext); + const responseData = response.data; + if (responseData === undefined) { + break; + } + const results = responseData; + for (const item of results) { + yield item; + } + if (results.length < pageSize) { + break; + } + param.pageNumber = param.pageNumber + 1; + } + } + /** * Get all teams. * Can be used to search for teams using the `filter[keyword]` and `filter[me]` query parameters. @@ -3389,6 +3987,8 @@ export class TeamsApi { /** * Remove a super team's member team identified by `member_team_id`. + * + * **Note**: This API is deprecated. For deleting team hierarchy links, use the team hierarchy links API: `DELETE /api/v2/team-hierarchy-links/{link_id}`. * @param param The request object */ public removeMemberTeam( @@ -3409,6 +4009,29 @@ export class TeamsApi { }); } + /** + * Remove a team hierarchy link by the given link_id. + * @param param The request object + */ + public removeTeamHierarchyLink( + param: TeamsApiRemoveTeamHierarchyLinkRequest, + options?: Configuration, + ): Promise { + const requestContextPromise = this.requestFactory.removeTeamHierarchyLink( + param.linkId, + options, + ); + return requestContextPromise.then((requestContext) => { + return this.configuration.httpApi + .send(requestContext) + .then((responseContext) => { + return this.responseProcessor.removeTeamHierarchyLink( + responseContext, + ); + }); + }); + } + /** * This endpoint attempts to link your existing Datadog teams with GitHub teams by matching their names. * It evaluates all current Datadog teams and compares them against teams in the GitHub organization diff --git a/services/teams/src/v2/index.ts b/services/teams/src/v2/index.ts index 81b3b6948c00..3e765623efc1 100644 --- a/services/teams/src/v2/index.ts +++ b/services/teams/src/v2/index.ts @@ -1,5 +1,6 @@ export { TeamsApiAddMemberTeamRequest, + TeamsApiAddTeamHierarchyLinkRequest, TeamsApiCreateTeamRequest, TeamsApiCreateTeamLinkRequest, TeamsApiCreateTeamMembershipRequest, @@ -7,6 +8,7 @@ export { TeamsApiDeleteTeamLinkRequest, TeamsApiDeleteTeamMembershipRequest, TeamsApiGetTeamRequest, + TeamsApiGetTeamHierarchyLinkRequest, TeamsApiGetTeamLinkRequest, TeamsApiGetTeamLinksRequest, TeamsApiGetTeamMembershipsRequest, @@ -14,8 +16,10 @@ export { TeamsApiGetTeamSyncRequest, TeamsApiGetUserMembershipsRequest, TeamsApiListMemberTeamsRequest, + TeamsApiListTeamHierarchyLinksRequest, TeamsApiListTeamsRequest, TeamsApiRemoveMemberTeamRequest, + TeamsApiRemoveTeamHierarchyLinkRequest, TeamsApiSyncTeamsRequest, TeamsApiUpdateTeamRequest, TeamsApiUpdateTeamLinkRequest, @@ -54,6 +58,20 @@ export { TeamCreate } from "./models/TeamCreate"; export { TeamCreateAttributes } from "./models/TeamCreateAttributes"; export { TeamCreateRelationships } from "./models/TeamCreateRelationships"; export { TeamCreateRequest } from "./models/TeamCreateRequest"; +export { TeamHierarchyLink } from "./models/TeamHierarchyLink"; +export { TeamHierarchyLinkAttributes } from "./models/TeamHierarchyLinkAttributes"; +export { TeamHierarchyLinkCreate } from "./models/TeamHierarchyLinkCreate"; +export { TeamHierarchyLinkCreateRelationships } from "./models/TeamHierarchyLinkCreateRelationships"; +export { TeamHierarchyLinkCreateRequest } from "./models/TeamHierarchyLinkCreateRequest"; +export { TeamHierarchyLinkCreateTeam } from "./models/TeamHierarchyLinkCreateTeam"; +export { TeamHierarchyLinkCreateTeamRelationship } from "./models/TeamHierarchyLinkCreateTeamRelationship"; +export { TeamHierarchyLinkRelationships } from "./models/TeamHierarchyLinkRelationships"; +export { TeamHierarchyLinkResponse } from "./models/TeamHierarchyLinkResponse"; +export { TeamHierarchyLinksResponse } from "./models/TeamHierarchyLinksResponse"; +export { TeamHierarchyLinkTeam } from "./models/TeamHierarchyLinkTeam"; +export { TeamHierarchyLinkTeamAttributes } from "./models/TeamHierarchyLinkTeamAttributes"; +export { TeamHierarchyLinkTeamRelationship } from "./models/TeamHierarchyLinkTeamRelationship"; +export { TeamHierarchyLinkType } from "./models/TeamHierarchyLinkType"; export { TeamIncluded } from "./models/TeamIncluded"; export { TeamLink } from "./models/TeamLink"; export { TeamLinkAttributes } from "./models/TeamLinkAttributes"; @@ -76,6 +94,9 @@ export { TeamRelationships } from "./models/TeamRelationships"; export { TeamRelationshipsLinks } from "./models/TeamRelationshipsLinks"; export { TeamResponse } from "./models/TeamResponse"; export { TeamsField } from "./models/TeamsField"; +export { TeamsHierarchyLinksResponseLinks } from "./models/TeamsHierarchyLinksResponseLinks"; +export { TeamsHierarchyLinksResponseMeta } from "./models/TeamsHierarchyLinksResponseMeta"; +export { TeamsHierarchyLinksResponseMetaPage } from "./models/TeamsHierarchyLinksResponseMetaPage"; export { TeamsResponse } from "./models/TeamsResponse"; export { TeamsResponseLinks } from "./models/TeamsResponseLinks"; export { TeamsResponseMeta } from "./models/TeamsResponseMeta"; diff --git a/services/teams/src/v2/models/TeamAttributes.ts b/services/teams/src/v2/models/TeamAttributes.ts index 909357b438a0..85d2e323d78b 100644 --- a/services/teams/src/v2/models/TeamAttributes.ts +++ b/services/teams/src/v2/models/TeamAttributes.ts @@ -28,6 +28,10 @@ export class TeamAttributes { * Collection of hidden modules for the team */ "hiddenModules"?: Array; + /** + * Whether the team is managed from an external source + */ + "isManaged"?: boolean; /** * The number of links belonging to the team */ @@ -94,6 +98,10 @@ export class TeamAttributes { baseName: "hidden_modules", type: "Array", }, + isManaged: { + baseName: "is_managed", + type: "boolean", + }, linkCount: { baseName: "link_count", type: "number", diff --git a/services/teams/src/v2/models/TeamHierarchyLink.ts b/services/teams/src/v2/models/TeamHierarchyLink.ts new file mode 100644 index 000000000000..0079173adf8a --- /dev/null +++ b/services/teams/src/v2/models/TeamHierarchyLink.ts @@ -0,0 +1,75 @@ +import { AttributeTypeMap } from "@datadog/datadog-api-client"; + +import { TeamHierarchyLinkAttributes } from "./TeamHierarchyLinkAttributes"; +import { TeamHierarchyLinkRelationships } from "./TeamHierarchyLinkRelationships"; +import { TeamHierarchyLinkType } from "./TeamHierarchyLinkType"; + +/** + * Team hierarchy link + */ +export class TeamHierarchyLink { + /** + * Team hierarchy link attributes + */ + "attributes": TeamHierarchyLinkAttributes; + /** + * The team hierarchy link's identifier + */ + "id": string; + /** + * Team hierarchy link relationships + */ + "relationships"?: TeamHierarchyLinkRelationships; + /** + * Team hierarchy link type + */ + "type": TeamHierarchyLinkType; + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + attributes: { + baseName: "attributes", + type: "TeamHierarchyLinkAttributes", + required: true, + }, + id: { + baseName: "id", + type: "string", + required: true, + }, + relationships: { + baseName: "relationships", + type: "TeamHierarchyLinkRelationships", + }, + type: { + baseName: "type", + type: "TeamHierarchyLinkType", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return TeamHierarchyLink.attributeTypeMap; + } + + public constructor() {} +} diff --git a/services/teams/src/v2/models/TeamHierarchyLinkAttributes.ts b/services/teams/src/v2/models/TeamHierarchyLinkAttributes.ts new file mode 100644 index 000000000000..601746a1acf1 --- /dev/null +++ b/services/teams/src/v2/models/TeamHierarchyLinkAttributes.ts @@ -0,0 +1,55 @@ +import { AttributeTypeMap } from "@datadog/datadog-api-client"; + +/** + * Team hierarchy link attributes + */ +export class TeamHierarchyLinkAttributes { + /** + * Timestamp when the team hierarchy link was created + */ + "createdAt": Date; + /** + * The provisioner of the team hierarchy link + */ + "provisionedBy": string; + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + createdAt: { + baseName: "created_at", + type: "Date", + required: true, + format: "date-time", + }, + provisionedBy: { + baseName: "provisioned_by", + type: "string", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return TeamHierarchyLinkAttributes.attributeTypeMap; + } + + public constructor() {} +} diff --git a/services/teams/src/v2/models/TeamHierarchyLinkCreate.ts b/services/teams/src/v2/models/TeamHierarchyLinkCreate.ts new file mode 100644 index 000000000000..4746ddd2f0be --- /dev/null +++ b/services/teams/src/v2/models/TeamHierarchyLinkCreate.ts @@ -0,0 +1,57 @@ +import { AttributeTypeMap } from "@datadog/datadog-api-client"; + +import { TeamHierarchyLinkCreateRelationships } from "./TeamHierarchyLinkCreateRelationships"; +import { TeamHierarchyLinkType } from "./TeamHierarchyLinkType"; + +/** + * Data provided when creating a team hierarchy link + */ +export class TeamHierarchyLinkCreate { + /** + * The related teams that will be connected by the team hierarchy link + */ + "relationships": TeamHierarchyLinkCreateRelationships; + /** + * Team hierarchy link type + */ + "type": TeamHierarchyLinkType; + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + relationships: { + baseName: "relationships", + type: "TeamHierarchyLinkCreateRelationships", + required: true, + }, + type: { + baseName: "type", + type: "TeamHierarchyLinkType", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return TeamHierarchyLinkCreate.attributeTypeMap; + } + + public constructor() {} +} diff --git a/services/teams/src/v2/models/TeamHierarchyLinkCreateRelationships.ts b/services/teams/src/v2/models/TeamHierarchyLinkCreateRelationships.ts new file mode 100644 index 000000000000..55f7899cb6cb --- /dev/null +++ b/services/teams/src/v2/models/TeamHierarchyLinkCreateRelationships.ts @@ -0,0 +1,56 @@ +import { AttributeTypeMap } from "@datadog/datadog-api-client"; + +import { TeamHierarchyLinkCreateTeamRelationship } from "./TeamHierarchyLinkCreateTeamRelationship"; + +/** + * The related teams that will be connected by the team hierarchy link + */ +export class TeamHierarchyLinkCreateRelationships { + /** + * Data about each team that will be connected by the team hierarchy link + */ + "parentTeam": TeamHierarchyLinkCreateTeamRelationship; + /** + * Data about each team that will be connected by the team hierarchy link + */ + "subTeam": TeamHierarchyLinkCreateTeamRelationship; + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + parentTeam: { + baseName: "parent_team", + type: "TeamHierarchyLinkCreateTeamRelationship", + required: true, + }, + subTeam: { + baseName: "sub_team", + type: "TeamHierarchyLinkCreateTeamRelationship", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return TeamHierarchyLinkCreateRelationships.attributeTypeMap; + } + + public constructor() {} +} diff --git a/services/teams/src/v2/models/TeamHierarchyLinkCreateRequest.ts b/services/teams/src/v2/models/TeamHierarchyLinkCreateRequest.ts new file mode 100644 index 000000000000..977f80bc7bfd --- /dev/null +++ b/services/teams/src/v2/models/TeamHierarchyLinkCreateRequest.ts @@ -0,0 +1,47 @@ +import { AttributeTypeMap } from "@datadog/datadog-api-client"; + +import { TeamHierarchyLinkCreate } from "./TeamHierarchyLinkCreate"; + +/** + * Request to create a team hierarchy link + */ +export class TeamHierarchyLinkCreateRequest { + /** + * Data provided when creating a team hierarchy link + */ + "data": TeamHierarchyLinkCreate; + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + data: { + baseName: "data", + type: "TeamHierarchyLinkCreate", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return TeamHierarchyLinkCreateRequest.attributeTypeMap; + } + + public constructor() {} +} diff --git a/services/teams/src/v2/models/TeamHierarchyLinkCreateTeam.ts b/services/teams/src/v2/models/TeamHierarchyLinkCreateTeam.ts new file mode 100644 index 000000000000..bfcaceed74d5 --- /dev/null +++ b/services/teams/src/v2/models/TeamHierarchyLinkCreateTeam.ts @@ -0,0 +1,56 @@ +import { AttributeTypeMap } from "@datadog/datadog-api-client"; + +import { TeamType } from "./TeamType"; + +/** + * This schema defines the attributes about each team that has to be provided when creating a team hierarchy link + */ +export class TeamHierarchyLinkCreateTeam { + /** + * The team's identifier + */ + "id": string; + /** + * Team type + */ + "type": TeamType; + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + id: { + baseName: "id", + type: "string", + required: true, + }, + type: { + baseName: "type", + type: "TeamType", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return TeamHierarchyLinkCreateTeam.attributeTypeMap; + } + + public constructor() {} +} diff --git a/services/teams/src/v2/models/TeamHierarchyLinkCreateTeamRelationship.ts b/services/teams/src/v2/models/TeamHierarchyLinkCreateTeamRelationship.ts new file mode 100644 index 000000000000..9386219a61fa --- /dev/null +++ b/services/teams/src/v2/models/TeamHierarchyLinkCreateTeamRelationship.ts @@ -0,0 +1,47 @@ +import { AttributeTypeMap } from "@datadog/datadog-api-client"; + +import { TeamHierarchyLinkCreateTeam } from "./TeamHierarchyLinkCreateTeam"; + +/** + * Data about each team that will be connected by the team hierarchy link + */ +export class TeamHierarchyLinkCreateTeamRelationship { + /** + * This schema defines the attributes about each team that has to be provided when creating a team hierarchy link + */ + "data": TeamHierarchyLinkCreateTeam; + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + data: { + baseName: "data", + type: "TeamHierarchyLinkCreateTeam", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return TeamHierarchyLinkCreateTeamRelationship.attributeTypeMap; + } + + public constructor() {} +} diff --git a/services/teams/src/v2/models/TeamHierarchyLinkRelationships.ts b/services/teams/src/v2/models/TeamHierarchyLinkRelationships.ts new file mode 100644 index 000000000000..2aaee96dad32 --- /dev/null +++ b/services/teams/src/v2/models/TeamHierarchyLinkRelationships.ts @@ -0,0 +1,56 @@ +import { AttributeTypeMap } from "@datadog/datadog-api-client"; + +import { TeamHierarchyLinkTeamRelationship } from "./TeamHierarchyLinkTeamRelationship"; + +/** + * Team hierarchy link relationships + */ +export class TeamHierarchyLinkRelationships { + /** + * Team hierarchy link team relationship + */ + "parentTeam": TeamHierarchyLinkTeamRelationship; + /** + * Team hierarchy link team relationship + */ + "subTeam": TeamHierarchyLinkTeamRelationship; + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + parentTeam: { + baseName: "parent_team", + type: "TeamHierarchyLinkTeamRelationship", + required: true, + }, + subTeam: { + baseName: "sub_team", + type: "TeamHierarchyLinkTeamRelationship", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return TeamHierarchyLinkRelationships.attributeTypeMap; + } + + public constructor() {} +} diff --git a/services/teams/src/v2/models/TeamHierarchyLinkResponse.ts b/services/teams/src/v2/models/TeamHierarchyLinkResponse.ts new file mode 100644 index 000000000000..6578ed4fde74 --- /dev/null +++ b/services/teams/src/v2/models/TeamHierarchyLinkResponse.ts @@ -0,0 +1,64 @@ +import { AttributeTypeMap } from "@datadog/datadog-api-client"; + +import { TeamHierarchyLink } from "./TeamHierarchyLink"; +import { TeamHierarchyLinkTeam } from "./TeamHierarchyLinkTeam"; +import { TeamsHierarchyLinksResponseLinks } from "./TeamsHierarchyLinksResponseLinks"; + +/** + * Team hierarchy link response + */ +export class TeamHierarchyLinkResponse { + /** + * Team hierarchy link + */ + "data"?: TeamHierarchyLink; + /** + * Included teams + */ + "included"?: Array; + /** + * When querying team hierarchy links, a set of links for navigation between different pages is included + */ + "links"?: TeamsHierarchyLinksResponseLinks; + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + data: { + baseName: "data", + type: "TeamHierarchyLink", + }, + included: { + baseName: "included", + type: "Array", + }, + links: { + baseName: "links", + type: "TeamsHierarchyLinksResponseLinks", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return TeamHierarchyLinkResponse.attributeTypeMap; + } + + public constructor() {} +} diff --git a/services/teams/src/v2/models/TeamHierarchyLinkTeam.ts b/services/teams/src/v2/models/TeamHierarchyLinkTeam.ts new file mode 100644 index 000000000000..f4130e528e39 --- /dev/null +++ b/services/teams/src/v2/models/TeamHierarchyLinkTeam.ts @@ -0,0 +1,65 @@ +import { AttributeTypeMap } from "@datadog/datadog-api-client"; + +import { TeamHierarchyLinkTeamAttributes } from "./TeamHierarchyLinkTeamAttributes"; +import { TeamType } from "./TeamType"; + +/** + * Team hierarchy links connect different teams. This represents team objects that are connected by the team hierarchy link. + */ +export class TeamHierarchyLinkTeam { + /** + * Team hierarchy links connect different teams. This represents attributes from teams that are connected by the team hierarchy link. + */ + "attributes"?: TeamHierarchyLinkTeamAttributes; + /** + * The team's identifier + */ + "id": string; + /** + * Team type + */ + "type": TeamType; + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + attributes: { + baseName: "attributes", + type: "TeamHierarchyLinkTeamAttributes", + }, + id: { + baseName: "id", + type: "string", + required: true, + }, + type: { + baseName: "type", + type: "TeamType", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return TeamHierarchyLinkTeam.attributeTypeMap; + } + + public constructor() {} +} diff --git a/services/teams/src/v2/models/TeamHierarchyLinkTeamAttributes.ts b/services/teams/src/v2/models/TeamHierarchyLinkTeamAttributes.ts new file mode 100644 index 000000000000..0fe154bce44b --- /dev/null +++ b/services/teams/src/v2/models/TeamHierarchyLinkTeamAttributes.ts @@ -0,0 +1,113 @@ +import { AttributeTypeMap } from "@datadog/datadog-api-client"; + +/** + * Team hierarchy links connect different teams. This represents attributes from teams that are connected by the team hierarchy link. + */ +export class TeamHierarchyLinkTeamAttributes { + /** + * The team's avatar + */ + "avatar"?: string; + /** + * The team's banner + */ + "banner"?: number; + /** + * The team's handle + */ + "handle": string; + /** + * Whether the team is managed + */ + "isManaged"?: boolean; + /** + * Whether the team has open membership + */ + "isOpenMembership"?: boolean; + /** + * The number of links for the team + */ + "linkCount"?: number; + /** + * The team's name + */ + "name": string; + /** + * The team's summary + */ + "summary"?: string; + /** + * The number of users in the team + */ + "userCount"?: number; + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + avatar: { + baseName: "avatar", + type: "string", + }, + banner: { + baseName: "banner", + type: "number", + format: "int64", + }, + handle: { + baseName: "handle", + type: "string", + required: true, + }, + isManaged: { + baseName: "is_managed", + type: "boolean", + }, + isOpenMembership: { + baseName: "is_open_membership", + type: "boolean", + }, + linkCount: { + baseName: "link_count", + type: "number", + format: "int64", + }, + name: { + baseName: "name", + type: "string", + required: true, + }, + summary: { + baseName: "summary", + type: "string", + }, + userCount: { + baseName: "user_count", + type: "number", + format: "int64", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return TeamHierarchyLinkTeamAttributes.attributeTypeMap; + } + + public constructor() {} +} diff --git a/services/teams/src/v2/models/TeamHierarchyLinkTeamRelationship.ts b/services/teams/src/v2/models/TeamHierarchyLinkTeamRelationship.ts new file mode 100644 index 000000000000..b221ad057b11 --- /dev/null +++ b/services/teams/src/v2/models/TeamHierarchyLinkTeamRelationship.ts @@ -0,0 +1,47 @@ +import { AttributeTypeMap } from "@datadog/datadog-api-client"; + +import { TeamHierarchyLinkTeam } from "./TeamHierarchyLinkTeam"; + +/** + * Team hierarchy link team relationship + */ +export class TeamHierarchyLinkTeamRelationship { + /** + * Team hierarchy links connect different teams. This represents team objects that are connected by the team hierarchy link. + */ + "data": TeamHierarchyLinkTeam; + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + data: { + baseName: "data", + type: "TeamHierarchyLinkTeam", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return TeamHierarchyLinkTeamRelationship.attributeTypeMap; + } + + public constructor() {} +} diff --git a/services/teams/src/v2/models/TeamHierarchyLinkType.ts b/services/teams/src/v2/models/TeamHierarchyLinkType.ts new file mode 100644 index 000000000000..358e7bf1429d --- /dev/null +++ b/services/teams/src/v2/models/TeamHierarchyLinkType.ts @@ -0,0 +1,9 @@ +import { UnparsedObject } from "@datadog/datadog-api-client"; + +/** + * Team hierarchy link type + */ +export type TeamHierarchyLinkType = + | typeof TEAM_HIERARCHY_LINKS + | UnparsedObject; +export const TEAM_HIERARCHY_LINKS = "team_hierarchy_links"; diff --git a/services/teams/src/v2/models/TeamHierarchyLinksResponse.ts b/services/teams/src/v2/models/TeamHierarchyLinksResponse.ts new file mode 100644 index 000000000000..8c9ac281d9b1 --- /dev/null +++ b/services/teams/src/v2/models/TeamHierarchyLinksResponse.ts @@ -0,0 +1,73 @@ +import { AttributeTypeMap } from "@datadog/datadog-api-client"; + +import { TeamHierarchyLink } from "./TeamHierarchyLink"; +import { TeamHierarchyLinkTeam } from "./TeamHierarchyLinkTeam"; +import { TeamsHierarchyLinksResponseLinks } from "./TeamsHierarchyLinksResponseLinks"; +import { TeamsHierarchyLinksResponseMeta } from "./TeamsHierarchyLinksResponseMeta"; + +/** + * Team hierarchy links response + */ +export class TeamHierarchyLinksResponse { + /** + * Team hierarchy links response data + */ + "data"?: Array; + /** + * Included teams + */ + "included"?: Array; + /** + * When querying team hierarchy links, a set of links for navigation between different pages is included + */ + "links"?: TeamsHierarchyLinksResponseLinks; + /** + * Metadata that is included in the response when querying the team hierarchy links + */ + "meta"?: TeamsHierarchyLinksResponseMeta; + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + data: { + baseName: "data", + type: "Array", + }, + included: { + baseName: "included", + type: "Array", + }, + links: { + baseName: "links", + type: "TeamsHierarchyLinksResponseLinks", + }, + meta: { + baseName: "meta", + type: "TeamsHierarchyLinksResponseMeta", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return TeamHierarchyLinksResponse.attributeTypeMap; + } + + public constructor() {} +} diff --git a/services/teams/src/v2/models/TeamsHierarchyLinksResponseLinks.ts b/services/teams/src/v2/models/TeamsHierarchyLinksResponseLinks.ts new file mode 100644 index 000000000000..a1e2067e71cd --- /dev/null +++ b/services/teams/src/v2/models/TeamsHierarchyLinksResponseLinks.ts @@ -0,0 +1,76 @@ +import { AttributeTypeMap } from "@datadog/datadog-api-client"; + +/** + * When querying team hierarchy links, a set of links for navigation between different pages is included + */ +export class TeamsHierarchyLinksResponseLinks { + /** + * Link to the first page. + */ + "first"?: string; + /** + * Link to the last page. + */ + "last"?: string; + /** + * Link to the next page. + */ + "next"?: string; + /** + * Link to the previous page. + */ + "prev"?: string; + /** + * Link to the current object. + */ + "self"?: string; + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + first: { + baseName: "first", + type: "string", + }, + last: { + baseName: "last", + type: "string", + }, + next: { + baseName: "next", + type: "string", + }, + prev: { + baseName: "prev", + type: "string", + }, + self: { + baseName: "self", + type: "string", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return TeamsHierarchyLinksResponseLinks.attributeTypeMap; + } + + public constructor() {} +} diff --git a/services/teams/src/v2/models/TeamsHierarchyLinksResponseMeta.ts b/services/teams/src/v2/models/TeamsHierarchyLinksResponseMeta.ts new file mode 100644 index 000000000000..bf611cec6b53 --- /dev/null +++ b/services/teams/src/v2/models/TeamsHierarchyLinksResponseMeta.ts @@ -0,0 +1,46 @@ +import { AttributeTypeMap } from "@datadog/datadog-api-client"; + +import { TeamsHierarchyLinksResponseMetaPage } from "./TeamsHierarchyLinksResponseMetaPage"; + +/** + * Metadata that is included in the response when querying the team hierarchy links + */ +export class TeamsHierarchyLinksResponseMeta { + /** + * Metadata related to paging information that is included in the response when querying the team hierarchy links + */ + "page"?: TeamsHierarchyLinksResponseMetaPage; + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + page: { + baseName: "page", + type: "TeamsHierarchyLinksResponseMetaPage", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return TeamsHierarchyLinksResponseMeta.attributeTypeMap; + } + + public constructor() {} +} diff --git a/services/teams/src/v2/models/TeamsHierarchyLinksResponseMetaPage.ts b/services/teams/src/v2/models/TeamsHierarchyLinksResponseMetaPage.ts new file mode 100644 index 000000000000..372be96f84ff --- /dev/null +++ b/services/teams/src/v2/models/TeamsHierarchyLinksResponseMetaPage.ts @@ -0,0 +1,107 @@ +import { AttributeTypeMap } from "@datadog/datadog-api-client"; + +/** + * Metadata related to paging information that is included in the response when querying the team hierarchy links + */ +export class TeamsHierarchyLinksResponseMetaPage { + /** + * First page number. + */ + "firstNumber"?: number; + /** + * Last page number. + */ + "lastNumber"?: number; + /** + * Next page number. + */ + "nextNumber"?: number; + /** + * Page number. + */ + "number"?: number; + /** + * Previous page number. + */ + "prevNumber"?: number; + /** + * Page size. + */ + "size"?: number; + /** + * Total number of results. + */ + "total"?: number; + /** + * Pagination type. + */ + "type"?: string; + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + firstNumber: { + baseName: "first_number", + type: "number", + format: "int64", + }, + lastNumber: { + baseName: "last_number", + type: "number", + format: "int64", + }, + nextNumber: { + baseName: "next_number", + type: "number", + format: "int64", + }, + number: { + baseName: "number", + type: "number", + format: "int64", + }, + prevNumber: { + baseName: "prev_number", + type: "number", + format: "int64", + }, + size: { + baseName: "size", + type: "number", + format: "int64", + }, + total: { + baseName: "total", + type: "number", + format: "int64", + }, + type: { + baseName: "type", + type: "string", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return TeamsHierarchyLinksResponseMetaPage.attributeTypeMap; + } + + public constructor() {} +} diff --git a/services/teams/src/v2/models/TypingInfo.ts b/services/teams/src/v2/models/TypingInfo.ts index 859d75291396..bfa96228aa1f 100644 --- a/services/teams/src/v2/models/TypingInfo.ts +++ b/services/teams/src/v2/models/TypingInfo.ts @@ -24,6 +24,19 @@ import { TeamCreate } from "./TeamCreate"; import { TeamCreateAttributes } from "./TeamCreateAttributes"; import { TeamCreateRelationships } from "./TeamCreateRelationships"; import { TeamCreateRequest } from "./TeamCreateRequest"; +import { TeamHierarchyLink } from "./TeamHierarchyLink"; +import { TeamHierarchyLinkAttributes } from "./TeamHierarchyLinkAttributes"; +import { TeamHierarchyLinkCreate } from "./TeamHierarchyLinkCreate"; +import { TeamHierarchyLinkCreateRelationships } from "./TeamHierarchyLinkCreateRelationships"; +import { TeamHierarchyLinkCreateRequest } from "./TeamHierarchyLinkCreateRequest"; +import { TeamHierarchyLinkCreateTeam } from "./TeamHierarchyLinkCreateTeam"; +import { TeamHierarchyLinkCreateTeamRelationship } from "./TeamHierarchyLinkCreateTeamRelationship"; +import { TeamHierarchyLinkRelationships } from "./TeamHierarchyLinkRelationships"; +import { TeamHierarchyLinkResponse } from "./TeamHierarchyLinkResponse"; +import { TeamHierarchyLinkTeam } from "./TeamHierarchyLinkTeam"; +import { TeamHierarchyLinkTeamAttributes } from "./TeamHierarchyLinkTeamAttributes"; +import { TeamHierarchyLinkTeamRelationship } from "./TeamHierarchyLinkTeamRelationship"; +import { TeamHierarchyLinksResponse } from "./TeamHierarchyLinksResponse"; import { TeamLink } from "./TeamLink"; import { TeamLinkAttributes } from "./TeamLinkAttributes"; import { TeamLinkCreate } from "./TeamLinkCreate"; @@ -48,6 +61,9 @@ import { TeamUpdate } from "./TeamUpdate"; import { TeamUpdateAttributes } from "./TeamUpdateAttributes"; import { TeamUpdateRelationships } from "./TeamUpdateRelationships"; import { TeamUpdateRequest } from "./TeamUpdateRequest"; +import { TeamsHierarchyLinksResponseLinks } from "./TeamsHierarchyLinksResponseLinks"; +import { TeamsHierarchyLinksResponseMeta } from "./TeamsHierarchyLinksResponseMeta"; +import { TeamsHierarchyLinksResponseMetaPage } from "./TeamsHierarchyLinksResponseMetaPage"; import { TeamsResponse } from "./TeamsResponse"; import { TeamsResponseLinks } from "./TeamsResponseLinks"; import { TeamsResponseMeta } from "./TeamsResponseMeta"; @@ -84,6 +100,7 @@ export const TypingInfo: ModelTypingInfo = { MemberTeamType: ["member_teams"], OrganizationsType: ["orgs"], RolesType: ["roles"], + TeamHierarchyLinkType: ["team_hierarchy_links"], TeamLinkType: ["team_links"], TeamPermissionSettingSerializerAction: ["manage_membership", "edit"], TeamPermissionSettingType: ["team_permission_settings"], @@ -152,6 +169,20 @@ export const TypingInfo: ModelTypingInfo = { TeamCreateAttributes: TeamCreateAttributes, TeamCreateRelationships: TeamCreateRelationships, TeamCreateRequest: TeamCreateRequest, + TeamHierarchyLink: TeamHierarchyLink, + TeamHierarchyLinkAttributes: TeamHierarchyLinkAttributes, + TeamHierarchyLinkCreate: TeamHierarchyLinkCreate, + TeamHierarchyLinkCreateRelationships: TeamHierarchyLinkCreateRelationships, + TeamHierarchyLinkCreateRequest: TeamHierarchyLinkCreateRequest, + TeamHierarchyLinkCreateTeam: TeamHierarchyLinkCreateTeam, + TeamHierarchyLinkCreateTeamRelationship: + TeamHierarchyLinkCreateTeamRelationship, + TeamHierarchyLinkRelationships: TeamHierarchyLinkRelationships, + TeamHierarchyLinkResponse: TeamHierarchyLinkResponse, + TeamHierarchyLinkTeam: TeamHierarchyLinkTeam, + TeamHierarchyLinkTeamAttributes: TeamHierarchyLinkTeamAttributes, + TeamHierarchyLinkTeamRelationship: TeamHierarchyLinkTeamRelationship, + TeamHierarchyLinksResponse: TeamHierarchyLinksResponse, TeamLink: TeamLink, TeamLinkAttributes: TeamLinkAttributes, TeamLinkCreate: TeamLinkCreate, @@ -177,6 +208,9 @@ export const TypingInfo: ModelTypingInfo = { TeamUpdateAttributes: TeamUpdateAttributes, TeamUpdateRelationships: TeamUpdateRelationships, TeamUpdateRequest: TeamUpdateRequest, + TeamsHierarchyLinksResponseLinks: TeamsHierarchyLinksResponseLinks, + TeamsHierarchyLinksResponseMeta: TeamsHierarchyLinksResponseMeta, + TeamsHierarchyLinksResponseMetaPage: TeamsHierarchyLinksResponseMetaPage, TeamsResponse: TeamsResponse, TeamsResponseLinks: TeamsResponseLinks, TeamsResponseMeta: TeamsResponseMeta,