From cdb4f9268d8462cd0cb94f45686cc92ee4a07943 Mon Sep 17 00:00:00 2001 From: "ci.datadog-api-spec" Date: Tue, 14 Jul 2026 14:39:09 +0000 Subject: [PATCH] Regenerate client from commit db7e16d of spec repo --- .generator/schemas/v2/openapi.yaml | 127 ++++++++++++++++++ docs/datadog_api_client.v2.model.rst | 35 +++++ .../ListOrgGroupPolicySuggestions.py | 17 +++ src/datadog_api_client/configuration.py | 1 + .../v2/api/org_groups_api.py | 54 ++++++++ .../org_group_policy_suggestion_attributes.py | 67 +++++++++ ...org_group_policy_suggestion_config_tier.py | 41 ++++++ .../model/org_group_policy_suggestion_data.py | 58 ++++++++ ...g_group_policy_suggestion_list_response.py | 40 ++++++ .../model/org_group_policy_suggestion_type.py | 35 +++++ src/datadog_api_client/v2/models/__init__.py | 10 ++ tests/v2/features/org_groups.feature | 16 +++ tests/v2/features/undo.json | 6 + 13 files changed, 507 insertions(+) create mode 100644 examples/v2/org-groups/ListOrgGroupPolicySuggestions.py create mode 100644 src/datadog_api_client/v2/model/org_group_policy_suggestion_attributes.py create mode 100644 src/datadog_api_client/v2/model/org_group_policy_suggestion_config_tier.py create mode 100644 src/datadog_api_client/v2/model/org_group_policy_suggestion_data.py create mode 100644 src/datadog_api_client/v2/model/org_group_policy_suggestion_list_response.py create mode 100644 src/datadog_api_client/v2/model/org_group_policy_suggestion_type.py diff --git a/.generator/schemas/v2/openapi.yaml b/.generator/schemas/v2/openapi.yaml index a66a5429c0..1b84f43e8c 100644 --- a/.generator/schemas/v2/openapi.yaml +++ b/.generator/schemas/v2/openapi.yaml @@ -1324,6 +1324,13 @@ components: example: "9f8e7d6c-5b4a-3210-fedc-ba0987654321" format: uuid type: string + OrgGroupPolicySuggestionFilterConfigTier: + description: Filter policy suggestions by config tier. Defaults to `all`. + in: query + name: filter[config_tier] + required: false + schema: + $ref: "#/components/schemas/OrgGroupPolicySuggestionConfigTier" OrgGroupSort: description: >- Field to sort org groups by. Supported values: `name`, `uuid`, `-name`, `-uuid`. Defaults to `uuid`. @@ -72977,6 +72984,79 @@ components: - MINUS_ID - NAME - MINUS_NAME + OrgGroupPolicySuggestionAttributes: + description: Attributes of an org group policy suggestion. + properties: + consensus_ratio: + description: The ratio of member orgs whose configuration agrees on the recommended value. + example: 0.75 + format: double + type: number + policy_name: + description: The name of the suggested policy. + example: "monitor_timezone" + type: string + recommended_value: + description: The recommended value for the policy, based on member org consensus. + example: "UTC" + status: + description: The status of the policy suggestion. + example: "pending" + type: string + required: + - policy_name + - status + - consensus_ratio + - recommended_value + type: object + OrgGroupPolicySuggestionConfigTier: + default: all + description: The config tier to filter policy suggestions by. + enum: + - preview + - ga + - all + example: all + type: string + x-enum-varnames: + - PREVIEW + - GA + - ALL + OrgGroupPolicySuggestionData: + description: An org group policy suggestion resource. + properties: + attributes: + $ref: "#/components/schemas/OrgGroupPolicySuggestionAttributes" + id: + description: The ID of the org group policy suggestion. + example: "1a2b3c4d-5e6f-7890-abcd-ef0123456789" + type: string + type: + $ref: "#/components/schemas/OrgGroupPolicySuggestionType" + required: + - id + - type + - attributes + type: object + OrgGroupPolicySuggestionListResponse: + description: Response containing a list of org group policy suggestions. + properties: + data: + description: An array of org group policy suggestions. + items: + $ref: "#/components/schemas/OrgGroupPolicySuggestionData" + type: array + required: + - data + type: object + OrgGroupPolicySuggestionType: + description: Org group policy suggestions resource type. + enum: + - org_group_policy_suggestions + example: org_group_policy_suggestions + type: string + x-enum-varnames: + - ORG_GROUP_POLICY_SUGGESTIONS OrgGroupPolicyType: description: Org group policies resource type. enum: @@ -163544,6 +163624,53 @@ paths: x-unstable: |- **Note**: This endpoint is in preview and is subject to change. If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + /api/v2/org_group_policy_suggestions: + get: + description: List suggested organization group policies. Requires a filter on org group ID. + operationId: ListOrgGroupPolicySuggestions + parameters: + - $ref: "#/components/parameters/OrgGroupPolicyFilterOrgGroupId" + - $ref: "#/components/parameters/OrgGroupPolicySuggestionFilterConfigTier" + responses: + "200": + content: + application/json: + examples: + default: + value: + data: [] + schema: + $ref: "#/components/schemas/OrgGroupPolicySuggestionListResponse" + description: OK + "400": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Bad Request + "401": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Unauthorized + "403": + content: + application/json: + schema: + $ref: "#/components/schemas/JSONAPIErrorResponse" + description: Forbidden + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + summary: List org group policy suggestions + tags: [Org Groups] + "x-permission": + operator: OR + permissions: + - org_group_read + x-unstable: |- + **Note**: This endpoint is in preview and is subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). /api/v2/org_groups: get: description: List all organization groups that the requesting organization has access to. diff --git a/docs/datadog_api_client.v2.model.rst b/docs/datadog_api_client.v2.model.rst index 15264605bc..78c3407cba 100644 --- a/docs/datadog_api_client.v2.model.rst +++ b/docs/datadog_api_client.v2.model.rst @@ -30587,6 +30587,41 @@ datadog\_api\_client.v2.model.org\_group\_policy\_sort\_option module :members: :show-inheritance: +datadog\_api\_client.v2.model.org\_group\_policy\_suggestion\_attributes module +------------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.org_group_policy_suggestion_attributes + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.org\_group\_policy\_suggestion\_config\_tier module +--------------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.org_group_policy_suggestion_config_tier + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.org\_group\_policy\_suggestion\_data module +------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.org_group_policy_suggestion_data + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.org\_group\_policy\_suggestion\_list\_response module +----------------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.org_group_policy_suggestion_list_response + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.org\_group\_policy\_suggestion\_type module +------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.org_group_policy_suggestion_type + :members: + :show-inheritance: + datadog\_api\_client.v2.model.org\_group\_policy\_type module ------------------------------------------------------------- diff --git a/examples/v2/org-groups/ListOrgGroupPolicySuggestions.py b/examples/v2/org-groups/ListOrgGroupPolicySuggestions.py new file mode 100644 index 0000000000..d383f677ad --- /dev/null +++ b/examples/v2/org-groups/ListOrgGroupPolicySuggestions.py @@ -0,0 +1,17 @@ +""" +List org group policy suggestions returns "OK" response +""" + +from datadog_api_client import ApiClient, Configuration +from datadog_api_client.v2.api.org_groups_api import OrgGroupsApi +from uuid import UUID + +configuration = Configuration() +configuration.unstable_operations["list_org_group_policy_suggestions"] = True +with ApiClient(configuration) as api_client: + api_instance = OrgGroupsApi(api_client) + response = api_instance.list_org_group_policy_suggestions( + filter_org_group_id=UUID("a1b2c3d4-e5f6-7890-abcd-ef0123456789"), + ) + + print(response) diff --git a/src/datadog_api_client/configuration.py b/src/datadog_api_client/configuration.py index 33003c7e07..2a609885fa 100644 --- a/src/datadog_api_client/configuration.py +++ b/src/datadog_api_client/configuration.py @@ -695,6 +695,7 @@ def __init__( "v2.list_org_group_policies": False, "v2.list_org_group_policy_configs": False, "v2.list_org_group_policy_overrides": False, + "v2.list_org_group_policy_suggestions": False, "v2.list_org_groups": False, "v2.update_org_group": False, "v2.update_org_group_membership": False, diff --git a/src/datadog_api_client/v2/api/org_groups_api.py b/src/datadog_api_client/v2/api/org_groups_api.py index a83ec41f8f..113f6c50a9 100644 --- a/src/datadog_api_client/v2/api/org_groups_api.py +++ b/src/datadog_api_client/v2/api/org_groups_api.py @@ -28,6 +28,8 @@ from datadog_api_client.v2.model.org_group_policy_override_response import OrgGroupPolicyOverrideResponse from datadog_api_client.v2.model.org_group_policy_override_create_request import OrgGroupPolicyOverrideCreateRequest from datadog_api_client.v2.model.org_group_policy_override_update_request import OrgGroupPolicyOverrideUpdateRequest +from datadog_api_client.v2.model.org_group_policy_suggestion_list_response import OrgGroupPolicySuggestionListResponse +from datadog_api_client.v2.model.org_group_policy_suggestion_config_tier import OrgGroupPolicySuggestionConfigTier from datadog_api_client.v2.model.org_group_list_response import OrgGroupListResponse from datadog_api_client.v2.model.org_group_sort_option import OrgGroupSortOption from datadog_api_client.v2.model.org_group_response import OrgGroupResponse @@ -451,6 +453,34 @@ def __init__(self, api_client=None): api_client=api_client, ) + self._list_org_group_policy_suggestions_endpoint = _Endpoint( + settings={ + "response_type": (OrgGroupPolicySuggestionListResponse,), + "auth": ["apiKeyAuth", "appKeyAuth"], + "endpoint_path": "/api/v2/org_group_policy_suggestions", + "operation_id": "list_org_group_policy_suggestions", + "http_method": "GET", + "version": "v2", + }, + params_map={ + "filter_org_group_id": { + "required": True, + "openapi_types": (UUID,), + "attribute": "filter[org_group_id]", + "location": "query", + }, + "filter_config_tier": { + "openapi_types": (OrgGroupPolicySuggestionConfigTier,), + "attribute": "filter[config_tier]", + "location": "query", + }, + }, + headers_map={ + "accept": ["application/json"], + }, + api_client=api_client, + ) + self._list_org_groups_endpoint = _Endpoint( settings={ "response_type": (OrgGroupListResponse,), @@ -916,6 +946,30 @@ def list_org_group_policy_overrides( return self._list_org_group_policy_overrides_endpoint.call_with_http_info(**kwargs) + def list_org_group_policy_suggestions( + self, + filter_org_group_id: UUID, + *, + filter_config_tier: Union[OrgGroupPolicySuggestionConfigTier, UnsetType] = unset, + ) -> OrgGroupPolicySuggestionListResponse: + """List org group policy suggestions. + + List suggested organization group policies. Requires a filter on org group ID. + + :param filter_org_group_id: Filter policies by org group ID. + :type filter_org_group_id: UUID + :param filter_config_tier: Filter policy suggestions by config tier. Defaults to ``all``. + :type filter_config_tier: OrgGroupPolicySuggestionConfigTier, optional + :rtype: OrgGroupPolicySuggestionListResponse + """ + kwargs: Dict[str, Any] = {} + kwargs["filter_org_group_id"] = filter_org_group_id + + if filter_config_tier is not unset: + kwargs["filter_config_tier"] = filter_config_tier + + return self._list_org_group_policy_suggestions_endpoint.call_with_http_info(**kwargs) + def list_org_groups( self, *, diff --git a/src/datadog_api_client/v2/model/org_group_policy_suggestion_attributes.py b/src/datadog_api_client/v2/model/org_group_policy_suggestion_attributes.py new file mode 100644 index 0000000000..9b790585d5 --- /dev/null +++ b/src/datadog_api_client/v2/model/org_group_policy_suggestion_attributes.py @@ -0,0 +1,67 @@ +# 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 typing import Any + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, + date, + datetime, + none_type, + UUID, +) + + +class OrgGroupPolicySuggestionAttributes(ModelNormal): + @cached_property + def openapi_types(_): + return { + "consensus_ratio": (float,), + "policy_name": (str,), + "recommended_value": ( + bool, + date, + datetime, + dict, + float, + int, + list, + str, + UUID, + none_type, + ), + "status": (str,), + } + + attribute_map = { + "consensus_ratio": "consensus_ratio", + "policy_name": "policy_name", + "recommended_value": "recommended_value", + "status": "status", + } + + def __init__(self_, consensus_ratio: float, policy_name: str, recommended_value: Any, status: str, **kwargs): + """ + Attributes of an org group policy suggestion. + + :param consensus_ratio: The ratio of member orgs whose configuration agrees on the recommended value. + :type consensus_ratio: float + + :param policy_name: The name of the suggested policy. + :type policy_name: str + + :param recommended_value: The recommended value for the policy, based on member org consensus. + :type recommended_value: bool, date, datetime, dict, float, int, list, str, UUID, none_type + + :param status: The status of the policy suggestion. + :type status: str + """ + super().__init__(kwargs) + + self_.consensus_ratio = consensus_ratio + self_.policy_name = policy_name + self_.recommended_value = recommended_value + self_.status = status diff --git a/src/datadog_api_client/v2/model/org_group_policy_suggestion_config_tier.py b/src/datadog_api_client/v2/model/org_group_policy_suggestion_config_tier.py new file mode 100644 index 0000000000..18230ecc54 --- /dev/null +++ b/src/datadog_api_client/v2/model/org_group_policy_suggestion_config_tier.py @@ -0,0 +1,41 @@ +# 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 OrgGroupPolicySuggestionConfigTier(ModelSimple): + """ + The config tier to filter policy suggestions by. + + :param value: If omitted defaults to "all". Must be one of ["preview", "ga", "all"]. + :type value: str + """ + + allowed_values = { + "preview", + "ga", + "all", + } + PREVIEW: ClassVar["OrgGroupPolicySuggestionConfigTier"] + GA: ClassVar["OrgGroupPolicySuggestionConfigTier"] + ALL: ClassVar["OrgGroupPolicySuggestionConfigTier"] + + @cached_property + def openapi_types(_): + return { + "value": (str,), + } + + +OrgGroupPolicySuggestionConfigTier.PREVIEW = OrgGroupPolicySuggestionConfigTier("preview") +OrgGroupPolicySuggestionConfigTier.GA = OrgGroupPolicySuggestionConfigTier("ga") +OrgGroupPolicySuggestionConfigTier.ALL = OrgGroupPolicySuggestionConfigTier("all") diff --git a/src/datadog_api_client/v2/model/org_group_policy_suggestion_data.py b/src/datadog_api_client/v2/model/org_group_policy_suggestion_data.py new file mode 100644 index 0000000000..823fb7a2d6 --- /dev/null +++ b/src/datadog_api_client/v2/model/org_group_policy_suggestion_data.py @@ -0,0 +1,58 @@ +# 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 typing import TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.org_group_policy_suggestion_attributes import OrgGroupPolicySuggestionAttributes + from datadog_api_client.v2.model.org_group_policy_suggestion_type import OrgGroupPolicySuggestionType + + +class OrgGroupPolicySuggestionData(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.org_group_policy_suggestion_attributes import ( + OrgGroupPolicySuggestionAttributes, + ) + from datadog_api_client.v2.model.org_group_policy_suggestion_type import OrgGroupPolicySuggestionType + + return { + "attributes": (OrgGroupPolicySuggestionAttributes,), + "id": (str,), + "type": (OrgGroupPolicySuggestionType,), + } + + attribute_map = { + "attributes": "attributes", + "id": "id", + "type": "type", + } + + def __init__( + self_, attributes: OrgGroupPolicySuggestionAttributes, id: str, type: OrgGroupPolicySuggestionType, **kwargs + ): + """ + An org group policy suggestion resource. + + :param attributes: Attributes of an org group policy suggestion. + :type attributes: OrgGroupPolicySuggestionAttributes + + :param id: The ID of the org group policy suggestion. + :type id: str + + :param type: Org group policy suggestions resource type. + :type type: OrgGroupPolicySuggestionType + """ + super().__init__(kwargs) + + self_.attributes = attributes + self_.id = id + self_.type = type diff --git a/src/datadog_api_client/v2/model/org_group_policy_suggestion_list_response.py b/src/datadog_api_client/v2/model/org_group_policy_suggestion_list_response.py new file mode 100644 index 0000000000..c69091c838 --- /dev/null +++ b/src/datadog_api_client/v2/model/org_group_policy_suggestion_list_response.py @@ -0,0 +1,40 @@ +# 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 typing import List, TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.org_group_policy_suggestion_data import OrgGroupPolicySuggestionData + + +class OrgGroupPolicySuggestionListResponse(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.org_group_policy_suggestion_data import OrgGroupPolicySuggestionData + + return { + "data": ([OrgGroupPolicySuggestionData],), + } + + attribute_map = { + "data": "data", + } + + def __init__(self_, data: List[OrgGroupPolicySuggestionData], **kwargs): + """ + Response containing a list of org group policy suggestions. + + :param data: An array of org group policy suggestions. + :type data: [OrgGroupPolicySuggestionData] + """ + super().__init__(kwargs) + + self_.data = data diff --git a/src/datadog_api_client/v2/model/org_group_policy_suggestion_type.py b/src/datadog_api_client/v2/model/org_group_policy_suggestion_type.py new file mode 100644 index 0000000000..d7292f3f82 --- /dev/null +++ b/src/datadog_api_client/v2/model/org_group_policy_suggestion_type.py @@ -0,0 +1,35 @@ +# 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 OrgGroupPolicySuggestionType(ModelSimple): + """ + Org group policy suggestions resource type. + + :param value: If omitted defaults to "org_group_policy_suggestions". Must be one of ["org_group_policy_suggestions"]. + :type value: str + """ + + allowed_values = { + "org_group_policy_suggestions", + } + ORG_GROUP_POLICY_SUGGESTIONS: ClassVar["OrgGroupPolicySuggestionType"] + + @cached_property + def openapi_types(_): + return { + "value": (str,), + } + + +OrgGroupPolicySuggestionType.ORG_GROUP_POLICY_SUGGESTIONS = OrgGroupPolicySuggestionType("org_group_policy_suggestions") diff --git a/src/datadog_api_client/v2/models/__init__.py b/src/datadog_api_client/v2/models/__init__.py index 65f64b967f..14bcd38a13 100644 --- a/src/datadog_api_client/v2/models/__init__.py +++ b/src/datadog_api_client/v2/models/__init__.py @@ -6178,6 +6178,11 @@ from datadog_api_client.v2.model.org_group_policy_relationships import OrgGroupPolicyRelationships from datadog_api_client.v2.model.org_group_policy_response import OrgGroupPolicyResponse from datadog_api_client.v2.model.org_group_policy_sort_option import OrgGroupPolicySortOption +from datadog_api_client.v2.model.org_group_policy_suggestion_attributes import OrgGroupPolicySuggestionAttributes +from datadog_api_client.v2.model.org_group_policy_suggestion_config_tier import OrgGroupPolicySuggestionConfigTier +from datadog_api_client.v2.model.org_group_policy_suggestion_data import OrgGroupPolicySuggestionData +from datadog_api_client.v2.model.org_group_policy_suggestion_list_response import OrgGroupPolicySuggestionListResponse +from datadog_api_client.v2.model.org_group_policy_suggestion_type import OrgGroupPolicySuggestionType from datadog_api_client.v2.model.org_group_policy_type import OrgGroupPolicyType from datadog_api_client.v2.model.org_group_policy_update_attributes import OrgGroupPolicyUpdateAttributes from datadog_api_client.v2.model.org_group_policy_update_data import OrgGroupPolicyUpdateData @@ -14075,6 +14080,11 @@ "OrgGroupPolicyRelationships", "OrgGroupPolicyResponse", "OrgGroupPolicySortOption", + "OrgGroupPolicySuggestionAttributes", + "OrgGroupPolicySuggestionConfigTier", + "OrgGroupPolicySuggestionData", + "OrgGroupPolicySuggestionListResponse", + "OrgGroupPolicySuggestionType", "OrgGroupPolicyType", "OrgGroupPolicyUpdateAttributes", "OrgGroupPolicyUpdateData", diff --git a/tests/v2/features/org_groups.feature b/tests/v2/features/org_groups.feature index 58065ea87f..46cd5e7d3e 100644 --- a/tests/v2/features/org_groups.feature +++ b/tests/v2/features/org_groups.feature @@ -325,6 +325,22 @@ Feature: Org Groups When the request is sent Then the response status is 200 OK + @generated @skip @team:DataDog/org-management + Scenario: List org group policy suggestions returns "Bad Request" response + Given operation "ListOrgGroupPolicySuggestions" enabled + And new "ListOrgGroupPolicySuggestions" request + And request contains "filter[org_group_id]" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 400 Bad Request + + @generated @skip @team:DataDog/org-management + Scenario: List org group policy suggestions returns "OK" response + Given operation "ListOrgGroupPolicySuggestions" enabled + And new "ListOrgGroupPolicySuggestions" request + And request contains "filter[org_group_id]" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 200 OK + @generated @skip @team:DataDog/org-management Scenario: List org groups returns "Bad Request" response Given operation "ListOrgGroups" enabled diff --git a/tests/v2/features/undo.json b/tests/v2/features/undo.json index 0718c335cf..d726afcd2c 100644 --- a/tests/v2/features/undo.json +++ b/tests/v2/features/undo.json @@ -5916,6 +5916,12 @@ "type": "idempotent" } }, + "ListOrgGroupPolicySuggestions": { + "tag": "Org Groups", + "undo": { + "type": "safe" + } + }, "ListOrgGroups": { "tag": "Org Groups", "undo": {