Skip to content
Open
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
127 changes: 127 additions & 0 deletions .generator/schemas/v2/openapi.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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`.
Expand Down Expand Up @@ -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:
Expand Down Expand Up @@ -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.
Expand Down
35 changes: 35 additions & 0 deletions docs/datadog_api_client.v2.model.rst
Original file line number Diff line number Diff line change
Expand Up @@ -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
-------------------------------------------------------------

Expand Down
17 changes: 17 additions & 0 deletions examples/v2/org-groups/ListOrgGroupPolicySuggestions.py
Original file line number Diff line number Diff line change
@@ -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)
1 change: 1 addition & 0 deletions src/datadog_api_client/configuration.py
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down
54 changes: 54 additions & 0 deletions src/datadog_api_client/v2/api/org_groups_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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,),
Expand Down Expand Up @@ -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,
*,
Expand Down
Original file line number Diff line number Diff line change
@@ -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
Loading
Loading