Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
419 changes: 419 additions & 0 deletions .generator/schemas/v2/openapi.yaml

Large diffs are not rendered by default.

7 changes: 7 additions & 0 deletions docs/datadog_api_client.v2.api.rst
Original file line number Diff line number Diff line change
Expand Up @@ -508,6 +508,13 @@ datadog\_api\_client.v2.api.teams\_api module
:members:
:show-inheritance:

datadog\_api\_client.v2.api.test\_optimization\_api module
----------------------------------------------------------

.. automodule:: datadog_api_client.v2.api.test_optimization_api
:members:
:show-inheritance:

datadog\_api\_client.v2.api.usage\_metering\_api module
-------------------------------------------------------

Expand Down
119 changes: 119 additions & 0 deletions docs/datadog_api_client.v2.model.rst
Original file line number Diff line number Diff line change
Expand Up @@ -7697,6 +7697,125 @@ datadog\_api\_client.v2.model.finding\_vulnerability\_type module
:members:
:show-inheritance:

datadog\_api\_client.v2.model.flaky\_test module
------------------------------------------------

.. automodule:: datadog_api_client.v2.model.flaky_test
:members:
:show-inheritance:

datadog\_api\_client.v2.model.flaky\_test\_attributes module
------------------------------------------------------------

.. automodule:: datadog_api_client.v2.model.flaky_test_attributes
:members:
:show-inheritance:

datadog\_api\_client.v2.model.flaky\_test\_attributes\_flaky\_state module
--------------------------------------------------------------------------

.. automodule:: datadog_api_client.v2.model.flaky_test_attributes_flaky_state
:members:
:show-inheritance:

datadog\_api\_client.v2.model.flaky\_test\_pipeline\_stats module
-----------------------------------------------------------------

.. automodule:: datadog_api_client.v2.model.flaky_test_pipeline_stats
:members:
:show-inheritance:

datadog\_api\_client.v2.model.flaky\_test\_run\_metadata module
---------------------------------------------------------------

.. automodule:: datadog_api_client.v2.model.flaky_test_run_metadata
:members:
:show-inheritance:

datadog\_api\_client.v2.model.flaky\_test\_stats module
-------------------------------------------------------

.. automodule:: datadog_api_client.v2.model.flaky_test_stats
:members:
:show-inheritance:

datadog\_api\_client.v2.model.flaky\_test\_type module
------------------------------------------------------

.. automodule:: datadog_api_client.v2.model.flaky_test_type
:members:
:show-inheritance:

datadog\_api\_client.v2.model.flaky\_tests\_pagination module
-------------------------------------------------------------

.. automodule:: datadog_api_client.v2.model.flaky_tests_pagination
:members:
:show-inheritance:

datadog\_api\_client.v2.model.flaky\_tests\_search\_filter module
-----------------------------------------------------------------

.. automodule:: datadog_api_client.v2.model.flaky_tests_search_filter
:members:
:show-inheritance:

datadog\_api\_client.v2.model.flaky\_tests\_search\_page\_options module
------------------------------------------------------------------------

.. automodule:: datadog_api_client.v2.model.flaky_tests_search_page_options
:members:
:show-inheritance:

datadog\_api\_client.v2.model.flaky\_tests\_search\_request module
------------------------------------------------------------------

.. automodule:: datadog_api_client.v2.model.flaky_tests_search_request
:members:
:show-inheritance:

datadog\_api\_client.v2.model.flaky\_tests\_search\_request\_attributes module
------------------------------------------------------------------------------

.. automodule:: datadog_api_client.v2.model.flaky_tests_search_request_attributes
:members:
:show-inheritance:

datadog\_api\_client.v2.model.flaky\_tests\_search\_request\_data module
------------------------------------------------------------------------

.. automodule:: datadog_api_client.v2.model.flaky_tests_search_request_data
:members:
:show-inheritance:

datadog\_api\_client.v2.model.flaky\_tests\_search\_request\_data\_type module
------------------------------------------------------------------------------

.. automodule:: datadog_api_client.v2.model.flaky_tests_search_request_data_type
:members:
:show-inheritance:

datadog\_api\_client.v2.model.flaky\_tests\_search\_response module
-------------------------------------------------------------------

.. automodule:: datadog_api_client.v2.model.flaky_tests_search_response
:members:
:show-inheritance:

datadog\_api\_client.v2.model.flaky\_tests\_search\_response\_meta module
-------------------------------------------------------------------------

.. automodule:: datadog_api_client.v2.model.flaky_tests_search_response_meta
:members:
:show-inheritance:

datadog\_api\_client.v2.model.flaky\_tests\_search\_sort module
---------------------------------------------------------------

.. automodule:: datadog_api_client.v2.model.flaky_tests_search_sort
:members:
:show-inheritance:

datadog\_api\_client.v2.model.formula\_limit module
---------------------------------------------------

Expand Down
37 changes: 37 additions & 0 deletions examples/v2/test-optimization/SearchFlakyTests.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
"""
Search flaky tests returns "OK" response
"""

from datadog_api_client import ApiClient, Configuration
from datadog_api_client.v2.api.test_optimization_api import TestOptimizationApi
from datadog_api_client.v2.model.flaky_tests_search_filter import FlakyTestsSearchFilter
from datadog_api_client.v2.model.flaky_tests_search_page_options import FlakyTestsSearchPageOptions
from datadog_api_client.v2.model.flaky_tests_search_request import FlakyTestsSearchRequest
from datadog_api_client.v2.model.flaky_tests_search_request_attributes import FlakyTestsSearchRequestAttributes
from datadog_api_client.v2.model.flaky_tests_search_request_data import FlakyTestsSearchRequestData
from datadog_api_client.v2.model.flaky_tests_search_request_data_type import FlakyTestsSearchRequestDataType
from datadog_api_client.v2.model.flaky_tests_search_sort import FlakyTestsSearchSort

body = FlakyTestsSearchRequest(
data=FlakyTestsSearchRequestData(
attributes=FlakyTestsSearchRequestAttributes(
filter=FlakyTestsSearchFilter(
query='flaky_test_state:active @git.repository.id_v2:"github.com/datadog/shopist"',
),
page=FlakyTestsSearchPageOptions(
cursor="eyJzdGFydEF0IjoiQVFBQUFYS2tMS3pPbm40NGV3QUFBQUJCV0V0clRFdDZVbG8zY3pCRmNsbHJiVmxDWlEifQ==",
limit=25,
),
sort=FlakyTestsSearchSort.FAILURE_RATE_ASCENDING,
),
type=FlakyTestsSearchRequestDataType.SEARCH_FLAKY_TESTS_REQUEST,
),
)

configuration = Configuration()
configuration.unstable_operations["search_flaky_tests"] = True
with ApiClient(configuration) as api_client:
api_instance = TestOptimizationApi(api_client)
response = api_instance.search_flaky_tests(body=body)

print(response)
37 changes: 37 additions & 0 deletions examples/v2/test-optimization/SearchFlakyTests_1224086727.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
"""
Search flaky tests returns "OK" response with pagination
"""

from datadog_api_client import ApiClient, Configuration
from datadog_api_client.v2.api.test_optimization_api import TestOptimizationApi
from datadog_api_client.v2.model.flaky_tests_search_filter import FlakyTestsSearchFilter
from datadog_api_client.v2.model.flaky_tests_search_page_options import FlakyTestsSearchPageOptions
from datadog_api_client.v2.model.flaky_tests_search_request import FlakyTestsSearchRequest
from datadog_api_client.v2.model.flaky_tests_search_request_attributes import FlakyTestsSearchRequestAttributes
from datadog_api_client.v2.model.flaky_tests_search_request_data import FlakyTestsSearchRequestData
from datadog_api_client.v2.model.flaky_tests_search_request_data_type import FlakyTestsSearchRequestDataType
from datadog_api_client.v2.model.flaky_tests_search_sort import FlakyTestsSearchSort

body = FlakyTestsSearchRequest(
data=FlakyTestsSearchRequestData(
attributes=FlakyTestsSearchRequestAttributes(
filter=FlakyTestsSearchFilter(
query='flaky_test_state:active @git.repository.id_v2:"github.com/datadog/shopist"',
),
page=FlakyTestsSearchPageOptions(
cursor="eyJzdGFydEF0IjoiQVFBQUFYS2tMS3pPbm40NGV3QUFBQUJCV0V0clRFdDZVbG8zY3pCRmNsbHJiVmxDWlEifQ==",
limit=25,
),
sort=FlakyTestsSearchSort.FAILURE_RATE_ASCENDING,
),
type=FlakyTestsSearchRequestDataType.SEARCH_FLAKY_TESTS_REQUEST,
),
)

configuration = Configuration()
configuration.unstable_operations["search_flaky_tests"] = True
with ApiClient(configuration) as api_client:
api_instance = TestOptimizationApi(api_client)
items = api_instance.search_flaky_tests_with_pagination(body=body)
for item in items:
print(item)
36 changes: 36 additions & 0 deletions examples/v2/test-optimization/SearchFlakyTests_2665223746.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
"""
Search flaky tests returns "OK" response with filtered query
"""

from datadog_api_client import ApiClient, Configuration
from datadog_api_client.v2.api.test_optimization_api import TestOptimizationApi
from datadog_api_client.v2.model.flaky_tests_search_filter import FlakyTestsSearchFilter
from datadog_api_client.v2.model.flaky_tests_search_page_options import FlakyTestsSearchPageOptions
from datadog_api_client.v2.model.flaky_tests_search_request import FlakyTestsSearchRequest
from datadog_api_client.v2.model.flaky_tests_search_request_attributes import FlakyTestsSearchRequestAttributes
from datadog_api_client.v2.model.flaky_tests_search_request_data import FlakyTestsSearchRequestData
from datadog_api_client.v2.model.flaky_tests_search_request_data_type import FlakyTestsSearchRequestDataType
from datadog_api_client.v2.model.flaky_tests_search_sort import FlakyTestsSearchSort

body = FlakyTestsSearchRequest(
data=FlakyTestsSearchRequestData(
attributes=FlakyTestsSearchRequestAttributes(
filter=FlakyTestsSearchFilter(
query='flaky_test_state:active @git.repository.id_v2:"github.com/datadog/cart-tracking"',
),
page=FlakyTestsSearchPageOptions(
limit=10,
),
sort=FlakyTestsSearchSort.LAST_FLAKED_DESCENDING,
),
type=FlakyTestsSearchRequestDataType.SEARCH_FLAKY_TESTS_REQUEST,
),
)

configuration = Configuration()
configuration.unstable_operations["search_flaky_tests"] = True
with ApiClient(configuration) as api_client:
api_instance = TestOptimizationApi(api_client)
items = api_instance.search_flaky_tests_with_pagination(body=body)
for item in items:
print(item)
1 change: 1 addition & 0 deletions src/datadog_api_client/configuration.py
Original file line number Diff line number Diff line change
Expand Up @@ -341,6 +341,7 @@ def __init__(
"v2.get_incident_team": False,
"v2.list_incident_teams": False,
"v2.update_incident_team": False,
"v2.search_flaky_tests": False,
}
)

Expand Down
98 changes: 98 additions & 0 deletions src/datadog_api_client/v2/api/test_optimization_api.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
# 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

import collections
from typing import Any, Dict, Union

from datadog_api_client.api_client import ApiClient, Endpoint as _Endpoint
from datadog_api_client.configuration import Configuration
from datadog_api_client.model_utils import (
set_attribute_from_path,
get_attribute_from_path,
UnsetType,
unset,
)
from datadog_api_client.v2.model.flaky_tests_search_response import FlakyTestsSearchResponse
from datadog_api_client.v2.model.flaky_tests_search_request import FlakyTestsSearchRequest
from datadog_api_client.v2.model.flaky_test import FlakyTest


class TestOptimizationApi:
"""
Search and manage flaky tests through Test Optimization. See the `Test Optimization page <https://docs.datadoghq.com/tests/>`_ for more information.
"""

def __init__(self, api_client=None):
if api_client is None:
api_client = ApiClient(Configuration())
self.api_client = api_client

self._search_flaky_tests_endpoint = _Endpoint(
settings={
"response_type": (FlakyTestsSearchResponse,),
"auth": ["apiKeyAuth", "appKeyAuth", "AuthZ"],
"endpoint_path": "/api/v2/test/flaky-test-management/tests",
"operation_id": "search_flaky_tests",
"http_method": "POST",
"version": "v2",
},
params_map={
"body": {
"openapi_types": (FlakyTestsSearchRequest,),
"location": "body",
},
},
headers_map={"accept": ["application/json"], "content_type": ["application/json"]},
api_client=api_client,
)

def search_flaky_tests(
self,
*,
body: Union[FlakyTestsSearchRequest, UnsetType] = unset,
) -> FlakyTestsSearchResponse:
"""Search flaky tests.

List endpoint returning flaky tests from Flaky Test Management. Results are paginated.

:type body: FlakyTestsSearchRequest, optional
:rtype: FlakyTestsSearchResponse
"""
kwargs: Dict[str, Any] = {}
if body is not unset:
kwargs["body"] = body

return self._search_flaky_tests_endpoint.call_with_http_info(**kwargs)

def search_flaky_tests_with_pagination(
self,
*,
body: Union[FlakyTestsSearchRequest, UnsetType] = unset,
) -> collections.abc.Iterable[FlakyTest]:
"""Search flaky tests.

Provide a paginated version of :meth:`search_flaky_tests`, returning all items.

:type body: FlakyTestsSearchRequest, optional

:return: A generator of paginated results.
:rtype: collections.abc.Iterable[FlakyTest]
"""
kwargs: Dict[str, Any] = {}
if body is not unset:
kwargs["body"] = body

local_page_size = get_attribute_from_path(kwargs, "body.data.attributes.page.limit", 10)
endpoint = self._search_flaky_tests_endpoint
set_attribute_from_path(kwargs, "body.data.attributes.page.limit", local_page_size, endpoint.params_map)
pagination = {
"limit_value": local_page_size,
"results_path": "data",
"cursor_param": "body.data.attributes.page.cursor",
"cursor_path": "meta.pagination.next_page",
"endpoint": endpoint,
"kwargs": kwargs,
}
return endpoint.call_with_http_info_paginated(pagination)
2 changes: 2 additions & 0 deletions src/datadog_api_client/v2/apis/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,7 @@
from datadog_api_client.v2.api.spans_metrics_api import SpansMetricsApi
from datadog_api_client.v2.api.synthetics_api import SyntheticsApi
from datadog_api_client.v2.api.teams_api import TeamsApi
from datadog_api_client.v2.api.test_optimization_api import TestOptimizationApi
from datadog_api_client.v2.api.usage_metering_api import UsageMeteringApi
from datadog_api_client.v2.api.users_api import UsersApi
from datadog_api_client.v2.api.workflow_automation_api import WorkflowAutomationApi
Expand Down Expand Up @@ -148,6 +149,7 @@
"SpansMetricsApi",
"SyntheticsApi",
"TeamsApi",
"TestOptimizationApi",
"UsageMeteringApi",
"UsersApi",
"WorkflowAutomationApi",
Expand Down
Loading