From 181820392574c280e09d2445b52115ec0dc7ee64 Mon Sep 17 00:00:00 2001 From: "ci.datadog-api-spec" Date: Wed, 11 Oct 2023 17:44:28 +0000 Subject: [PATCH] Regenerate client from commit 71a1e1d2 of spec repo --- .apigentools-info | 8 +- .generator/schemas/v2/openapi.yaml | 77 ++++++++++++++++++- docs/datadog_api_client.v2.model.rst | 7 ++ examples/v2/teams/ListTeams_3429963470.py | 20 +++++ .../v2/api/key_management_api.py | 44 +++++++++++ src/datadog_api_client/v2/api/roles_api.py | 11 +++ src/datadog_api_client/v2/api/teams_api.py | 19 +++++ .../v2/model/teams_field.py | 77 +++++++++++++++++++ .../model/user_team_permission_attributes.py | 2 +- src/datadog_api_client/v2/models/__init__.py | 2 + ..._team_parameter_returns_ok_response.frozen | 1 + ...ds_team_parameter_returns_ok_response.yaml | 21 +++++ tests/v2/features/teams.feature | 10 +++ 13 files changed, 292 insertions(+), 7 deletions(-) create mode 100644 examples/v2/teams/ListTeams_3429963470.py create mode 100644 src/datadog_api_client/v2/model/teams_field.py create mode 100644 tests/v2/cassettes/test_scenarios/test_get_all_teams_with_fields_team_parameter_returns_ok_response.frozen create mode 100644 tests/v2/cassettes/test_scenarios/test_get_all_teams_with_fields_team_parameter_returns_ok_response.yaml diff --git a/.apigentools-info b/.apigentools-info index 011702c985..8d93b5e7f5 100644 --- a/.apigentools-info +++ b/.apigentools-info @@ -4,13 +4,13 @@ "spec_versions": { "v1": { "apigentools_version": "1.6.6", - "regenerated": "2023-10-10 13:47:33.127844", - "spec_repo_commit": "afb48804" + "regenerated": "2023-10-11 17:43:18.259336", + "spec_repo_commit": "71a1e1d2" }, "v2": { "apigentools_version": "1.6.6", - "regenerated": "2023-10-10 13:47:33.153228", - "spec_repo_commit": "afb48804" + "regenerated": "2023-10-11 17:43:18.272858", + "spec_repo_commit": "71a1e1d2" } } } \ No newline at end of file diff --git a/.generator/schemas/v2/openapi.yaml b/.generator/schemas/v2/openapi.yaml index 2975fa2f44..b6dedcceb8 100644 --- a/.generator/schemas/v2/openapi.yaml +++ b/.generator/schemas/v2/openapi.yaml @@ -4,6 +4,13 @@ components: headers: {} links: {} parameters: + APIKeyCategoryParameter: + description: Filter API keys by category. + in: query + name: filter[category] + required: false + schema: + type: string APIKeyFilterCreatedAtEndParameter: description: Only include API keys created on or before the specified date. in: query @@ -59,6 +66,13 @@ components: schema: example: created_by,modified_by type: string + APIKeyReadConfigReadEnabledParameter: + description: Filter API keys by remote config read enabled status. + in: query + name: filter[remote_config_read_enabled] + required: false + schema: + type: boolean APIKeysSortParameter: description: 'API key attribute used to sort results. Sort order is ascending @@ -17216,6 +17230,41 @@ components: required: - data type: object + TeamsField: + description: Supported teams field. + enum: + - id + - name + - handle + - summary + - description + - avatar + - banner + - visible_modules + - hidden_modules + - created_at + - modified_at + - user_count + - link_count + - team_links + - user_team_permissions + type: string + x-enum-varnames: + - ID + - NAME + - HANDLE + - SUMMARY + - DESCRIPTION + - AVATAR + - BANNER + - VISIBLE_MODULES + - HIDDEN_MODULES + - CREATED_AT + - MODIFIED_AT + - USER_COUNT + - LINK_COUNT + - TEAM_LINKS + - USER_TEAM_PERMISSIONS TeamsResponse: description: Response with multiple teams properties: @@ -17850,8 +17899,8 @@ components: description: User team permission attributes properties: permissions: - description: Object of team permission actions and boolean values indicating - of the currently logged in user can perform them on this team + description: Object of team permission actions and boolean values that a + logged in user can perform on this team. readOnly: true type: object type: object @@ -18106,6 +18155,8 @@ paths: - $ref: '#/components/parameters/APIKeyFilterModifiedAtStartParameter' - $ref: '#/components/parameters/APIKeyFilterModifiedAtEndParameter' - $ref: '#/components/parameters/APIKeyIncludeParameter' + - $ref: '#/components/parameters/APIKeyReadConfigReadEnabledParameter' + - $ref: '#/components/parameters/APIKeyCategoryParameter' responses: '200': content: @@ -18539,6 +18590,7 @@ paths: - $ref: '#/components/parameters/ApplicationKeyFilterParameter' - $ref: '#/components/parameters/ApplicationKeyFilterCreatedAtStartParameter' - $ref: '#/components/parameters/ApplicationKeyFilterCreatedAtEndParameter' + - $ref: '#/components/parameters/ApplicationKeyIncludeParameter' responses: '200': content: @@ -19420,6 +19472,7 @@ paths: - $ref: '#/components/parameters/ApplicationKeyFilterParameter' - $ref: '#/components/parameters/ApplicationKeyFilterCreatedAtStartParameter' - $ref: '#/components/parameters/ApplicationKeyFilterCreatedAtEndParameter' + - $ref: '#/components/parameters/ApplicationKeyIncludeParameter' responses: '200': content: @@ -24353,6 +24406,12 @@ paths: required: false schema: type: string + - description: Filter all roles by the given list of role IDs. + in: query + name: filter[id] + required: false + schema: + type: string responses: '200': content: @@ -27073,12 +27132,14 @@ paths: - description: Specifies the order of the returned teams in: query name: sort + required: false schema: $ref: '#/components/schemas/ListTeamsSort' - description: 'Included related resources optionally requested. Allowed enum values: `team_links, user_team_permissions`' in: query name: include + required: false schema: items: $ref: '#/components/schemas/ListTeamsInclude' @@ -27087,13 +27148,23 @@ paths: member in: query name: filter[keyword] + required: false schema: type: string - description: When true, only returns teams the current user belongs to in: query name: filter[me] + required: false schema: type: boolean + - description: List of fields that need to be fetched. + in: query + name: fields[team] + required: false + schema: + items: + $ref: '#/components/schemas/TeamsField' + type: array responses: '200': content: @@ -27508,11 +27579,13 @@ paths: - description: Specifies the order of returned team memberships in: query name: sort + required: false schema: $ref: '#/components/schemas/GetTeamMembershipsSort' - description: Search query, can be user email or name in: query name: filter[keyword] + required: false schema: type: string responses: diff --git a/docs/datadog_api_client.v2.model.rst b/docs/datadog_api_client.v2.model.rst index 9bb4a6b33f..481b5421ef 100644 --- a/docs/datadog_api_client.v2.model.rst +++ b/docs/datadog_api_client.v2.model.rst @@ -7687,6 +7687,13 @@ team\_update\_request :members: :show-inheritance: +teams\_field +------------ + +.. automodule:: datadog_api_client.v2.model.teams_field + :members: + :show-inheritance: + teams\_response --------------- diff --git a/examples/v2/teams/ListTeams_3429963470.py b/examples/v2/teams/ListTeams_3429963470.py new file mode 100644 index 0000000000..b261476d0d --- /dev/null +++ b/examples/v2/teams/ListTeams_3429963470.py @@ -0,0 +1,20 @@ +""" +Get all teams with fields_team parameter returns "OK" response +""" + +from datadog_api_client import ApiClient, Configuration +from datadog_api_client.v2.api.teams_api import TeamsApi +from datadog_api_client.v2.model.teams_field import TeamsField + +configuration = Configuration() +with ApiClient(configuration) as api_client: + api_instance = TeamsApi(api_client) + response = api_instance.list_teams( + fields_team=[ + TeamsField.ID, + TeamsField.NAME, + TeamsField.HANDLE, + ], + ) + + print(response) diff --git a/src/datadog_api_client/v2/api/key_management_api.py b/src/datadog_api_client/v2/api/key_management_api.py index cc916ac31b..737f64f002 100644 --- a/src/datadog_api_client/v2/api/key_management_api.py +++ b/src/datadog_api_client/v2/api/key_management_api.py @@ -279,6 +279,16 @@ def __init__(self, api_client=None): "attribute": "include", "location": "query", }, + "filter_remote_config_read_enabled": { + "openapi_types": (bool,), + "attribute": "filter[remote_config_read_enabled]", + "location": "query", + }, + "filter_category": { + "openapi_types": (str,), + "attribute": "filter[category]", + "location": "query", + }, }, headers_map={ "accept": ["application/json"], @@ -326,6 +336,11 @@ def __init__(self, api_client=None): "attribute": "filter[created_at][end]", "location": "query", }, + "include": { + "openapi_types": (str,), + "attribute": "include", + "location": "query", + }, }, headers_map={ "accept": ["application/json"], @@ -373,6 +388,11 @@ def __init__(self, api_client=None): "attribute": "filter[created_at][end]", "location": "query", }, + "include": { + "openapi_types": (str,), + "attribute": "include", + "location": "query", + }, }, headers_map={ "accept": ["application/json"], @@ -618,6 +638,8 @@ def list_api_keys( filter_modified_at_start: Union[str, UnsetType] = unset, filter_modified_at_end: Union[str, UnsetType] = unset, include: Union[str, UnsetType] = unset, + filter_remote_config_read_enabled: Union[bool, UnsetType] = unset, + filter_category: Union[str, UnsetType] = unset, ) -> APIKeysResponse: """Get all API keys. @@ -643,6 +665,10 @@ def list_api_keys( :type filter_modified_at_end: str, optional :param include: Comma separated list of resource paths for related resources to include in the response. Supported resource paths are ``created_by`` and ``modified_by``. :type include: str, optional + :param filter_remote_config_read_enabled: Filter API keys by remote config read enabled status. + :type filter_remote_config_read_enabled: bool, optional + :param filter_category: Filter API keys by category. + :type filter_category: str, optional :rtype: APIKeysResponse """ kwargs: Dict[str, Any] = {} @@ -673,6 +699,12 @@ def list_api_keys( if include is not unset: kwargs["include"] = include + if filter_remote_config_read_enabled is not unset: + kwargs["filter_remote_config_read_enabled"] = filter_remote_config_read_enabled + + if filter_category is not unset: + kwargs["filter_category"] = filter_category + return self._list_api_keys_endpoint.call_with_http_info(**kwargs) def list_application_keys( @@ -684,6 +716,7 @@ def list_application_keys( filter: Union[str, UnsetType] = unset, filter_created_at_start: Union[str, UnsetType] = unset, filter_created_at_end: Union[str, UnsetType] = unset, + include: Union[str, UnsetType] = unset, ) -> ListApplicationKeysResponse: """Get all application keys. @@ -703,6 +736,8 @@ def list_application_keys( :type filter_created_at_start: str, optional :param filter_created_at_end: Only include application keys created on or before the specified date. :type filter_created_at_end: str, optional + :param include: Resource path for related resources to include in the response. Only ``owned_by`` is supported. + :type include: str, optional :rtype: ListApplicationKeysResponse """ kwargs: Dict[str, Any] = {} @@ -724,6 +759,9 @@ def list_application_keys( if filter_created_at_end is not unset: kwargs["filter_created_at_end"] = filter_created_at_end + if include is not unset: + kwargs["include"] = include + return self._list_application_keys_endpoint.call_with_http_info(**kwargs) def list_current_user_application_keys( @@ -735,6 +773,7 @@ def list_current_user_application_keys( filter: Union[str, UnsetType] = unset, filter_created_at_start: Union[str, UnsetType] = unset, filter_created_at_end: Union[str, UnsetType] = unset, + include: Union[str, UnsetType] = unset, ) -> ListApplicationKeysResponse: """Get all application keys owned by current user. @@ -754,6 +793,8 @@ def list_current_user_application_keys( :type filter_created_at_start: str, optional :param filter_created_at_end: Only include application keys created on or before the specified date. :type filter_created_at_end: str, optional + :param include: Resource path for related resources to include in the response. Only ``owned_by`` is supported. + :type include: str, optional :rtype: ListApplicationKeysResponse """ kwargs: Dict[str, Any] = {} @@ -775,6 +816,9 @@ def list_current_user_application_keys( if filter_created_at_end is not unset: kwargs["filter_created_at_end"] = filter_created_at_end + if include is not unset: + kwargs["include"] = include + return self._list_current_user_application_keys_endpoint.call_with_http_info(**kwargs) def update_api_key( diff --git a/src/datadog_api_client/v2/api/roles_api.py b/src/datadog_api_client/v2/api/roles_api.py index 623077da51..0a421d0e2d 100644 --- a/src/datadog_api_client/v2/api/roles_api.py +++ b/src/datadog_api_client/v2/api/roles_api.py @@ -255,6 +255,11 @@ def __init__(self, api_client=None): "attribute": "filter", "location": "query", }, + "filter_id": { + "openapi_types": (str,), + "attribute": "filter[id]", + "location": "query", + }, }, headers_map={ "accept": ["application/json"], @@ -532,6 +537,7 @@ def list_roles( page_number: Union[int, UnsetType] = unset, sort: Union[RolesSort, UnsetType] = unset, filter: Union[str, UnsetType] = unset, + filter_id: Union[str, UnsetType] = unset, ) -> RolesResponse: """List roles. @@ -547,6 +553,8 @@ def list_roles( :type sort: RolesSort, optional :param filter: Filter all roles by the given string. :type filter: str, optional + :param filter_id: Filter all roles by the given list of role IDs. + :type filter_id: str, optional :rtype: RolesResponse """ kwargs: Dict[str, Any] = {} @@ -562,6 +570,9 @@ def list_roles( if filter is not unset: kwargs["filter"] = filter + if filter_id is not unset: + kwargs["filter_id"] = filter_id + return self._list_roles_endpoint.call_with_http_info(**kwargs) def list_role_users( diff --git a/src/datadog_api_client/v2/api/teams_api.py b/src/datadog_api_client/v2/api/teams_api.py index 046a60b361..9c4edf44a2 100644 --- a/src/datadog_api_client/v2/api/teams_api.py +++ b/src/datadog_api_client/v2/api/teams_api.py @@ -17,6 +17,7 @@ from datadog_api_client.v2.model.teams_response import TeamsResponse from datadog_api_client.v2.model.list_teams_sort import ListTeamsSort from datadog_api_client.v2.model.list_teams_include import ListTeamsInclude +from datadog_api_client.v2.model.teams_field import TeamsField from datadog_api_client.v2.model.team import Team from datadog_api_client.v2.model.team_response import TeamResponse from datadog_api_client.v2.model.team_create_request import TeamCreateRequest @@ -402,6 +403,12 @@ def __init__(self, api_client=None): "attribute": "filter[me]", "location": "query", }, + "fields_team": { + "openapi_types": ([TeamsField],), + "attribute": "fields[team]", + "location": "query", + "collection_format": "multi", + }, }, headers_map={ "accept": ["application/json"], @@ -792,6 +799,7 @@ def list_teams( include: Union[List[ListTeamsInclude], UnsetType] = unset, filter_keyword: Union[str, UnsetType] = unset, filter_me: Union[bool, UnsetType] = unset, + fields_team: Union[List[TeamsField], UnsetType] = unset, ) -> TeamsResponse: """Get all teams. @@ -810,6 +818,8 @@ def list_teams( :type filter_keyword: str, optional :param filter_me: When true, only returns teams the current user belongs to :type filter_me: bool, optional + :param fields_team: List of fields that need to be fetched. + :type fields_team: [TeamsField], optional :rtype: TeamsResponse """ kwargs: Dict[str, Any] = {} @@ -831,6 +841,9 @@ def list_teams( if filter_me is not unset: kwargs["filter_me"] = filter_me + if fields_team is not unset: + kwargs["fields_team"] = fields_team + return self._list_teams_endpoint.call_with_http_info(**kwargs) def list_teams_with_pagination( @@ -842,6 +855,7 @@ def list_teams_with_pagination( include: Union[List[ListTeamsInclude], UnsetType] = unset, filter_keyword: Union[str, UnsetType] = unset, filter_me: Union[bool, UnsetType] = unset, + fields_team: Union[List[TeamsField], UnsetType] = unset, ) -> collections.abc.Iterable[Team]: """Get all teams. @@ -859,6 +873,8 @@ def list_teams_with_pagination( :type filter_keyword: str, optional :param filter_me: When true, only returns teams the current user belongs to :type filter_me: bool, optional + :param fields_team: List of fields that need to be fetched. + :type fields_team: [TeamsField], optional :return: A generator of paginated results. :rtype: collections.abc.Iterable[Team] @@ -882,6 +898,9 @@ def list_teams_with_pagination( if filter_me is not unset: kwargs["filter_me"] = filter_me + if fields_team is not unset: + kwargs["fields_team"] = fields_team + local_page_size = get_attribute_from_path(kwargs, "page_size", 10) endpoint = self._list_teams_endpoint set_attribute_from_path(kwargs, "page_size", local_page_size, endpoint.params_map) diff --git a/src/datadog_api_client/v2/model/teams_field.py b/src/datadog_api_client/v2/model/teams_field.py new file mode 100644 index 0000000000..fa6bf63f38 --- /dev/null +++ b/src/datadog_api_client/v2/model/teams_field.py @@ -0,0 +1,77 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + + +from datadog_api_client.model_utils import ( + ModelSimple, + cached_property, +) + +from typing import ClassVar + + +class TeamsField(ModelSimple): + """ + Supported teams field. + + :param value: Must be one of ["id", "name", "handle", "summary", "description", "avatar", "banner", "visible_modules", "hidden_modules", "created_at", "modified_at", "user_count", "link_count", "team_links", "user_team_permissions"]. + :type value: str + """ + + allowed_values = { + "id", + "name", + "handle", + "summary", + "description", + "avatar", + "banner", + "visible_modules", + "hidden_modules", + "created_at", + "modified_at", + "user_count", + "link_count", + "team_links", + "user_team_permissions", + } + ID: ClassVar["TeamsField"] + NAME: ClassVar["TeamsField"] + HANDLE: ClassVar["TeamsField"] + SUMMARY: ClassVar["TeamsField"] + DESCRIPTION: ClassVar["TeamsField"] + AVATAR: ClassVar["TeamsField"] + BANNER: ClassVar["TeamsField"] + VISIBLE_MODULES: ClassVar["TeamsField"] + HIDDEN_MODULES: ClassVar["TeamsField"] + CREATED_AT: ClassVar["TeamsField"] + MODIFIED_AT: ClassVar["TeamsField"] + USER_COUNT: ClassVar["TeamsField"] + LINK_COUNT: ClassVar["TeamsField"] + TEAM_LINKS: ClassVar["TeamsField"] + USER_TEAM_PERMISSIONS: ClassVar["TeamsField"] + + @cached_property + def openapi_types(_): + return { + "value": (str,), + } + + +TeamsField.ID = TeamsField("id") +TeamsField.NAME = TeamsField("name") +TeamsField.HANDLE = TeamsField("handle") +TeamsField.SUMMARY = TeamsField("summary") +TeamsField.DESCRIPTION = TeamsField("description") +TeamsField.AVATAR = TeamsField("avatar") +TeamsField.BANNER = TeamsField("banner") +TeamsField.VISIBLE_MODULES = TeamsField("visible_modules") +TeamsField.HIDDEN_MODULES = TeamsField("hidden_modules") +TeamsField.CREATED_AT = TeamsField("created_at") +TeamsField.MODIFIED_AT = TeamsField("modified_at") +TeamsField.USER_COUNT = TeamsField("user_count") +TeamsField.LINK_COUNT = TeamsField("link_count") +TeamsField.TEAM_LINKS = TeamsField("team_links") +TeamsField.USER_TEAM_PERMISSIONS = TeamsField("user_team_permissions") diff --git a/src/datadog_api_client/v2/model/user_team_permission_attributes.py b/src/datadog_api_client/v2/model/user_team_permission_attributes.py index dfa2dd44da..aa6b4aa4fa 100644 --- a/src/datadog_api_client/v2/model/user_team_permission_attributes.py +++ b/src/datadog_api_client/v2/model/user_team_permission_attributes.py @@ -31,7 +31,7 @@ def __init__(self_, permissions: Union[dict, UnsetType] = unset, **kwargs): """ User team permission attributes - :param permissions: Object of team permission actions and boolean values indicating of the currently logged in user can perform them on this team + :param permissions: Object of team permission actions and boolean values that a logged in user can perform on this team. :type permissions: dict, optional """ if permissions is not unset: diff --git a/src/datadog_api_client/v2/models/__init__.py b/src/datadog_api_client/v2/models/__init__.py index c65da5fb1e..50fb052043 100644 --- a/src/datadog_api_client/v2/models/__init__.py +++ b/src/datadog_api_client/v2/models/__init__.py @@ -1324,6 +1324,7 @@ from datadog_api_client.v2.model.team_update_attributes import TeamUpdateAttributes from datadog_api_client.v2.model.team_update_relationships import TeamUpdateRelationships from datadog_api_client.v2.model.team_update_request import TeamUpdateRequest +from datadog_api_client.v2.model.teams_field import TeamsField from datadog_api_client.v2.model.teams_response import TeamsResponse from datadog_api_client.v2.model.teams_response_links import TeamsResponseLinks from datadog_api_client.v2.model.teams_response_meta import TeamsResponseMeta @@ -2494,6 +2495,7 @@ "TeamUpdateAttributes", "TeamUpdateRelationships", "TeamUpdateRequest", + "TeamsField", "TeamsResponse", "TeamsResponseLinks", "TeamsResponseMeta", diff --git a/tests/v2/cassettes/test_scenarios/test_get_all_teams_with_fields_team_parameter_returns_ok_response.frozen b/tests/v2/cassettes/test_scenarios/test_get_all_teams_with_fields_team_parameter_returns_ok_response.frozen new file mode 100644 index 0000000000..dcab235f85 --- /dev/null +++ b/tests/v2/cassettes/test_scenarios/test_get_all_teams_with_fields_team_parameter_returns_ok_response.frozen @@ -0,0 +1 @@ +2023-10-11T17:40:11.903Z \ No newline at end of file diff --git a/tests/v2/cassettes/test_scenarios/test_get_all_teams_with_fields_team_parameter_returns_ok_response.yaml b/tests/v2/cassettes/test_scenarios/test_get_all_teams_with_fields_team_parameter_returns_ok_response.yaml new file mode 100644 index 0000000000..2712170d5c --- /dev/null +++ b/tests/v2/cassettes/test_scenarios/test_get_all_teams_with_fields_team_parameter_returns_ok_response.yaml @@ -0,0 +1,21 @@ +interactions: +- request: + body: null + headers: + accept: + - application/json + method: GET + uri: https://api.datadoghq.com/api/v2/team?fields%5Bteam%5D=id%2Cname%2Chandle + response: + body: + string: '{"data":[{"type":"team","id":"ac73040e-c8d4-11ed-b2ea-da7ad0900002","attributes":{"name":"Example + Team","handle":"api-spec-test-team"}},{"type":"team","id":"cc338b02-405b-11ee-835e-da7ad0900002","attributes":{"name":"test-name-12938712938","handle":"test-handle-12938712938"}},{"type":"team","id":"ecc8affc-27d6-11ee-b33c-da7ad0900002","attributes":{"name":"tf-testaccteamlinkbasic-local-1689951453","handle":"tf-testaccteamlinkbasic-local-1689951453"}}],"meta":{"pagination":{"offset":0,"first_offset":0,"prev_offset":0,"next_offset":100,"last_offset":0,"limit":100,"type":"offset_limit","total":3}},"links":{"self":"https://api.datadoghq.com/api/v2/team?fields%5Bteam%5D=id,name,handle","last":null,"next":"https://api.datadoghq.com/api/v2/team?fields%5Bteam%5D=id,name,handle&page[offset]=100&page[limit]=100","prev":null,"first":"https://api.datadoghq.com/api/v2/team?fields%5Bteam%5D=id,name,handle&page[offset]=0&page[limit]=100"}} + + ' + headers: + content-type: + - application/json + status: + code: 200 + message: OK +version: 1 diff --git a/tests/v2/features/teams.feature b/tests/v2/features/teams.feature index 0bc53da0f0..c226790f55 100644 --- a/tests/v2/features/teams.feature +++ b/tests/v2/features/teams.feature @@ -126,6 +126,16 @@ Feature: Teams Then the response status is 200 OK And the response has 3 items + @team:DataDog/core-app + Scenario: Get all teams with fields_team parameter returns "OK" response + Given new "ListTeams" request + And request contains "fields[team]" parameter with value ["id", "name", "handle"] + When the request is sent + Then the response status is 200 OK + And the response "data[0]" has field "id" + And the response "data[0].attributes" has field "name" + And the response "data[0].attributes" has field "handle" + @team:DataDog/core-app Scenario: Get links for a team returns "API error response." response Given new "GetTeamLinks" request